[SPARC] Fix PR ld/22727

H.J. Lu hjl.tools@gmail.com
Sun Jan 21 16:03:00 GMT 2018


On Sun, Jan 21, 2018 at 1:39 AM, Eric Botcazou <ebotcazou@adacore.com> wrote:
> Hi,
>
> this is the breakage of TLS in PIC/PIE mode on SPARC present on the mainline
> and 2.30 branch.  There are actually 2 different bugs:
>  1. TLS transition is broken in PIE mode because of the PR ld/22263 change.

GD access should be optimized to IE or LE access in PIE. Dynamic relocation
shouldn't be needed.  Can you try to revert my PR ld/22263 change one at a
time to see which single change cause the regression?  Maybe

diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
index 4bf91fb30a..a52734cb31 100644
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -1511,7 +1511,7 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, struct
bfd_link_info *info,

   case R_SPARC_TLS_IE_HI22:
   case R_SPARC_TLS_IE_LO10:
-    if (!bfd_link_executable (info))
+    if (bfd_link_pic (info))
       info->flags |= DF_STATIC_TLS;
     /* Fall through */

is sufficient.


-- 
H.J.



More information about the Binutils mailing list