[PATCH 03/18] Set -msoft-float and assembler target options in the bootwrapper.
Scott Wood
scottwood at freescale.com
Thu Jan 25 08:07:04 EST 2007
Without -msoft-float, floating point state saving code can be executed
(at least with certain buggy versions of GCC, which don't clear bit 6 of
CR before calling a varargs function with no varargs parameters).
Without the assembler target option, the assembler will use the old
dedicated mftb/mftbu instructions, rather than mfspr. This causes the
boot to hang on e500, which doesn't have the dedicated instructions.
Signed-off-by: Scott Wood <scottwood at freescale.com>
---
arch/powerpc/Makefile | 1 +
arch/powerpc/boot/Makefile | 3 ++-
2 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index a00fe72..2309cdf 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -118,6 +118,7 @@ cpu-as-$(CONFIG_E200) += -Wa,-me200
AFLAGS += $(cpu-as-y)
CFLAGS += $(cpu-as-y)
+export cpu-as-y
head-y := arch/powerpc/kernel/head_32.o
head-$(CONFIG_PPC64) := arch/powerpc/kernel/head_64.o
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 906b166..e95c1b0 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -24,7 +24,8 @@ all: $(obj)/zImage
HOSTCC := gcc
BOOTCFLAGS := $(HOSTCFLAGS) -fno-builtin -nostdinc -isystem \
- $(shell $(CROSS32CC) -print-file-name=include) -fPIC
+ $(shell $(CROSS32CC) -print-file-name=include) -fPIC \
+ $(cpu-as-y) -msoft-float
BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -traditional -nostdinc
ifeq ($(call cc-option-yn, -fstack-protector),y)
--
1.4.4
More information about the Linuxppc-dev
mailing list