glibc/sysdeps/x86_64
H.J. Lu 0f09154c64 x86: Initialize CPU info via IFUNC relocation [BZ 26203]
X86 CPU features in ld.so are initialized by init_cpu_features, which is
invoked by DL_PLATFORM_INIT from _dl_sysdep_start.  But when ld.so is
loaded by static executable, DL_PLATFORM_INIT is never called.  Also
x86 cache info in libc.o and libc.a is initialized by a constructor
which may be called too late.  Since some fields in _rtld_global_ro
in ld.so are initialized by dynamic relocation, we can also initialize
x86 CPU features in _rtld_global_ro in ld.so and cache info in libc.so
by initializing dummy function pointers in ld.so and libc.so via IFUNC
relocation.

Key points:

1. IFUNC is always supported, independent of --enable-multi-arch or
--disable-multi-arch.  Linker generates IFUNC relocations from input
IFUNC objects and ld.so performs IFUNC relocations.
2. There are no IFUNC dependencies in ld.so before dynamic relocation
have been performed,
3. The x86 CPU features in ld.so is initialized by DL_PLATFORM_INIT
in dynamic executable and by IFUNC relocation in dlopen in static
executable.
4. The x86 cache info in libc.o is initialized by IFUNC relocation.
5. In libc.a, both x86 CPU features and cache info are initialized from
ARCH_INIT_CPU_FEATURES, not by IFUNC relocation, before __libc_early_init
is called.

Note: _dl_x86_init_cpu_features can be called more than once from
DL_PLATFORM_INIT and during relocation in ld.so.
2020-10-16 16:17:53 -07:00
..
64 Move architecture shlib-versions files to Linux-specific directories. 2014-07-17 14:31:12 +00:00
fpu x86: Install <sys/platform/x86.h> [BZ #26124] 2020-09-11 17:20:52 -07:00
multiarch x86: Install <sys/platform/x86.h> [BZ #26124] 2020-09-11 17:20:52 -07:00
nptl aarch64: enforce >=64K guard size [BZ #26691] 2020-10-02 09:57:44 +01:00
x32 Remove unused floating-point configuration from gmp-impl.h. 2020-04-28 15:05:09 +00:00
____longjmp_chk.S
__longjmp.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
_mcount.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
abort-instr.h
add_n.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
addmul_1.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
bsd-_setjmp.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
bsd-setjmp.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
bzero.S
configure x86-64: Compile branred.c with -mprefer-vector-width=128 [BZ #24603] 2019-07-24 14:48:43 -07:00
configure.ac x86-64: Compile branred.c with -mprefer-vector-width=128 [BZ #24603] 2019-07-24 14:48:43 -07:00
crti.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
crtn.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-irel.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-machine.h x86: Initialize CPU info via IFUNC relocation [BZ 26203] 2020-10-16 16:17:53 -07:00
dl-procinfo.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-runtime.h dl-runtime: reloc_{offset,index} now functions arch overide'able 2020-06-05 13:45:46 -07:00
dl-tls.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-tls.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-tlsdesc.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-tlsdesc.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-trampoline.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-trampoline.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ffs.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ffsll.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
htonl.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ifuncmain8.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ifuncmod8.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Implies Add float128 support for x86_64, x86. 2017-06-26 22:02:24 +00:00
isa.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
jmpbuf-offsets.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
jmpbuf-unwind.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
l10nflist.c
link-defines.sym Replace __int128 with __int128_t 2014-05-30 10:50:21 -07:00
locale-defines.sym
localplt.data ld.so: Do not export free/calloc/malloc/realloc functions [BZ #25486] 2020-02-15 11:01:23 +01:00
lshift.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
machine-gmon.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Makefile x86: Support usable check for all CPU features 2020-07-13 06:05:16 -07:00
memchr.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memcmp.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memcpy_chk.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memcpy.S X86-64: Remove previous default/SSE2/AVX2 memcpy/memmove 2016-06-08 13:58:08 -07:00
memmove_chk.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memmove.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mempcpy_chk.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mempcpy.S X86-64: Remove previous default/SSE2/AVX2 memcpy/memmove 2016-06-08 13:58:08 -07:00
memrchr.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memset_chk.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memset.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memusage.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mp_clz_tab.c
mul_1.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
preconfigure
preconfigure.ac
rawmemchr.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
rshift.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
rtld-offsets.sym x86-64: Align the stack in __tls_get_addr [BZ #21609] 2017-07-06 04:43:20 -07:00
sched_cpucount.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
setjmp.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
stack-aliasing.h Clean up stack-coloring macros. 2014-06-20 19:50:16 -07:00
stackguard-macros.h
stackinfo.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
start.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
stpcpy.S
strcasecmp_l-nonascii.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
strcasecmp_l.S
strcasecmp.S
strcat.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
strchr.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
strchrnul.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
strcmp.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
strcpy.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
strcspn.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
strlen.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
strncase_l-nonascii.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
strncase_l.S
strncase.S
strncmp.S
strnlen.S
strpbrk.S x86-64: Implement strcspn/strpbrk/strspn IFUNC selectors in C 2017-06-15 08:59:05 -07:00
strrchr.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
strspn.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sub_n.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
submul_1.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tls_get_addr.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tls-macros.h
tlsdesc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tlsdesc.sym x86-64: Align the stack in __tls_get_addr [BZ #21609] 2017-07-06 04:43:20 -07:00
tst-audit3.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-audit4-aux.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-audit4.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-audit5.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-audit6.c Modify several tests to use test-skeleton.c 2015-07-15 15:10:23 +05:30
tst-audit7.c
tst-audit10-aux.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-audit10.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-audit.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-auditmod3a.c
tst-auditmod3b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod4a.c
tst-auditmod4b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod5a.c
tst-auditmod5b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod6a.c
tst-auditmod6b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod6c.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod7a.c
tst-auditmod7b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod10a.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-auditmod10b.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-avx512-aux.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-avx512.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-avx512mod.c x86-64: Verify that _dl_runtime_resolve preserves vector registers 2017-02-09 12:19:58 -08:00
tst-avx-aux.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-avx.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-avxmod.c x86-64: Verify that _dl_runtime_resolve preserves vector registers 2017-02-09 12:19:58 -08:00
tst-mallocalign1.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-platform-1.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-platformmod-1.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-platformmod-2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-quad1.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-quad1pie.c
tst-quad2.c
tst-quad2pie.c
tst-quadmod1.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-quadmod1pie.S
tst-quadmod2.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-quadmod2pie.S
tst-split-dynreloc.c Fix dynamic linker issue with bind-now 2015-08-19 05:37:01 -07:00
tst-split-dynreloc.lds Fix dynamic linker issue with bind-now 2015-08-19 05:37:01 -07:00
tst-sse.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-ssemod.c x86-64: Verify that _dl_runtime_resolve preserves vector registers 2017-02-09 12:19:58 -08:00
tst-stack-align.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-x86_64-1.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-x86_64mod-1.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Versions Move __fentry__ version definition to sysdeps/{i386,x86_64} 2018-08-10 09:07:44 +02:00
wcschr.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
wcscmp.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
wcslen.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
wcsrchr.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
wmemset_chk.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
wmemset.S x86-64: Optimize wmemset with SSE2/AVX2/AVX512 2017-06-05 11:09:59 -07:00
wordcopy.c X86-64: Add dummy memcopy.h and wordcopy.c 2016-06-09 04:38:34 -07:00