Re: [2.6.27 patch] #error for gcc 4.1.{0,1}

Previous thread: tty-kref-modcount oops in linux-next by Alex Chiang on Wednesday, August 13, 2008 - 4:34 pm. (3 messages)

Next thread: none
To: Andrew Morton <akpm@...>
Cc: <linux-kernel@...>
Date: Wednesday, August 13, 2008 - 4:44 pm

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>

---

This patch has been sent on:
- 6 Aug 2008
- 26 Jun 2008

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 *);

--

To: Adrian Bunk <bunk@...>
Cc: <linux-kernel@...>, Vegard Nossum <vegard.nossum@...>
Date: Wednesday, August 13, 2008 - 4:57 pm

On Wed, 13 Aug 2008 23:44:45 +0300

I've been hiding from this because it would wreck a lot of my
cross-compilers, which quite a few other people are using as well.

Vegard, save us!
--

To: Andrew Morton <akpm@...>
Cc: <linux-kernel@...>, Vegard Nossum <vegard.nossum@...>
Date: Wednesday, August 13, 2008 - 5:22 pm

We are talking about runtime breakages, with new breakages added in each
kernel release.

Which is not nice for users.

And my patch is the result of developers spending time on debugging and
working around a real-life bug caused by this compiler bug.

If you insist on keeping your 4.1.0 compilers I can prepare a patch that

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

--

Previous thread: tty-kref-modcount oops in linux-next by Alex Chiang on Wednesday, August 13, 2008 - 4:34 pm. (3 messages)

Next thread: none