From: Siddhesh Poyarekar Date: Mon, 15 Mar 2021 14:54:45 +0000 (+0530) Subject: Build get-cpuid-feature-leaf.c without stack-protector [BZ #27555] X-Git-Tag: glibc-2.34~831 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=941ea10f8099cb4fcc98c65249fc17a63fcff6a4;p=thirdparty%2Fglibc.git Build get-cpuid-feature-leaf.c without stack-protector [BZ #27555] __x86_get_cpuid_feature_leaf is called during early startup, before the stack check guard is initialized and is hence not safe to build with stack-protector. Additionally, IFUNC resolvers for static tst-ifunc-isa tests get called too early for stack protector to be useful, so fix them to disable stack protector for the resolver functions. This fixes all failures seen with --enable-stack-protector=all configuration. Reviewed-by: Adhemerval Zanella --- diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile index 06c9f84f517..3ca7bfefe48 100644 --- a/sysdeps/x86/Makefile +++ b/sysdeps/x86/Makefile @@ -7,6 +7,8 @@ sysdep_routines += get-cpuid-feature-leaf sysdep-dl-routines += dl-get-cpu-features sysdep_headers += sys/platform/x86.h +CFLAGS-get-cpuid-feature-leaf.o += $(no-stack-protector) + tests += tst-get-cpu-features tst-get-cpu-features-static \ tst-cpu-features-cpuinfo tst-cpu-features-cpuinfo-static \ tst-cpu-features-supports tst-cpu-features-supports-static diff --git a/sysdeps/x86/tst-ifunc-isa.h b/sysdeps/x86/tst-ifunc-isa.h index 60aa1cea6af..6d906966a79 100644 --- a/sysdeps/x86/tst-ifunc-isa.h +++ b/sysdeps/x86/tst-ifunc-isa.h @@ -29,6 +29,7 @@ enum isa }; enum isa +__attribute__ ((__optimize__ ("-fno-stack-protector"))) get_isa (void) { if (CPU_FEATURE_USABLE (AVX512F)) @@ -83,6 +84,7 @@ isa_none (void) int foo (void) __attribute__ ((ifunc ("foo_ifunc"))); void * +__attribute__ ((__optimize__ ("-fno-stack-protector"))) foo_ifunc (void) { switch (get_isa ())