about summary refs log tree commit diff
path: root/sysdeps/i386
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2016-04-02 21:55:25 -0700
committerMike Frysinger <vapier@gentoo.org>2016-04-09 22:14:24 -0400
commit1a5d01e79e40485e2e78ceb25f124a5ee31415fc (patch)
tree3ac2642323dd0f25c3b78ea255b04b39dc5afd6b /sysdeps/i386
parentef9ec897605ebb1422f1ddae26c944e739d2a660 (diff)
downloadglibc-1a5d01e79e40485e2e78ceb25f124a5ee31415fc.tar.gz
glibc-1a5d01e79e40485e2e78ceb25f124a5ee31415fc.tar.xz
glibc-1a5d01e79e40485e2e78ceb25f124a5ee31415fc.zip
When disabling SSE, make sure -fpmath is not set to use SSE either
This fixes errors when we inject sse options through CFLAGS and now
that we have -Werror turned on by default this warning turns into an
error on x86:

$ gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -x c /dev/null -S -mno-sse -mno-mmx
/dev/null:1:0: warning: SSE instruction set disabled, using 387 arithmetics

Where as:

$ gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -x c /dev/null -S -mno-sse -mno-mmx -mfpmath=387

Generates no warnings.
Diffstat (limited to 'sysdeps/i386')
-rw-r--r--sysdeps/i386/Makefile3
1 files changed, 2 insertions, 1 deletions
diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
index 168512fc32..6c91842b0d 100644
--- a/sysdeps/i386/Makefile
+++ b/sysdeps/i386/Makefile
@@ -88,8 +88,9 @@ 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.
+# With SSE disabled, ensure -fpmath is not set to use sse either.
 CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
-		   -mno-sse -mno-mmx)
+		   -mno-sse -mno-mmx -mfpmath=387)
 
 tests-special += $(objpfx)tst-ld-sse-use.out
 $(objpfx)tst-ld-sse-use.out: ../sysdeps/i386/tst-ld-sse-use.sh $(objpfx)ld.so