[PATCH] x86: Improve relocation error reporting

"H.J. Lu" <[email protected]> Tue, 4 Aug 2026 11:36:43 +0800
Newsgroups gmane.comp.gnu.binutils
Message-ID <CAMe9rOptwXvtZ1iB=tJc21KGAs2kaZr6pFmW_XbKh2PNoc2Kjw@mail.gmail.com>
--00000000000061c9d90658305fec
Content-Type: text/plain; charset="UTF-8"

For bfd_reloc_outofrange relocation error, instead of

ld: pr34448-bug_4.o(.debug_addr+0x7f000008): reloc against
`.text.get_tls': error 4

linker now reports:

ld: pr34448-bug_4.o(.debug_addr+0x7f000008): relocation `R_X86_64_64'
against `.text.get_tls' is out of section range

PR ld/34448
* elf32-i386.c (elf_i386_relocate_section): Call
_bfd_x86_elf_link_report_relocation_error for relocation error.
* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
* elfxx-x86.c (_bfd_x86_elf_link_report_relocation_error): New.
* elfxx-x86.h (_bfd_x86_elf_link_report_relocation_error): New.


-- 
H.J.

--00000000000061c9d90658305fec
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-x86-Improve-relocation-error-reporting.patch"
Content-Disposition: attachment; 
	filename="0001-x86-Improve-relocation-error-reporting.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mse3v8tt0>
X-Attachment-Id: f_mse3v8tt0

RnJvbSA2MzRiMjc1N2MxYThiNTIwMzkwNmMzZjYwYTI0M2YxMGUxNjVkMmYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6
IEZyaSwgMzEgSnVsIDIwMjYgMDU6NDc6MTUgKzA4MDAKU3ViamVjdDogW1BBVENIXSB4ODY6IElt
cHJvdmUgcmVsb2NhdGlvbiBlcnJvciByZXBvcnRpbmcKCkZvciBiZmRfcmVsb2Nfb3V0b2ZyYW5n
ZSByZWxvY2F0aW9uIGVycm9yLCBpbnN0ZWFkIG9mCgpsZDogcHIzNDQ0OC1idWdfNC5vKC5kZWJ1
Z19hZGRyKzB4N2YwMDAwMDgpOiByZWxvYyBhZ2FpbnN0IGAudGV4dC5nZXRfdGxzJzogZXJyb3Ig
NAoKbGlua2VyIG5vdyByZXBvcnRzOgoKbGQ6IHByMzQ0NDgtYnVnXzQubyguZGVidWdfYWRkcisw
eDdmMDAwMDA4KTogcmVsb2NhdGlvbiBgUl9YODZfNjRfNjQnIGFnYWluc3QgYC50ZXh0LmdldF90
bHMnIGlzIG91dCBvZiBzZWN0aW9uIHJhbmdlCgoJUFIgbGQvMzQ0NDgKCSogZWxmMzItaTM4Ni5j
IChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogQ2FsbAoJX2JmZF94ODZfZWxmX2xpbmtfcmVw
b3J0X3JlbG9jYXRpb25fZXJyb3IgZm9yIHJlbG9jYXRpb24gZXJyb3IuCgkqIGVsZjY0LXg4Ni02
NC5jIChlbGZfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgteDg2
LmMgKF9iZmRfeDg2X2VsZl9saW5rX3JlcG9ydF9yZWxvY2F0aW9uX2Vycm9yKTogTmV3LgoJKiBl
bGZ4eC14ODYuaCAoX2JmZF94ODZfZWxmX2xpbmtfcmVwb3J0X3JlbG9jYXRpb25fZXJyb3IpOiBO
ZXcuCgpTaWduZWQtb2ZmLWJ5OiBILkouIEx1IDxoamwudG9vbHNAZ21haWwuY29tPgotLS0KIGJm
ZC9lbGYzMi1pMzg2LmMgICB8ICA5ICsrKystLS0tLQogYmZkL2VsZjY0LXg4Ni02NC5jIHwgIDkg
KysrKy0tLS0tCiBiZmQvZWxmeHgteDg2LmMgICAgfCAzMyArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysKIGJmZC9lbGZ4eC14ODYuaCAgICB8ICA0ICsrKysKIDQgZmlsZXMgY2hhbmdl
ZCwgNDUgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYmZkL2Vs
ZjMyLWkzODYuYyBiL2JmZC9lbGYzMi1pMzg2LmMKaW5kZXggOGFkNWNiNGUzNTQuLjM2YTk1N2Qw
M2YxIDEwMDY0NAotLS0gYS9iZmQvZWxmMzItaTM4Ni5jCisrKyBiL2JmZC9lbGYzMi1pMzg2LmMK
QEAgLTM2NDgsMTEgKzM2NDgsMTAgQEAgZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbiAoc3RydWN0
IGJmZF9saW5rX2luZm8gKmluZm8sCiAJICAgICAgIChiZmRfdm1hKSAwLCBpbnB1dF9iZmQsIGlu
cHV0X3NlY3Rpb24sIHJlbC0+cl9vZmZzZXQpOwogCSAgZWxzZQogCSAgICB7Ci0JICAgICAgX2Jm
ZF9lcnJvcl9oYW5kbGVyCi0JCS8qIHhnZXR0ZXh0OmMtZm9ybWF0ICovCi0JCShfKCIlcEIoJXBB
KyUjIiBQUkl4NjQgIik6IHJlbG9jIGFnYWluc3QgYCVzJzogZXJyb3IgJWQiKSwKLQkJIGlucHV0
X2JmZCwgaW5wdXRfc2VjdGlvbiwKLQkJICh1aW50NjRfdCkgcmVsLT5yX29mZnNldCwgbmFtZSwg
KGludCkgcik7CisJICAgICAgX2JmZF94ODZfZWxmX2xpbmtfcmVwb3J0X3JlbG9jYXRpb25fZXJy
b3IgKGlucHV0X2JmZCwKKwkJCQkJCQkgaW5wdXRfc2VjdGlvbiwKKwkJCQkJCQkgbmFtZSwgcmVs
LAorCQkJCQkJCSBob3d0bywgcik7CiAJICAgICAgcmV0dXJuIGZhbHNlOwogCSAgICB9CiAJfQpk
aWZmIC0tZ2l0IGEvYmZkL2VsZjY0LXg4Ni02NC5jIGIvYmZkL2VsZjY0LXg4Ni02NC5jCmluZGV4
IDNkODU4ODZhM2Q1Li40OWIyYjg4ZTJhZiAxMDA2NDQKLS0tIGEvYmZkL2VsZjY0LXg4Ni02NC5j
CisrKyBiL2JmZC9lbGY2NC14ODYtNjQuYwpAQCAtNTE1MiwxMSArNTE1MiwxMCBAQCBlbGZfeDg2
XzY0X3JlbG9jYXRlX3NlY3Rpb24gKHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvLAogCSAgICB9
CiAJICBlbHNlCiAJICAgIHsKLQkgICAgICBfYmZkX2Vycm9yX2hhbmRsZXIKLQkJLyogeGdldHRl
eHQ6Yy1mb3JtYXQgKi8KLQkJKF8oIiVwQiglcEErJSMiIFBSSXg2NCAiKTogcmVsb2MgYWdhaW5z
dCBgJXMnOiBlcnJvciAlZCIpLAotCQkgaW5wdXRfYmZkLCBpbnB1dF9zZWN0aW9uLAotCQkgKHVp
bnQ2NF90KSByZWwtPnJfb2Zmc2V0LCBuYW1lLCAoaW50KSByKTsKKwkgICAgICBfYmZkX3g4Nl9l
bGZfbGlua19yZXBvcnRfcmVsb2NhdGlvbl9lcnJvciAoaW5wdXRfYmZkLAorCQkJCQkJCSBpbnB1
dF9zZWN0aW9uLAorCQkJCQkJCSBuYW1lLCByZWwsCisJCQkJCQkJIGhvd3RvLCByKTsKIAkgICAg
ICByZXR1cm4gZmFsc2U7CiAJICAgIH0KIAl9CmRpZmYgLS1naXQgYS9iZmQvZWxmeHgteDg2LmMg
Yi9iZmQvZWxmeHgteDg2LmMKaW5kZXggZTA4ZmVjNTI2MzYuLjQzOWNiZTJlOWU3IDEwMDY0NAot
LS0gYS9iZmQvZWxmeHgteDg2LmMKKysrIGIvYmZkL2VsZnh4LXg4Ni5jCkBAIC0zNDI0LDYgKzM0
MjQsMzkgQEAgX2JmZF94ODZfZWxmX2xpbmtfcmVwb3J0X2Vycm9yCiAgIGJmZF9zZXRfZXJyb3Ig
KGJmZF9lcnJvcl9iYWRfdmFsdWUpOwogfQogCisvKiBSZXBvcnQgbGluayByZWxvY2F0aW9uIGVy
cm9yLiAgKi8KKwordm9pZAorX2JmZF94ODZfZWxmX2xpbmtfcmVwb3J0X3JlbG9jYXRpb25fZXJy
b3IgKGJmZCAqYWJmZCwgYXNlY3Rpb24gKnNlYywKKwkJCQkJICAgY29uc3QgY2hhciAqbmFtZSwK
KwkJCQkJICAgRWxmX0ludGVybmFsX1JlbGEgKnJlbCwKKwkJCQkJICAgcmVsb2NfaG93dG9fdHlw
ZSAqaG93dG8sCisJCQkJCSAgIGJmZF9yZWxvY19zdGF0dXNfdHlwZSBzdGF0dXMpCit7CisgIHN3
aXRjaCAoc3RhdHVzKQorICAgIHsKKyAgICBjYXNlIGJmZF9yZWxvY19vdXRvZnJhbmdlOgorICAg
ICAgX2JmZF9lcnJvcl9oYW5kbGVyCisJLyogeGdldHRleHQ6Yy1mb3JtYXQgKi8KKwkoXygiJXBC
KCVwQSslIyIgUFJJeDY0ICIpOiByZWxvY2F0aW9uIGAlcycgYWdhaW5zdCBgJXMnIGlzICIKKwkg
ICAib3V0IG9mIHNlY3Rpb24gcmFuZ2UiKSwgYWJmZCwgc2VjLCAodWludDY0X3QpIHJlbC0+cl9v
ZmZzZXQsCisJIGhvd3RvLT5uYW1lLCBuYW1lKTsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSBi
ZmRfcmVsb2Nfbm90c3VwcG9ydGVkOgorICAgICAgX2JmZF9lcnJvcl9oYW5kbGVyCisJLyogeGdl
dHRleHQ6Yy1mb3JtYXQgKi8KKwkoXygiJXBCKCVwQSslIyIgUFJJeDY0ICIpOiByZWxvY2F0aW9u
IGAlcycgYWdhaW5zdCBgJXMnIGlzICIKKwkgICAibm90IHN1cHBvcnRlZCIpLCBhYmZkLCBzZWMs
ICh1aW50NjRfdCkgcmVsLT5yX29mZnNldCwKKwkgaG93dG8tPm5hbWUsIG5hbWUpOworICAgICAg
YnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgYWJvcnQgKCk7CisgICAgICBicmVhazsKKyAg
ICB9Cit9CisKIC8qIFJldHVybiBUUlVFIGlmIHN5bWJvbCBzaG91bGQgYmUgaGFzaGVkIGluIHRo
ZSBgLmdudS5oYXNoJyBzZWN0aW9uLiAgKi8KIAogYm9vbApkaWZmIC0tZ2l0IGEvYmZkL2VsZnh4
LXg4Ni5oIGIvYmZkL2VsZnh4LXg4Ni5oCmluZGV4IDQzMGQ2MWQzMDk3Li40OGU4YWI0YWQ3MyAx
MDA2NDQKLS0tIGEvYmZkL2VsZnh4LXg4Ni5oCisrKyBiL2JmZC9lbGZ4eC14ODYuaApAQCAtOTYy
LDYgKzk2MiwxMCBAQCBleHRlcm4gdm9pZCBfYmZkX3g4Nl9lbGZfbGlua19yZXBvcnRfZXJyb3IK
ICAgIEVsZl9JbnRlcm5hbF9TeW0gKiwgcmVsb2NfaG93dG9fdHlwZSAqLAogICAgZW51bSBlbGZf
eDg2X2Vycm9yX3R5cGUpIEFUVFJJQlVURV9ISURERU47CiAKK2V4dGVybiB2b2lkIF9iZmRfeDg2
X2VsZl9saW5rX3JlcG9ydF9yZWxvY2F0aW9uX2Vycm9yCisgIChiZmQgKiwgYXNlY3Rpb24gKiwg
Y29uc3QgY2hhciAqLCBFbGZfSW50ZXJuYWxfUmVsYSAqLAorICAgcmVsb2NfaG93dG9fdHlwZSAq
LCBiZmRfcmVsb2Nfc3RhdHVzX3R5cGUpIEFUVFJJQlVURV9ISURERU47CisKIGV4dGVybiBib29s
CiBfYmZkX2VsZl94ODZfY29weV9zcGVjaWFsX3NlY3Rpb25fZmllbGRzCiAgIChjb25zdCBiZmQg
KiwgYmZkICosIGNvbnN0IEVsZl9JbnRlcm5hbF9TaGRyICosCi0tIAoyLjU1LjAKCg==
--00000000000061c9d90658305fec--