https://sourceware.org/bugzilla/show_bug.cgi?id=27625

            Bug ID: 27625
           Summary: powerpc64: gold erroneously rejects linking code that
                    calls __tls_get_addr
           Product: binutils
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gold
          Assignee: ccoutant at gmail dot com
          Reporter: bugdal at aerifal dot cx
                CC: ian at airs dot com
  Target Milestone: ---

When targeting powerpc64, attempting to link a source file that calls
__tls_get_addr directly (rather than produced as a result of a thread-local
object access with the associated relocations to facilitate relaxation)
produces the message:

"error: __tls_get_addr call lacks marker reloc"

This breaks linking of glibc and musl libc.

The check that's triggering seems to correspond to one lld wrongly added and
then reverted in
https://github.com/llvm/llvm-project/commit/9267caebfa9209e4ae69517043d008d1b83307aa
(see also https://reviews.llvm.org/D92959), which the BFD linker does not do.
Calls to __tls_get_addr are only candidates for relaxation with the appropriate
relocations attached to them; otherwise, they should be treated as normal
function calls and should not produce link errors.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to