From: Adrian Bunk <bunk@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
venkatesh.pallipadi@intel.com, davem@davemloft.net,
trini@kernel.crashing.org, hpa@zytor.com,
linux-kernel@vger.kernel.org, suresh.b.siddha@intel.com
Subject: [2.6.26 patch] #error for gcc 4.1.{0,1}
Date: Thu, 26 Jun 2008 13:37:51 +0300 [thread overview]
Message-ID: <20080626103751.GA30359@cs181140183.pp.htv.fi> (raw)
In-Reply-To: <alpine.LFD.1.10.0805011525460.5994@woody.linux-foundation.org>
On Thu, May 01, 2008 at 03:27:26PM -0700, Linus Torvalds wrote:
>
>
> On Thu, 1 May 2008, Andrew Morton wrote:
> > >
> > > I see only the following choices:
> > > - remove __weak and replace all current usages
> > > - move all __weak functions into own files, and ensure that also happens
> > > for future usages
> > > - #error for gcc 4.1.{0,1}
> >
> > Can we detect the {0,1}? __GNUC_EVEN_MORE_MINOR__?
>
> It's __GNUC_PATCHLEVEL__, I believe.
>
> So yes, we can distinguish 4.1.2 (good, and very common) from 4.1.{0,1}
> (bad, and rather uncommon).
>
> And yes, considering that 4.1.1 (and even more so 4.1.0) should be rare to
> begin with, I think it's better to just not support it.
Some talk and one and a half months later we still don't abort the build
for these gcc version.
If anyone has a better patch please step forward - otherwise I'd propose
the patch below.
> Linus
cu
Adrian
<-- snip -->
gcc 4.1.0 and 4.1.1 are known to miscompile the kernel:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27781
Usage of weak functions has become a common pattern in the kernel, and
usages get added in each kernel version increasing the probability of
bugs with each kernel release.
This miscompilation of weak functions can result in subtle runtime
errors.
#error for gcc 4.1.0 and 4.1.1 to prevent users from running into
this bug.
Note:
We already printed a #warning for gcc 4.1.0 due to a different bug.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
---
ee78871a1d85fe60958748c208389adb4031fefe diff --git a/init/main.c b/init/main.c
index f7fb200..bede344 100644
--- a/init/main.c
+++ b/init/main.c
@@ -76,8 +76,9 @@
* trouble.
*/
-#if __GNUC__ == 4 && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 0
-#warning gcc-4.1.0 is known to miscompile the kernel. A different compiler version is recommended.
+/* due to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27781 */
+#if __GNUC__ == 4 && __GNUC_MINOR__ == 1 && (__GNUC_PATCHLEVEL__ == 0 || __GNUC_PATCHLEVEL__ == 1)
+#error gcc 4.1.0 and 4.1.1 are known to miscompile the kernel.
#endif
static int kernel_init(void *);
next prev parent reply other threads:[~2008-06-26 10:40 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-30 1:31 [PATCH] /dev/mem gcc weak function workaround Venki Pallipadi
2008-04-30 4:28 ` David Miller
2008-04-30 12:49 ` Pallipadi, Venkatesh
2008-04-30 20:15 ` Tom Rini
2008-05-01 21:56 ` huge gcc 4.1.{0,1} __weak problem Adrian Bunk
2008-05-01 22:20 ` Andrew Morton
2008-05-01 22:27 ` Linus Torvalds
2008-05-01 22:33 ` Andrew Morton
2008-05-01 23:24 ` Tom Rini
2008-05-01 23:59 ` Andrew Morton
2008-05-02 0:21 ` Justin Mattock
2008-05-02 7:18 ` Vegard Nossum
2008-05-02 13:43 ` Theodore Tso
2008-05-02 8:10 ` Adrian Bunk
2008-05-02 9:09 ` Andi Kleen
2008-05-01 22:35 ` Venki Pallipadi
2008-05-01 22:42 ` Andrew Morton
2008-05-01 22:49 ` Jakub Jelinek
2008-05-01 23:21 ` Tom Rini
2008-05-01 23:30 ` Venki Pallipadi
2008-05-02 0:34 ` Linus Torvalds
2008-05-02 0:39 ` Suresh Siddha
2008-05-02 21:11 ` Jeremy Fitzhardinge
2008-05-02 22:02 ` David Miller
2008-05-01 23:23 ` Tom Rini
2008-05-01 22:51 ` David Miller
2008-06-26 10:37 ` Adrian Bunk [this message]
2008-05-02 21:09 ` Jeremy Fitzhardinge
2008-05-02 21:19 ` Adrian Bunk
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=20080626103751.GA30359@cs181140183.pp.htv.fi \
--to=bunk@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=suresh.b.siddha@intel.com \
--cc=torvalds@linux-foundation.org \
--cc=trini@kernel.crashing.org \
--cc=venkatesh.pallipadi@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®