glibc/sysdeps/unix
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
..
alpha alpha: Unconditionally include dl-sysdep.h in sysdep.h 2015-04-06 10:36:44 -07:00
arm Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
bsd Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
i386 Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
inet Move nss directory into sysdeps Subdirs. 2013-02-05 14:32:48 -08:00
mips Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
powerpc Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sh Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sysv/linux Add _dl_x86_cpu_features to rtld_global 2015-08-13 03:41:22 -07:00
x86_64 Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Implies
Makefile Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
clock_gettime.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
clock_nanosleep.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
clock_settime.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
confstr.h
get_child_max.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getlogin.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getlogin_r.c Fix getlogin_r namespace (bug 18527). 2015-06-12 20:02:30 +00:00
getpagesize.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
grantpt.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ifreq.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
make-syscalls.sh Create hidden aliases for non-libc syscalls automatically. 2015-06-17 20:17:49 +00:00
s-proto-cancel.S
s-proto.S
setxid.h Update. 2004-11-12 01:27:04 +00:00
sockatmark.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
stime.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
syscall-template.S Create hidden aliases for non-libc syscalls automatically. 2015-06-17 20:17:49 +00:00
syscall.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
syscalls.list Fix nice getpriority, setpriority namespace (bug 18553). 2015-06-17 20:22:39 +00:00
sysdep.h nptl: Rewrite cancellation macros 2015-06-04 18:58:36 -03:00