powerpc/e500: Update compilation flags with core specific options
authorCatalin Udma <catalin.udma@freescale.com>
Tue, 30 Jul 2013 11:39:24 +0000 (14:39 +0300)
committerScott Wood <scottwood@freescale.com>
Wed, 7 Aug 2013 23:49:44 +0000 (18:49 -0500)
If CONFIG_E500 is enabled, the compilation flags are updated
specifying the target core -mcpu=e5500/e500mc/8540
Also remove -Wa,-me500, being incompatible with -mcpu=e5500/e6500
The assembler option is redundant if the -mcpu= flag is set.
The patch fixes the kernel compilation problem for e5500/e6500
when using gcc option -mcpu=e5500/e6500.

Signed-off-by: Catalin Udma <catalin.udma@freescale.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
arch/powerpc/Makefile

index 967fd23..23c1b79 100644 (file)
@@ -98,7 +98,7 @@ CFLAGS-$(CONFIG_POWER7_CPU) += $(call cc-option,-mcpu=power7)
 CFLAGS-$(CONFIG_TUNE_CELL) += $(call cc-option,-mtune=cell)
 
 KBUILD_CPPFLAGS        += -Iarch/$(ARCH)
-KBUILD_AFLAGS  += -Iarch/$(ARCH)
+KBUILD_AFLAGS  += -msoft-float -Iarch/$(ARCH)
 KBUILD_CFLAGS  += -msoft-float -pipe -Iarch/$(ARCH) $(CFLAGS-y)
 CPP            = $(CC) -E $(KBUILD_CFLAGS)
 
@@ -132,6 +132,21 @@ ifeq ($(CONFIG_6xx),y)
 KBUILD_CFLAGS          += -mcpu=powerpc
 endif
 
+ifeq ($(CONFIG_E500),y)
+ifeq ($(CONFIG_64BIT),y)
+KBUILD_CFLAGS          += -mcpu=e5500
+KBUILD_AFLAGS          += -mcpu=e5500
+else
+ifeq ($(CONFIG_PPC_E500MC),y)
+KBUILD_CFLAGS          += -mcpu=e500mc
+KBUILD_AFLAGS          += -mcpu=e500mc
+else
+KBUILD_CFLAGS          += -mcpu=8540
+KBUILD_AFLAGS          += -mcpu=8540
+endif
+endif
+endif
+
 # Work around a gcc code-gen bug with -fno-omit-frame-pointer.
 ifeq ($(CONFIG_FUNCTION_TRACER),y)
 KBUILD_CFLAGS          += -mno-sched-epilog
@@ -139,7 +154,6 @@ endif
 
 cpu-as-$(CONFIG_4xx)           += -Wa,-m405
 cpu-as-$(CONFIG_ALTIVEC)       += -Wa,-maltivec
-cpu-as-$(CONFIG_E500)          += -Wa,-me500
 cpu-as-$(CONFIG_E200)          += -Wa,-me200
 
 KBUILD_AFLAGS += $(cpu-as-y)