* sysdeps/powerpc/powerpc64/Makefile (no-special-regs): New variable.
authorRoland McGrath <roland@gnu.org>
Thu, 2 Feb 2006 08:23:52 +0000 (08:23 +0000)
committerRoland McGrath <roland@gnu.org>
Thu, 2 Feb 2006 08:23:52 +0000 (08:23 +0000)
(CFLAGS-mcount.c): Use it instead of -msoft-float.
* sysdeps/powerpc/powerpc64/elf/Makefile
(CFLAGS-dl-runtime.os, CFLAGS-dl-lookup.os, CFLAGS-dl-misc.os,
CFLAGS-rtld-mempcpy.os, CFLAGS-rtld-memmove.os, CFLAGS-rtld-memchr.os,
CFLAGS-rtld-strnlen.os): LIkewise

ChangeLog
sysdeps/powerpc/powerpc64/Makefile
sysdeps/powerpc/powerpc64/elf/Makefile

index 1374057..f52d2ef 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-02-02  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/powerpc/powerpc64/Makefile (no-special-regs): New variable.
+       (CFLAGS-mcount.c): Use it instead of -msoft-float.
+       * sysdeps/powerpc/powerpc64/elf/Makefile
+       (CFLAGS-dl-runtime.os, CFLAGS-dl-lookup.os, CFLAGS-dl-misc.os,
+       CFLAGS-rtld-mempcpy.os, CFLAGS-rtld-memmove.os, CFLAGS-rtld-memchr.os,
+       CFLAGS-rtld-strnlen.os): LIkewise
+
 2006-02-01  Roland McGrath  <roland@redhat.com>
 
        * sysdeps/ieee754/ldbl-opt/Makefile (sysdep-CFLAGS): Avoid adding
index cf7c433..78d4f07 100644 (file)
@@ -10,6 +10,18 @@ ifeq (yes,$(build-shared))
 pic-ccflag = -fpic
 endif
 
+# These flags prevent FPU or Altivec registers from being used,
+# for code called in contexts that is not allowed to touch those registers.
+# Stupid GCC requires us to pass all these ridiculous switches.
+no-special-regs := $(sort $(foreach n,40 41 50 51 60 61 62 63 \
+                                     $(foreach m,2 3 4 5 6 7 8 9, \
+                                                 3$m 4$m 5$m),\
+                                   -ffixed-$n)) \
+                  $(sort $(foreach n,$(foreach m,0 1 2 3 4 5 6 7 8 9,\
+                                               $m 1$m 2$m) 30 31,\
+                                   -ffixed-v$n)) \
+                  -ffixed-vrsave -ffixed-vscr
+
 ifeq ($(subdir),csu)
 sysdep_routines += hp-timing
 elide-routines.os += hp-timing
@@ -29,5 +41,5 @@ ifeq ($(subdir),gmon)
 # The assembly functions assume that fp arg regs are not trashed.
 # Compiling with -msoft-float ensures that fp regs are not used
 # for moving memory around.
-CFLAGS-mcount.c += -msoft-float
+CFLAGS-mcount.c += $(no-special-regs)
 endif
index bd0580e..6a77e11 100644 (file)
@@ -2,10 +2,10 @@
 
 # Need to prevent gcc from using fprs in code used during dynamic linking.
 
-CFLAGS-dl-runtime.os := -msoft-float
-CFLAGS-dl-lookup.os := -msoft-float
-CFLAGS-dl-misc.os := -msoft-float
-CFLAGS-rtld-mempcpy.os := -msoft-float
-CFLAGS-rtld-memmove.os := -msoft-float
-CFLAGS-rtld-memchr.os := -msoft-float
-CFLAGS-rtld-strnlen.os := -msoft-float
+CFLAGS-dl-runtime.os = $(no-special-regs)
+CFLAGS-dl-lookup.os = $(no-special-regs)
+CFLAGS-dl-misc.os = $(no-special-regs)
+CFLAGS-rtld-mempcpy.os = $(no-special-regs)
+CFLAGS-rtld-memmove.os = $(no-special-regs)
+CFLAGS-rtld-memchr.os = $(no-special-regs)
+CFLAGS-rtld-strnlen.os = $(no-special-regs)