diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-08-26 07:55:42 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-08-26 07:55:42 -0700 |
commit | 38d22f9f48a84b441c5777aff103f5b980243b5f (patch) | |
tree | dcdb83615ee08ced45c18c00c23edca112ed1cb1 /sysdeps/i386/Makefile | |
parent | b022830bebc23456fc40825c6b5507bc0f52381f (diff) | |
download | glibc-38d22f9f48a84b441c5777aff103f5b980243b5f.tar.gz glibc-38d22f9f48a84b441c5777aff103f5b980243b5f.tar.xz glibc-38d22f9f48a84b441c5777aff103f5b980243b5f.zip |
Don't disable SSE in x86-64 ld.so
Since x86-64 ld.so preserves vector registers now, we can use SSE in x86-64 ld.so. We should run tst-ld-sse-use.sh only on i386. * sysdeps/x86/Makefile [$(subdir) == elf] (CFLAGS-.os, tests-special, $(objpfx)tst-ld-sse-use.out): Moved to ... * sysdeps/i386/Makefile [$(subdir) == elf] (CFLAGS-.os, tests-special, $(objpfx)tst-ld-sse-use.out): Here. Update comments. * sysdeps/x86_64/Makefile [$(subdir) == elf] (CFLAGS-.os): Add -mno-mmx for $(all-rtld-routines). * sysdeps/x86/tst-ld-sse-use.sh: Moved to ... * sysdeps/i386/tst-ld-sse-use.sh: Here. Replace x86-64 with i386.
Diffstat (limited to 'sysdeps/i386/Makefile')
-rw-r--r-- | sysdeps/i386/Makefile | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile index 717d8e7454..168512fc32 100644 --- a/sysdeps/i386/Makefile +++ b/sysdeps/i386/Makefile @@ -83,3 +83,17 @@ endif ifeq ($(subdir),csu) gen-as-const-headers += tlsdesc.sym endif + +ifeq ($(subdir),elf) +# Make sure no code in ld.so uses mm/xmm/ymm/zmm registers on i386 since +# the first 3 mm/xmm/ymm/zmm registers are used to pass vector parameters +# which must be preserved. +CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\ + -mno-sse -mno-mmx) + +tests-special += $(objpfx)tst-ld-sse-use.out +$(objpfx)tst-ld-sse-use.out: ../sysdeps/i386/tst-ld-sse-use.sh $(objpfx)ld.so + @echo "Checking ld.so for SSE register use. This will take a few seconds..." + $(BASH) $< $(objpfx) '$(NM)' '$(OBJDUMP)' '$(READELF)' > $@; \ + $(evaluate-test) +endif |