* Florian Weimer: > * Jeff Law: > >> On 03/29/2018 08:00 AM, Florian Weimer wrote: >>> This patch performs lazy initialization of the relevant CPUID feature >>> register value. It will needlessly invoke the CPUID determination code >>> on architectures which lack CPUID support or support for the feature >>> register, but I think it's not worth to avoid the complexity for that. >>> >>> I verified manually that the CMPXCHG16B implementation is still selected >>> for a 128-bit load after the change. I don't know how to write an >>> automated test for that. >>> >>> Thanks, >>> Florian >>> >>> pr60790.patch >>> >>> >>> Index: libatomic/ChangeLog >>> =================================================================== >>> --- libatomic/ChangeLog (revision 258952) >>> +++ libatomic/ChangeLog (working copy) >>> @@ -1,3 +1,18 @@ >>> +2018-03-29 Florian Weimer <fwei...@tor.usersys.redhat.com> >>> + >>> + PR libgcc/60790 >>> + x86: Do not assume ELF constructors run before IFUNC resolvers. >>> + * config/x86/host-config.h (libat_feat1_ecx, libat_feat1_edx): >>> + Remove declarations. >>> + (__libat_feat1, __libat_feat1_init): Declare. >>> + (FEAT1_REGISTER): Define. >>> + (load_feat1): New function. >>> + (IFUNC_COND_1): Adjust. >>> + * config/x86/init.c (libat_feat1_ecx, libat_feat1_edx) >>> + (init_cpuid): Remove definitions. >>> + (__libat_feat1): New variable. >>> + (__libat_feat1_init): New function. >> OK. > > Here is the backport to gcc-8-branch.
Ping? <https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00524.html>