[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