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