[5/5] include tuning options into Makefile

2008-07-21 Thread Marvin

This patch finally adds mcpu/mtune options to the Makefile using the
previous introduced tuning mechanism.

Subject: [PATCH] include tuning options into Makefile

---
 arch/powerpc/Makefile |   41 +++--
 1 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 9629c5e..09f81a7 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -75,30 +75,35 @@ CPP = $(CC) -E $(KBUILD_CFLAGS)
 CHECKFLAGS 
+= -m$(CONFIG_WORD_SIZE) -D__powerpc__ -D__powerpc$(CONFIG_WORD_SIZE)__
 
 ifeq ($(CONFIG_PPC64),y)
-GCC_BROKEN_VEC := $(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y"; 
fi)
 
-ifeq ($(CONFIG_TUNE_POWER4),y)
-ifeq ($(CONFIG_OPT_EXCLUSIVE),y)
-ifeq ($(CONFIG_ALTIVEC),y)
-ifeq ($(GCC_BROKEN_VEC),y)
-   KBUILD_CFLAGS += $(call cc-option,-mcpu=970)
+ifeq ($(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y"; fi),y)
+P4CPU := power4
 else
-   KBUILD_CFLAGS += $(call cc-option,-mcpu=power4)
+P4CPU := 970
 endif
-else
-   KBUILD_CFLAGS += $(call cc-option,-mcpu=power4)
-endif
-else
-   KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
-endif
-   KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
+
+# optimize for specific cpu
+ifeq ($(CONFIG_TUNE_RS64),y)
+KBUILD_CFLAGS += $(call cc-option,-mcpu=rs64)
+else ifeq ($(CONFIG_TUNE_POWER3),y)
+KBUILD_CFLAGS += $(call cc-option,-mcpu=power3)
+else ifeq ($(CONFIG_TUNE_POWER4),y)
+KBUILD_CFLAGS += $(call cc-option,-mcpu=$(P4CPU))
+else ifeq ($(CONFIG_TUNE_CELL),y)
+KBUILD_CFLAGS += $(call cc-option,-mcpu=cell,-mtune=cell)
+else ifeq ($(CONFIG_TUNE_POWER5),y)
+KBUILD_CFLAGS += $(call cc-option,-mcpu=power5,-mtune=power5)
+else ifeq ($(CONFIG_TUNE_POWER6),y)
+KBUILD_CFLAGS += $(call cc-option,-mcpu=power6,-mtune=power6)
 endif
-else
-LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
+
+ifneq ($(CONFIG_OPT_EXCLUSIVE),y)
+KBUILD_CFLAGS := $(subst mcpu,mtune,$(KBUILD_CFLAGS))
 endif
 
-ifeq ($(CONFIG_TUNE_CELL),y)
-   KBUILD_CFLAGS += $(call cc-option,-mtune=cell)
+else
+# !PPC64
+LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
 endif
 
 # No AltiVec instruction when building kernel
-- 
1.5.6.2



___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [5/5] include tuning options into Makefile

2008-07-21 Thread Arnd Bergmann
On Monday 21 July 2008, Marvin wrote:

> +# optimize for specific cpu
> +ifeq ($(CONFIG_TUNE_RS64),y)
> +    KBUILD_CFLAGS += $(call cc-option,-mcpu=rs64)
> +else ifeq ($(CONFIG_TUNE_POWER3),y)
> +    KBUILD_CFLAGS += $(call cc-option,-mcpu=power3)
> +else ifeq ($(CONFIG_TUNE_POWER4),y)
> +    KBUILD_CFLAGS += $(call cc-option,-mcpu=$(P4CPU))
> +else ifeq ($(CONFIG_TUNE_CELL),y)
> +    KBUILD_CFLAGS += $(call cc-option,-mcpu=cell,-mtune=cell)
> +else ifeq ($(CONFIG_TUNE_POWER5),y)
> +    KBUILD_CFLAGS += $(call cc-option,-mcpu=power5,-mtune=power5)
> +else ifeq ($(CONFIG_TUNE_POWER6),y)
> +    KBUILD_CFLAGS += $(call cc-option,-mcpu=power6,-mtune=power6)
>  endif
> -else
> -LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o

I think it would be easier to express this logic in Kconfig than in
Makefile.

> +
> +ifneq ($(CONFIG_OPT_EXCLUSIVE),y)
> +    KBUILD_CFLAGS := $(subst mcpu,mtune,$(KBUILD_CFLAGS))
>  endif
>  

This still doesn't allow the most interesting case where you want to
optimize for a modern CPU but still allow older ones, e.g.
"-mcpu=power4 -mtune=power6".

Arnd <><
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev