[binutils-gdb] x86-64: Update R_X86_64_TPOFF32 error message
H.J. Lu
hjl@sourceware.org
Thu Sep 11 12:43:51 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ac8861e30e5c3dc0d00e85b57b1d3683d2d40f57
commit ac8861e30e5c3dc0d00e85b57b1d3683d2d40f57
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Sep 10 12:18:11 2025 -0700
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 <hjl.tools@gmail.com>
Diff:
---
bfd/elf64-x86-64.c | 2 +-
ld/testsuite/ld-x86-64/tls-le-pic-1-x32.d | 2 +-
ld/testsuite/ld-x86-64/tls-le-pic-1.d | 2 +-
ld/testsuite/ld-x86-64/tls-le-pic-2-x32.d | 2 +-
ld/testsuite/ld-x86-64/tls-le-pic-2.d | 2 +-
ld/testsuite/ld-x86-64/tls-le-pic-3-x32.d | 2 +-
ld/testsuite/ld-x86-64/tls-le-pic-3.d | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
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
More information about the Binutils-cvs
mailing list