x86-64: Don't use SSE resolvers for ISA level 3 or above
commitbefe2d3c4dec8be2cdd01a47132e47bdb7020922
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 28 Feb 2024 17:51:14 +0000 (28 09:51 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 28 Feb 2024 19:49:30 +0000 (28 11:49 -0800)
treec2f32241668b7c61e8c61d14430052faa1bdcdbc
parent0aac205a814a8511e98d02b91a8dc908f1c53cde
x86-64: Don't use SSE resolvers for ISA level 3 or above

When glibc is built with ISA level 3 or above enabled, SSE resolvers
aren't available and glibc fails to build:

ld: .../elf/librtld.os: in function `init_cpu_features':
.../elf/../sysdeps/x86/cpu-features.c:1200:(.text+0x1445f): undefined reference to `_dl_runtime_resolve_fxsave'
ld: .../elf/librtld.os: relocation R_X86_64_PC32 against undefined hidden symbol `_dl_runtime_resolve_fxsave' can not be used when making a shared object
/usr/local/bin/ld: final link failed: bad value

For ISA level 3 or above, don't use _dl_runtime_resolve_fxsave nor
_dl_tlsdesc_dynamic_fxsave.

This fixes BZ #31429.
Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
sysdeps/x86/cpu-features.c
sysdeps/x86_64/dl-tlsdesc.S