All of lore.kernel.org
 help / color / mirror / Atom feed
* RESEND [PATCH 2.6.14-rc1] ppc: prevent GCC 4 from generating AltiVec instructions in kernel
@ 2005-09-14  6:45 Lee Nicks
  0 siblings, 0 replies; only message in thread
From: Lee Nicks @ 2005-09-14  6:45 UTC (permalink / raw)
  To: akpm@osdl.org, linux-kernel

Depending on how GCC is built, GCC 4 may generate altivec instructions
without user explicitly requesting vector operations in the code.
Although this is a performance booster for user applications, it is a
problem for kernel.
This patch explicitly instruct GCC to NOT generate altivec
instructions while building the kernel.
Here are some test cases I ran.
(1) build gcc 4.0.1 with '--with-cpu=7450 --enable-altivec
--enable-cxx-flags=-mcpu=7450', and use this gcc to build kernel
WITHOUT this kernel patch. Kernel fail to boot up on a 7450 board
because of altivec instructions in kernel.
(2) build gcc 4.0.1 with "--with-cpu=7450 --enable-altivec
--enable-cxx-flags=-mcpu=7450", and use this gcc to build kernel WITH
this kernel patch. Kernel boot up on a 7450 board without any problem.
(3) build gcc 4.0.1 with "--with-cpu=750
--enable-cxx-flags=-mcpu=750", and use this gcc to build kernel with
or without this kernel patch. Kernel boot up on a 7450 board without
any problem.
This patch should also work with GCC 3 or even earlier GCC 2.95.3.
Please review it for inclusion.

Signed-off-by: Lee Nicks <allinux@gmail.com>
======================================

diff -ruN linux-2.6.14-rc1-original/arch/ppc/Makefile
linux-2.6.14-rc1/arch/ppc/Makefile
--- linux-2.6.14-rc1-original/arch/ppc/Makefile 2005-09-13
20:00:34.000000000 -0700
+++ linux-2.6.14-rc1/arch/ppc/Makefile  2005-09-13 20:09:36.000000000 -0700
@@ -26,6 +26,12 @@
 AFLAGS         += -Iarch/$(ARCH)
 CFLAGS         += -Iarch/$(ARCH) -msoft-float -pipe \
                -ffixed-r2 -mmultiple
+
+# No AltiVec instruction when building kernel
+CFLAGS          += $(call cc-option, -mno-altivec)
+
 CPP            = $(CC) -E $(CFLAGS)
 # Temporary hack until we have migrated to asm-powerpc
 LINUXINCLUDE    += -Iarch/$(ARCH)/include
diff -ruN linux-2.6.14-rc1-original/arch/ppc64/Makefile
linux-2.6.14-rc1/arch/ppc64/Makefile
--- linux-2.6.14-rc1-original/arch/ppc64/Makefile       2005-09-13
20:00:36.000000000 -0700
+++ linux-2.6.14-rc1/arch/ppc64/Makefile        2005-09-13
20:08:41.000000000 -0700
@@ -75,6 +75,11 @@
        CFLAGS += $(call cc-option,-mtune=power4)
 endif

+# No AltiVec instruction when building kernel
+CFLAGS          += $(call cc-option, -mno-altivec)
+
 # Enable unit-at-a-time mode when possible. It shrinks the
 # kernel considerably.
 CFLAGS += $(call cc-option,-funit-at-a-time)

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-09-14  6:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-14  6:45 RESEND [PATCH 2.6.14-rc1] ppc: prevent GCC 4 from generating AltiVec instructions in kernel Lee Nicks

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.