mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-03 22:53:37 +08:00
45ff34638f
Before glibc 2.26, ld.so set dl_platform to "x86_64" and searched the "x86_64" subdirectory when loading a shared library. ld.so in glibc 2.26 was changed to set dl_platform to "haswell" or "xeon_phi", based on supported ISAs. This led to shared library loading failure for shared libraries placed under the "x86_64" subdirectory. This patch adds "x86_64" to x86-64 dl_hwcap so that ld.so will always search the "x86_64" subdirectory when loading a shared library. NB: We can't set x86-64 dl_platform to "x86-64" since ld.so will skip the "haswell" and "xeon_phi" subdirectories on "haswell" and "xeon_phi" machines. Tested on i686 and x86-64. [BZ #22093] * sysdeps/x86/cpu-features.c (init_cpu_features): Initialize GLRO(dl_hwcap) to HWCAP_X86_64 for x86-64. * sysdeps/x86/dl-hwcap.h (HWCAP_COUNT): Updated. (HWCAP_IMPORTANT): Likewise. (HWCAP_X86_64): New enum. (HWCAP_X86_AVX512_1): Updated. * sysdeps/x86/dl-procinfo.c (_dl_x86_hwcap_flags): Add "x86_64". * sysdeps/x86_64/Makefile (tests): Add tst-x86_64-1. (modules-names): Add x86_64/tst-x86_64mod-1. (LDFLAGS-tst-x86_64mod-1.so): New. ($(objpfx)tst-x86_64-1): Likewise. ($(objpfx)x86_64/tst-x86_64mod-1.os): Likewise. (tst-x86_64-1-clean): Likewise. * sysdeps/x86_64/tst-x86_64-1.c: New file. * sysdeps/x86_64/tst-x86_64mod-1.c: Likewise. |
||
---|---|---|
.. | ||
bits | ||
fpu | ||
nptl/bits | ||
cacheinfo.c | ||
cpu-features-offsets.sym | ||
cpu-features.c | ||
cpu-features.h | ||
cpu-tunables.c | ||
dl-get-cpu-features.c | ||
dl-hwcap.h | ||
dl-procinfo.c | ||
dl-procinfo.h | ||
dl-tunables.list | ||
elide.h | ||
float128-abi.h | ||
fpu_control.h | ||
init-arch.h | ||
libc-start.c | ||
linkmap.h | ||
Makefile | ||
math-tests.h | ||
string_private.h | ||
tininess.h | ||
tst-get-cpu-features-static.c | ||
tst-get-cpu-features.c | ||
Versions |