[PATCH] x86: Check TLS relocation against non-thread local symbol
"H.J. Lu" <[email protected]> Thu, 30 Jul 2026 18:59:14 +0800
| Newsgroups | gmane.comp.gnu.binutils |
|---|---|
| Message-ID | <CAMe9rOqKCufOrwvkKNOR-tj+ZFxCvypAJkr7UKLdSCOtO-zoWw@mail.gmail.com> |
--000000000000a959610657d1f89a Content-Type: text/plain; charset="UTF-8" TLS relocations must be against thread local symbols. Update x86 scan relocs functions to issue an error for TLS relocation against non-thread local symbol. PR ld/34448 * elf32-i386.c (elf_i386_scan_relocs): Issue an error for TLS relocation against non-thread local symbol. * elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise. * elfxx-x86.c (_bfd_x86_elf_link_report_tls_invalid_section_error): Check relocation against non-thread local symbol. -- H.J. --000000000000a959610657d1f89a Content-Type: text/x-patch; charset="US-ASCII"; name="0001-x86-Check-TLS-relocation-against-non-thread-local-sy.patch" Content-Disposition: attachment; filename="0001-x86-Check-TLS-relocation-against-non-thread-local-sy.patch" Content-Transfer-Encoding: base64 Content-ID: <f_ms7ehi870> X-Attachment-Id: f_ms7ehi870 RnJvbSA5OWQzYzBmZjM3Nzk5NDUwYzFhMmY1ZmY0MzAxMWNkOGY4NWRmMjg3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMzAgSnVsIDIwMjYgMTM6NDM6NTYgKzA4MDAKU3ViamVjdDogW1BBVENIXSB4ODY6IENo ZWNrIFRMUyByZWxvY2F0aW9uIGFnYWluc3Qgbm9uLXRocmVhZCBsb2NhbCBzeW1ib2wKClRMUyBy ZWxvY2F0aW9ucyBtdXN0IGJlIGFnYWluc3QgdGhyZWFkIGxvY2FsIHN5bWJvbHMuICBVcGRhdGUg eDg2IHNjYW4KcmVsb2NzIGZ1bmN0aW9ucyB0byBpc3N1ZSBhbiBlcnJvciBmb3IgVExTIHJlbG9j YXRpb24gYWdhaW5zdCBub24tdGhyZWFkCmxvY2FsIHN5bWJvbC4KCglQUiBsZC8zNDQ0OAoJKiBl bGYzMi1pMzg2LmMgKGVsZl9pMzg2X3NjYW5fcmVsb2NzKTogSXNzdWUgYW4gZXJyb3IgZm9yIFRM UwoJcmVsb2NhdGlvbiBhZ2FpbnN0IG5vbi10aHJlYWQgbG9jYWwgc3ltYm9sLgoJKiBlbGY2NC14 ODYtNjQuYyAoZWxmX3g4Nl82NF9zY2FuX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGZ4eC14ODYu YyAoX2JmZF94ODZfZWxmX2xpbmtfcmVwb3J0X3Rsc19pbnZhbGlkX3NlY3Rpb25fZXJyb3IpOgoJ Q2hlY2sgcmVsb2NhdGlvbiBhZ2FpbnN0IG5vbi10aHJlYWQgbG9jYWwgc3ltYm9sLgoKU2lnbmVk LW9mZi1ieTogSC5KLiBMdSA8aGpsLnRvb2xzQGdtYWlsLmNvbT4KLS0tCiBiZmQvZWxmMzItaTM4 Ni5jICAgfCAgNSArKysrLQogYmZkL2VsZjY0LXg4Ni02NC5jIHwgIDUgKysrKy0KIGJmZC9lbGZ4 eC14ODYuYyAgICB8IDI2ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tCiAzIGZpbGVzIGNoYW5n ZWQsIDI4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYmZkL2Vs ZjMyLWkzODYuYyBiL2JmZC9lbGYzMi1pMzg2LmMKaW5kZXggYmViZTgxZDg4ZjYuLmVkYTY2MGIx MjA2IDEwMDY0NAotLS0gYS9iZmQvZWxmMzItaTM4Ni5jCisrKyBiL2JmZC9lbGYzMi1pMzg2LmMK QEAgLTE3NDksNyArMTc0OSwxMCBAQCBlbGZfaTM4Nl9zY2FuX3JlbG9jcyAoYmZkICphYmZkLAog CiAJICAgIGlmICh0bHNfdHlwZSA+PSBHT1RfVExTX0dECiAJCSYmIHRsc190eXBlIDw9IEdPVF9U TFNfR0RFU0MKLQkJJiYgKGVsZl9zZWN0aW9uX3R5cGUgKHNlYykgIT0gU0hUX1BST0dCSVRTCisJ CSYmICgoaCAhPSBOVUxMCisJCSAgICAgPyBoLT50eXBlICE9IFNUVF9UTFMKKwkJICAgICA6IEVM Rl9TVF9UWVBFIChpc3ltLT5zdF9pbmZvKSAhPSBTVFRfVExTKQorCQkgICAgfHwgZWxmX3NlY3Rp b25fdHlwZSAoc2VjKSAhPSBTSFRfUFJPR0JJVFMKIAkJICAgIHx8IChzZWMtPmZsYWdzICYgU0VD X0NPREUpID09IDApKQogCSAgICAgIHsKIAkJX2JmZF94ODZfZWxmX2xpbmtfcmVwb3J0X3Rsc19p bnZhbGlkX3NlY3Rpb25fZXJyb3IKZGlmZiAtLWdpdCBhL2JmZC9lbGY2NC14ODYtNjQuYyBiL2Jm ZC9lbGY2NC14ODYtNjQuYwppbmRleCBiYmJhY2E4Y2FiOC4uMzBjMzNjYTMwODIgMTAwNjQ0Ci0t LSBhL2JmZC9lbGY2NC14ODYtNjQuYworKysgYi9iZmQvZWxmNjQteDg2LTY0LmMKQEAgLTI3NzIs NyArMjc3MiwxMCBAQCBuZWVkX2dvdDoKIAogCSAgICBpZiAodGxzX3R5cGUgPj0gR09UX1RMU19H RAogCQkmJiB0bHNfdHlwZSA8PSBHT1RfVExTX0dERVNDCi0JCSYmIChlbGZfc2VjdGlvbl90eXBl IChzZWMpICE9IFNIVF9QUk9HQklUUworCQkmJiAoKGggIT0gTlVMTAorCQkgICAgID8gaC0+dHlw ZSAhPSBTVFRfVExTCisJCSAgICAgOiBFTEZfU1RfVFlQRSAoaXN5bS0+c3RfaW5mbykgIT0gU1RU X1RMUykKKwkJICAgIHx8IGVsZl9zZWN0aW9uX3R5cGUgKHNlYykgIT0gU0hUX1BST0dCSVRTCiAJ CSAgICB8fCAoc2VjLT5mbGFncyAmIFNFQ19DT0RFKSA9PSAwKSkKIAkgICAgICB7CiAJCV9iZmRf eDg2X2VsZl9saW5rX3JlcG9ydF90bHNfaW52YWxpZF9zZWN0aW9uX2Vycm9yCmRpZmYgLS1naXQg YS9iZmQvZWxmeHgteDg2LmMgYi9iZmQvZWxmeHgteDg2LmMKaW5kZXggMGY3OWVmNThmMDIuLjNh NjlmZTZiM2YzIDEwMDY0NAotLS0gYS9iZmQvZWxmeHgteDg2LmMKKysrIGIvYmZkL2VsZnh4LXg4 Ni5jCkBAIC0zMzc4LDE0ICszMzc4LDI4IEBAIF9iZmRfeDg2X2VsZl9saW5rX3JlcG9ydF90bHNf aW52YWxpZF9zZWN0aW9uX2Vycm9yCiAgICByZWxvY19ob3d0b190eXBlICpob3d0bykKIHsKICAg Y29uc3QgY2hhciAqbmFtZTsKKyAgYm9vbCBub25fdGxzOwogICBpZiAoaCkKLSAgICBuYW1lID0g aC0+cm9vdC5yb290LnN0cmluZzsKKyAgICB7CisgICAgICBuYW1lID0gaC0+cm9vdC5yb290LnN0 cmluZzsKKyAgICAgIG5vbl90bHMgPSBoLT50eXBlICE9IFNUVF9UTFM7CisgICAgfQorICBlbHNl CisgICAgeworICAgICAgbm9uX3RscyA9IEVMRl9TVF9UWVBFIChzeW0tPnN0X2luZm8pICE9IFNU VF9UTFM7CisgICAgICBuYW1lID0gYmZkX2VsZl9zeW1fbmFtZSAoYWJmZCwgc3ltdGFiX2hkciwg c3ltLCBOVUxMKTsKKyAgICB9CisgIGlmIChub25fdGxzKQorICAgIF9iZmRfZXJyb3JfaGFuZGxl cgorICAgICAgLyogeGdldHRleHQ6Yy1mb3JtYXQgKi8KKyAgICAgIChfKCIlcEI6IHJlbG9jYXRp b24gJXMgYWdhaW5zdCBub24tdGhyZWFkIGxvY2FsIHN5bWJvbCAiCisJICJgJXMnIGluIHNlY3Rp b24gYCVwQSciKSwKKyAgICAgICBhYmZkLCBob3d0by0+bmFtZSwgbmFtZSwgc2VjKTsKICAgZWxz ZQotICAgIG5hbWUgPSBiZmRfZWxmX3N5bV9uYW1lIChhYmZkLCBzeW10YWJfaGRyLCBzeW0sIE5V TEwpOwotICBfYmZkX2Vycm9yX2hhbmRsZXIKLSAgICAvKiB4Z2V0dGV4dDpjLWZvcm1hdCAqLwot ICAgIChfKCIlcEI6IHJlbG9jYXRpb24gJXMgYWdhaW5zdCB0aHJlYWQgbG9jYWwgc3ltYm9sIGAl cycgaW4gIgotICAgICAgICJpbnZhbGlkIHNlY3Rpb24gYCVwQSciKSwgYWJmZCwgaG93dG8tPm5h bWUsIG5hbWUsIHNlYyk7CisgICAgX2JmZF9lcnJvcl9oYW5kbGVyCisgICAgICAvKiB4Z2V0dGV4 dDpjLWZvcm1hdCAqLworICAgICAgKF8oIiVwQjogcmVsb2NhdGlvbiAlcyBhZ2FpbnN0IHRocmVh ZCBsb2NhbCBzeW1ib2wgYCVzJyBpbiAiCisJICJpbnZhbGlkIHNlY3Rpb24gYCVwQSciKSwgYWJm ZCwgaG93dG8tPm5hbWUsIG5hbWUsIHNlYyk7CiAgIGJmZF9zZXRfZXJyb3IgKGJmZF9lcnJvcl9i YWRfdmFsdWUpOwogfQogCi0tIAoyLjU1LjAKCg== --000000000000a959610657d1f89a--