From c3a8c11b0c6a6e44e98dcd4bb0fdb397e4fd56f7 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 2 Feb 2006 09:24:43 +0000 Subject: 2006-02-02 Roland McGrath * timezone/private.h: Update from tzcode2006a. * timezone/scheck.c: Likewise. * timezone/asia: Update from tzdata2006a. * timezone/northamerica: Likewise. * timezone/zone.tab: Likewise. * 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 * sysdeps/ieee754/ldbl-opt/Makefile (sysdep-CFLAGS): Avoid adding -mlong-double-128 when it's already there. --- sysdeps/ieee754/ldbl-opt/Makefile | 2 ++ sysdeps/powerpc/powerpc64/Makefile | 14 +++++++++++++- sysdeps/powerpc/powerpc64/elf/Makefile | 14 +++++++------- 3 files changed, 22 insertions(+), 8 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile index bcafb3c84a..7f7bc3ce33 100644 --- a/sysdeps/ieee754/ldbl-opt/Makefile +++ b/sysdeps/ieee754/ldbl-opt/Makefile @@ -2,7 +2,9 @@ # -mlong-double-128 option is used (or when it becomes a default # when -mlong-double-64 is not used). long-double-fcts = yes +ifeq (,$(filter -mlong-double-128,$(sysdep-CFLAGS))) sysdep-CFLAGS += -mlong-double-128 +endif ifeq ($(subdir),math) libm-routines += s_nexttowardfd diff --git a/sysdeps/powerpc/powerpc64/Makefile b/sysdeps/powerpc/powerpc64/Makefile index cf7c4337e0..78d4f07e57 100644 --- a/sysdeps/powerpc/powerpc64/Makefile +++ b/sysdeps/powerpc/powerpc64/Makefile @@ -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 diff --git a/sysdeps/powerpc/powerpc64/elf/Makefile b/sysdeps/powerpc/powerpc64/elf/Makefile index bd0580ebc9..6a77e116bd 100644 --- a/sysdeps/powerpc/powerpc64/elf/Makefile +++ b/sysdeps/powerpc/powerpc64/elf/Makefile @@ -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) -- cgit 1.4.1