glibc/sysdeps/unix/sysv/linux/x86_64
H.J. Lu e2e4f56056 Add _dl_x86_cpu_features to rtld_global
This patch adds _dl_x86_cpu_features to rtld_global in x86 ld.so
and initializes it early before __libc_start_main is called so that
cpu_features is always available when it is used and we can avoid
calling __init_cpu_features in IFUNC selectors.

	* sysdeps/i386/dl-machine.h: Include <cpu-features.c>.
	(dl_platform_init): Call init_cpu_features.
	* sysdeps/i386/dl-procinfo.c (_dl_x86_cpu_features): New.
	* sysdeps/i386/i686/cacheinfo.c
	(DISABLE_PREFERRED_MEMORY_INSTRUCTION): Removed.
	* sysdeps/i386/i686/multiarch/Makefile (aux): Remove init-arch.
	* sysdeps/i386/i686/multiarch/Versions: Removed.
	* sysdeps/i386/i686/multiarch/ifunc-defines.sym (KIND_OFFSET):
	Removed.
	* sysdeps/i386/ldsodefs.h: Include <cpu-features.h>.
	* sysdeps/unix/sysv/linux/x86/Makefile
	(libpthread-sysdep_routines): Remove init-arch.
	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Include
	<sysdeps/x86_64/dl-procinfo.c> instead of
	sysdeps/generic/dl-procinfo.c>.
	* sysdeps/x86/Makefile [$(subdir) == csu] (gen-as-const-headers):
	Add cpu-features-offsets.sym and rtld-global-offsets.sym.
	[$(subdir) == elf] (sysdep-dl-routines): Add dl-get-cpu-features.
	[$(subdir) == elf] (tests): Add tst-get-cpu-features.
	[$(subdir) == elf] (tests-static): Add
	tst-get-cpu-features-static.
	* sysdeps/x86/Versions: New file.
	* sysdeps/x86/cpu-features-offsets.sym: Likewise.
	* sysdeps/x86/cpu-features.c: Likewise.
	* sysdeps/x86/cpu-features.h: Likewise.
	* sysdeps/x86/dl-get-cpu-features.c: Likewise.
	* sysdeps/x86/libc-start.c: Likewise.
	* sysdeps/x86/rtld-global-offsets.sym: Likewise.
	* sysdeps/x86/tst-get-cpu-features-static.c: Likewise.
	* sysdeps/x86/tst-get-cpu-features.c: Likewise.
	* sysdeps/x86_64/dl-procinfo.c: Likewise.
	* sysdeps/x86_64/cacheinfo.c (__cpuid_count): Removed.
	Assume USE_MULTIARCH is defined and don't check it.
	(is_intel): Replace __cpu_features with GLRO(dl_x86_cpu_features).
	(is_amd): Likewise.
	(max_cpuid): Likewise.
	(intel_check_word): Likewise.
	(__cache_sysconf): Don't call __init_cpu_features.
	(__x86_preferred_memory_instruction): Removed.
	(init_cacheinfo): Don't call __init_cpu_features. Replace
	__cpu_features with GLRO(dl_x86_cpu_features).
	* sysdeps/x86_64/dl-machine.h: <cpu-features.c>.
	(dl_platform_init): Call init_cpu_features.
	* sysdeps/x86_64/ldsodefs.h: Include <cpu-features.h>.
	* sysdeps/x86_64/multiarch/Makefile (aux): Remove init-arch.
	* sysdeps/x86_64/multiarch/Versions: Removed.
	* sysdeps/x86_64/multiarch/cacheinfo.c: Likewise.
	* sysdeps/x86_64/multiarch/init-arch.c: Likewise.
	* sysdeps/x86_64/multiarch/ifunc-defines.sym (KIND_OFFSET):
	Removed.
	* sysdeps/x86_64/multiarch/init-arch.h: Rewrite.
2015-08-13 03:41:22 -07:00
..
64 libio: fmemopen rewrite to POSIX compliance 2015-07-08 12:07:21 -03:00
x32 libio: fmemopen rewrite to POSIX compliance 2015-07-08 12:07:21 -03:00
____longjmp_chk.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
__start_context.S Align stack to 16 bytes when calling __setcontext 2015-08-05 08:36:12 -07:00
arch-fork.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
brk.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
cancellation.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
clone.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
compat-timer.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
configure Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac. 2014-06-24 20:53:03 +00:00
configure.ac Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac. 2014-06-24 20:53:03 +00:00
dl-cache.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-procinfo.c Add _dl_x86_cpu_features to rtld_global 2015-08-13 03:41:22 -07:00
dl-procinfo.h Remove IS_IN_ldconfig 2014-11-24 11:41:43 +05:30
get_clockfreq.c Update. 2003-05-09 07:53:33 +00:00
getcontext.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Implies NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
init-first.c Consolidate sched_getcpu 2015-06-09 14:56:21 -03:00
kernel_stat.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
kernel-features.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ldconfig.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ldd-rewrite.sed Add x32 support to ldd-rewrite.sed 2012-03-19 15:18:44 -07:00
libc-cancellation.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
libc-lowlevellock.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
libmvec.abilist Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
librt-cancellation.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
lll_timedlock_wait.c Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
lll_timedwait_tid.c Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
lowlevellock.h Clean up BUSY_WAIT_NOP and atomic_delay. 2015-06-30 15:57:15 +02:00
lowlevellock.S Align stack to 16 bytes when calling __gettimeofday 2015-08-05 08:36:18 -07:00
lowlevelrobustlock.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
makecontext.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Makefile Add x86 32 bit vDSO time function support 2015-01-12 16:03:58 -02:00
profil-counter.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
pthread_barrier_wait.S Fix mq_notify pthread_barrier_* namespace (bug 18544). 2015-06-17 20:16:56 +00:00
pthread_cond_broadcast.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
pthread_cond_signal.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
pthread_cond_timedwait.S x86: Clean up __vdso_clock_gettime variable. 2015-02-06 10:44:11 -08:00
pthread_cond_wait.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
pthread_setaffinity.c Move remaining nptl/sysdeps/unix/sysv/linux/x86_64/ files. 2014-05-14 12:33:43 -07:00
readelflib.c Add x32 support to ldconfig 2012-03-16 15:20:45 -07:00
recv.c Fix mq_notify socket, recv namespace (bug 18546). 2015-06-17 20:20:08 +00:00
register-dump.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sched_setaffinity.c * sysdeps/unix/sysv/linux/sched_setaffinity.c 2007-05-10 23:38:55 +00:00
send.c nptl: Rewrite cancellation macros 2015-06-04 18:58:36 -03:00
setcontext.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sigaction.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sigaltstack-offsets.sym Use R*_LP, sizeSS, oSS_FLAGS, oSS_SP and oSS_SIZE 2012-05-15 16:43:11 -07:00
sigcontextinfo.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sigpending.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sigprocmask.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
swapcontext.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
syscall.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
syscalls.list Remove use of INTDEF/INTUSE in socket 2012-05-31 00:34:41 +02:00
sysconf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sysdep-cancel.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sysdep.h Consolidate sched_getcpu 2015-06-09 14:56:21 -03:00
sysdep.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
timer_create.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
timer_delete.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
timer_getoverr.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
timer_gettime.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
timer_settime.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ucontext_i.sym . 2007-07-31 13:33:18 +00:00
umount.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Versions x86: Clean up __vdso_clock_gettime variable. 2015-02-06 10:44:11 -08:00
vfork.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00