mirror of
https://sourceware.org/git/glibc.git
synced 2024-09-20 08:30:00 +00:00
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 <adhemerval.zanella@linaro.org>
This commit is contained in:
parent
03f42a56eb
commit
941ea10f80
@ -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
|
||||
|
@ -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 ())
|
||||
|
Loading…
Reference in New Issue
Block a user