From: H.J. Lu Date: Wed, 10 Sep 2025 19:18:11 +0000 (-0700) Subject: x86-64: Update R_X86_64_TPOFF32 error message X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ac8861e30e5c3dc0d00e85b57b1d3683d2d40f57;p=thirdparty%2Fbinutils-gdb.git x86-64: Update R_X86_64_TPOFF32 error message Change R_X86_64_TPOFF32 error message from relocation R_X86_64_TPOFF32 against symbol `foo' can not be used when making a shared object; replace local-exec with initial-exec TLS model to relocation R_X86_64_TPOFF32 against symbol `foo' can not be used when making a shared object; local-exec is incompatible with -shared bfd/ PR ld/33408 * elf64-x86-64.c (elf_x86_64_need_pic): Suggest "replace local-exec with initial-exec TLS model" for R_X86_64_TPOFF32. ld/ PR ld/33408 * testsuite/ld-x86-64/tls-le-pic-1-x32.d: Updated. * testsuite/ld-x86-64/tls-le-pic-1.d: Likewise. * testsuite/ld-x86-64/tls-le-pic-2-x32.d: Likewise. * testsuite/ld-x86-64/tls-le-pic-2.d: Likewise. * testsuite/ld-x86-64/tls-le-pic-3-x32.d: Likewise. * testsuite/ld-x86-64/tls-le-pic-3.d: Likewise. Signed-off-by: H.J. Lu --- diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index ad99cf6754e..236cff97346 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -1718,7 +1718,7 @@ elf_x86_64_need_pic (struct bfd_link_info *info, object = _("a shared object"); if (!pic) pic = (howto->type == R_X86_64_TPOFF32 - ? _("; replace local-exec with initial-exec TLS model") + ? _("; local-exec is incompatible with -shared") : _("; recompile with -fPIC")); } else diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-1-x32.d b/ld/testsuite/ld-x86-64/tls-le-pic-1-x32.d index b0824c4ae10..29df9ec6bec 100644 --- a/ld/testsuite/ld-x86-64/tls-le-pic-1-x32.d +++ b/ld/testsuite/ld-x86-64/tls-le-pic-1-x32.d @@ -1,4 +1,4 @@ #source: tls-le-pic-1.s #as: --x32 #ld: -shared -melf32_x86_64 -#error: .*: relocation R_X86_64_TPOFF32 against symbol `foo' can not be used when making a shared object; replace local-exec with initial-exec TLS model +#error: .*: relocation R_X86_64_TPOFF32 against symbol `foo' can not be used when making a shared object; local-exec is incompatible with -shared diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-1.d b/ld/testsuite/ld-x86-64/tls-le-pic-1.d index 6db5f029e75..9726c5c60c6 100644 --- a/ld/testsuite/ld-x86-64/tls-le-pic-1.d +++ b/ld/testsuite/ld-x86-64/tls-le-pic-1.d @@ -1,3 +1,3 @@ #as: --64 #ld: -shared -melf_x86_64 -#error: .*: relocation R_X86_64_TPOFF32 against symbol `foo' can not be used when making a shared object; replace local-exec with initial-exec TLS model +#error: .*: relocation R_X86_64_TPOFF32 against symbol `foo' can not be used when making a shared object; local-exec is incompatible with -shared diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-2-x32.d b/ld/testsuite/ld-x86-64/tls-le-pic-2-x32.d index e16395a5568..b4ebf5ac78f 100644 --- a/ld/testsuite/ld-x86-64/tls-le-pic-2-x32.d +++ b/ld/testsuite/ld-x86-64/tls-le-pic-2-x32.d @@ -1,4 +1,4 @@ #source: tls-le-pic-2.s #as: --x32 #ld: -shared -melf32_x86_64 -#error: .*: relocation R_X86_64_TPOFF32 against undefined symbol `foo' can not be used when making a shared object; replace local-exec with initial-exec TLS model +#error: .*: relocation R_X86_64_TPOFF32 against undefined symbol `foo' can not be used when making a shared object; local-exec is incompatible with -shared diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-2.d b/ld/testsuite/ld-x86-64/tls-le-pic-2.d index 0e718e01ebc..90ca63429e7 100644 --- a/ld/testsuite/ld-x86-64/tls-le-pic-2.d +++ b/ld/testsuite/ld-x86-64/tls-le-pic-2.d @@ -1,3 +1,3 @@ #as: --64 #ld: -shared -melf_x86_64 -#error: .*: relocation R_X86_64_TPOFF32 against undefined symbol `foo' can not be used when making a shared object; replace local-exec with initial-exec TLS model +#error: .*: relocation R_X86_64_TPOFF32 against undefined symbol `foo' can not be used when making a shared object; local-exec is incompatible with -shared diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-3-x32.d b/ld/testsuite/ld-x86-64/tls-le-pic-3-x32.d index f6731daa991..ed832e4b00a 100644 --- a/ld/testsuite/ld-x86-64/tls-le-pic-3-x32.d +++ b/ld/testsuite/ld-x86-64/tls-le-pic-3-x32.d @@ -1,4 +1,4 @@ #source: tls-le-pic-3.s #as: --x32 #ld: -shared -melf32_x86_64 -#error: .*: relocation R_X86_64_TPOFF32 against `foo' can not be used when making a shared object; replace local-exec with initial-exec TLS model +#error: .*: relocation R_X86_64_TPOFF32 against `foo' can not be used when making a shared object; local-exec is incompatible with -shared diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-3.d b/ld/testsuite/ld-x86-64/tls-le-pic-3.d index 987e370ad17..84970679498 100644 --- a/ld/testsuite/ld-x86-64/tls-le-pic-3.d +++ b/ld/testsuite/ld-x86-64/tls-le-pic-3.d @@ -1,3 +1,3 @@ #as: --64 #ld: -shared -melf_x86_64 -#error: .*: relocation R_X86_64_TPOFF32 against `foo' can not be used when making a shared object; replace local-exec with initial-exec TLS model +#error: .*: relocation R_X86_64_TPOFF32 against `foo' can not be used when making a shared object; local-exec is incompatible with -shared