diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-09-11 08:18:11 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-09-11 08:18:32 -0700 |
commit | 45ff34638f034877b6a490c217d6a0632ce263f4 (patch) | |
tree | dae86b84c59ccbc77c2d9d46403fee6ad3f29f20 /sysdeps/x86/dl-procinfo.c | |
parent | 891abfd3c088c4bbfe724ff5bcfb9fca35db6d7d (diff) | |
download | glibc-45ff34638f034877b6a490c217d6a0632ce263f4.tar.gz glibc-45ff34638f034877b6a490c217d6a0632ce263f4.tar.xz glibc-45ff34638f034877b6a490c217d6a0632ce263f4.zip |
x86: Add x86_64 to x86-64 HWCAP [BZ #22093]
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.
Diffstat (limited to 'sysdeps/x86/dl-procinfo.c')
-rw-r--r-- | sysdeps/x86/dl-procinfo.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/x86/dl-procinfo.c b/sysdeps/x86/dl-procinfo.c index 43ab8fe25b..0192feb850 100644 --- a/sysdeps/x86/dl-procinfo.c +++ b/sysdeps/x86/dl-procinfo.c @@ -58,11 +58,11 @@ PROCINFO_CLASS struct cpu_features _dl_x86_cpu_features #if !defined PROCINFO_DECL && defined SHARED ._dl_x86_hwcap_flags #else -PROCINFO_CLASS const char _dl_x86_hwcap_flags[2][9] +PROCINFO_CLASS const char _dl_x86_hwcap_flags[3][9] #endif #ifndef PROCINFO_DECL = { - "sse2", "avx512_1" + "sse2", "x86_64", "avx512_1" } #endif #if !defined SHARED || defined PROCINFO_DECL |