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 math/21707] ppc64le: Invalid IFUNC resolver from libgcc calls getauxval, leading to relocation crash


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

--- Comment #16 from Carlos O'Donell <carlos at redhat dot com> ---
(In reply to Andreas Schwab from comment #15)
> Something that fixes this crash.

If I understand correctly you have:

- gcc7-7.1.1+r249772-1.2 (bootstrapped with 2.25)
- binutils 2.28?
- glibc master (soon to be glibc 2.26).

The fix in glibc master is not designed to solve the bootstrap problem because
such a fix would be too complex during a freeze. In order to fix this fully in
glibc we would have to, for ppc64le, refactor the initialization of the
getauxval data to happen before IFUNC resolvers are run.

Instead the suggested solution for distributions is as follows:

* Backport the fix by Peter Bergner:
  https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00348.html
  (until Peter backports it to gcc 7, 6 as approved).

This way gcc7 does not use an IFUNC at all and instead uses the builtin which
reads from the TCB data that has the expanded AT_HWCAP/AT_PLATFORM data.

That should be sufficient to fix your problem. No glibc changes required.

Peter commented that when we returned from Paris on the 19th he would checkin
the fixes to gcc7/6, so if he does that today then all you need to do is
re-sync gcc after that, and everything should work.

Does that answer your question?

-- 
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]