mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 02:03:35 +08:00
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.
This commit is contained in:
parent
b022830beb
commit
38d22f9f48
13
ChangeLog
13
ChangeLog
@ -1,3 +1,16 @@
|
||||
2015-08-26 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2015-08-26 Stefan Liebler <stli@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/generic/unwind.h
|
||||
|
@ -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
|
||||
|
@ -1,5 +1,5 @@
|
||||
#! /bin/bash
|
||||
# Make sure no code in ld.so uses xmm/ymm/zmm registers on x86-64.
|
||||
# Make sure no code in ld.so uses xmm/ymm/zmm registers on i386.
|
||||
# Copyright (C) 2009-2015 Free Software Foundation, Inc.
|
||||
# This file is part of the GNU C Library.
|
||||
|
@ -1,14 +1,3 @@
|
||||
ifeq ($(subdir),elf)
|
||||
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/x86/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
|
||||
|
||||
ifeq ($(subdir),csu)
|
||||
gen-as-const-headers += cpu-features-offsets.sym rtld-global-offsets.sym
|
||||
endif
|
||||
|
@ -19,6 +19,10 @@ gen-as-const-headers += locale-defines.sym
|
||||
endif
|
||||
|
||||
ifeq ($(subdir),elf)
|
||||
# There is no good reason to use MMX in x86-64 ld.so with GCC.
|
||||
CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
|
||||
-mno-mmx)
|
||||
|
||||
sysdep-dl-routines += tlsdesc dl-tlsdesc
|
||||
|
||||
tests += ifuncmain8
|
||||
|
Loading…
Reference in New Issue
Block a user