On Fri, Nov 11, 2016 at 05:40:04PM +0100, Uros Bizjak wrote:
> On Fri, Nov 11, 2016 at 4:50 PM, Szabolcs Nagy <szabolcs.n...@arm.com> wrote:
> > The __cpu_indicator_init and __cpu_model symbols are not safe to use
> > from shared libgcc_s.so from ifunc resolvers, so since gcc-6, only
> > the definitions from static libgcc.a are used, however the symbols
> > are kept in libgcc_s as well for backward compatibility (with
> > appropriate symbol version).  On targets without such backward
> > compatibility concern add cpuinfo to the static library only (this
> > avoids running the ctor, reduces libgcc_s size and elf abi concerns
> > because of gnu symbol versions).
> >
> > build tested on x86_64-linux-gnu and x86_64-linux-musl.
> >
> > ok to commit?
> >
> > i'd like to back port this to gcc-6 because musl dynamic linker
> > cannot load the libgcc_s.so.1 with the versioned symbols
> > (not an abi break: those symbols were never used on musl and
> > the current code does not work).
> >
> > libgcc/ChangeLog:
> >
> > 2016-11-11  Szabolcs Nagy  <szabolcs.n...@arm.com>
> >
> >         * config.host (i[3456]86-*-musl*, x86_64-*-musl*): Use
> >         i386/t-cpuinfo-static instead of i386/t-cpuinfo.
> >         * config/i386/t-cpuinfo-static: New.
> 
> LGTM, it is musl specific, but you know the musl part best ;)
> 
> Rubber-stamped OK for mainline and backports.

I would have preferred the previously-rejected fix getting rid of the
gratuitous dependency on binding to a non-default symver, that works
the same on all targets, but I'm fine with whatever fixes the problem
without introducing new ABI mess.

Rich

Reply via email to