This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug dynamic-link/22638] static binaries are broken on sparc due to use of memcpy(behind IFUNC redirector) in __libc_start_tls()


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

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|static pie binaries are     |static binaries are broken
                   |broken on sparc due to use  |on sparc due to use of
                   |of memcpy(behind IFUNC      |memcpy(behind IFUNC
                   |redirector) in              |redirector) in
                   |__libc_start_tls()          |__libc_start_tls()

--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
Please find out why

static void
apply_irel (void)
{
# ifdef IREL
  /* We use weak references for these so that we'll still work with a linker
     that doesn't define them.  Such a linker doesn't support IFUNC at all
     and so uses won't work, but a statically-linked program that doesn't
     use any IFUNC symbols won't have a problem.  */
  extern const IREL_T IPLT_START[] __attribute__ ((weak));
  extern const IREL_T IPLT_END[] __attribute__ ((weak));
  for (const IREL_T *ipltent = IPLT_START; ipltent < IPLT_END; ++ipltent)
    IREL (ipltent);
# endif
}

doesn't work on Sparc.

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]