All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Nicks <allinux@gmail.com>
To: "akpm@osdl.org" <akpm@osdl.org>, linux-kernel@vger.kernel.org
Subject: RESEND [PATCH 2.6.14-rc1] ppc: prevent GCC 4 from generating AltiVec instructions in kernel
Date: Tue, 13 Sep 2005 23:45:10 -0700	[thread overview]
Message-ID: <cb57165a0509132345419655fe@mail.gmail.com> (raw)

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)

                 reply	other threads:[~2005-09-14  6:45 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cb57165a0509132345419655fe@mail.gmail.com \
    --to=allinux@gmail.com \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.