Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[2.4 patch] document that gcc 4 is not supported

59 views
Skip to first unread message

Adrian Bunk

unread,
May 30, 2005, 3:31:58 PM5/30/05
to Marcelo Tosatti, linux-...@vger.kernel.org
gcc 4 is not supported for compiling kernel 2.4, and I don't see any
compelling reason why kernel 2.4 should ever be adapted to gcc 4.

This patch documents this fact.

Signed-off-by: Adrian Bunk <bu...@stusta.de>

---

Documentation/Changes | 2 ++
README | 1 +
init/main.c | 7 +++++++
3 files changed, 10 insertions(+)

--- linux-2.4.31-rc1-full/init/main.c.old 2005-05-30 21:20:00.000000000 +0200
+++ linux-2.4.31-rc1-full/init/main.c 2005-05-30 21:21:19.000000000 +0200
@@ -84,6 +84,13 @@
#error Sorry, your GCC is too old. It builds incorrect kernels.
#endif

+/*
+ * gcc >= 4 is not supported by kernel 2.4
+ */
+#if __GNUC__ > 3
+#error Sorry, your GCC is too recent for kernel 2.4
+#endif
+
extern char _stext, _etext;
extern char *linux_banner;

--- linux-2.4.31-rc1-full/README.old 2005-05-30 21:21:29.000000000 +0200
+++ linux-2.4.31-rc1-full/README 2005-05-30 21:21:59.000000000 +0200
@@ -152,6 +152,7 @@

- Make sure you have gcc 2.95.3 available. gcc 2.91.66 (egcs-1.1.2) may
also work but is not as safe, and *gcc 2.7.2.3 is no longer supported*.
+ gcc 4 is *not* supported.
Also remember to upgrade your binutils package (for as/ld/nm and company)
if necessary. For more information, refer to ./Documentation/Changes.

--- linux-2.4.31-rc1-full/Documentation/Changes.old 2005-05-30 21:22:10.000000000 +0200
+++ linux-2.4.31-rc1-full/Documentation/Changes 2005-05-30 21:22:41.000000000 +0200
@@ -91,6 +91,8 @@
You should ensure you use gcc-2.96-74 or later. gcc-2.96-54 will not build
the kernel correctly.

+gcc 4 is not supported.
+
In addition, please pay attention to compiler optimization. Anything
greater than -O2 may not be wise. Similarly, if you choose to use gcc-2.95.x
or derivatives, be sure not to use -fstrict-aliasing (which, depending on

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Mikael Pettersson

unread,
May 30, 2005, 4:02:51 PM5/30/05
to Adrian Bunk, Marcelo Tosatti, linux-...@vger.kernel.org
Adrian Bunk writes:
> gcc 4 is not supported for compiling kernel 2.4, and I don't see any
> compelling reason why kernel 2.4 should ever be adapted to gcc 4.
..

> --- linux-2.4.31-rc1-full/init/main.c.old 2005-05-30 21:20:00.000000000 +0200
> +++ linux-2.4.31-rc1-full/init/main.c 2005-05-30 21:21:19.000000000 +0200
> @@ -84,6 +84,13 @@
> #error Sorry, your GCC is too old. It builds incorrect kernels.
> #endif
>
> +/*
> + * gcc >= 4 is not supported by kernel 2.4
> + */
> +#if __GNUC__ > 3
> +#error Sorry, your GCC is too recent for kernel 2.4
> +#endif
> +
> extern char _stext, _etext;
> extern char *linux_banner;
>

This is redundant. Any attempt to compile vanilla 2.4 with gcc4
will fail with compilation errors. (And except for one issue on
x86-64 which actually was a kernel bug, those are the only known
issues with using gcc4 for 2.4.)

OTOH, for those of us that do use gcc4, this just gets in the way
and forces the gcc4 fixes kit for 2.4 to be even larger.

Since distributors won't use gcc4 for 2.4, and naive users won't
succeed anyway, what's the point?

/Mikael

Adrian Bunk

unread,
May 30, 2005, 4:17:45 PM5/30/05
to Mikael Pettersson, Marcelo Tosatti, linux-...@vger.kernel.org
On Mon, May 30, 2005 at 09:53:20PM +0200, Mikael Pettersson wrote:
> Adrian Bunk writes:
> > gcc 4 is not supported for compiling kernel 2.4, and I don't see any
> > compelling reason why kernel 2.4 should ever be adapted to gcc 4.
> ...

> > --- linux-2.4.31-rc1-full/init/main.c.old 2005-05-30 21:20:00.000000000 +0200
> > +++ linux-2.4.31-rc1-full/init/main.c 2005-05-30 21:21:19.000000000 +0200
> > @@ -84,6 +84,13 @@
> > #error Sorry, your GCC is too old. It builds incorrect kernels.
> > #endif
> >
> > +/*
> > + * gcc >= 4 is not supported by kernel 2.4
> > + */
> > +#if __GNUC__ > 3
> > +#error Sorry, your GCC is too recent for kernel 2.4
> > +#endif
> > +
> > extern char _stext, _etext;
> > extern char *linux_banner;
> >
>
> This is redundant. Any attempt to compile vanilla 2.4 with gcc4
> will fail with compilation errors. (And except for one issue on
> x86-64 which actually was a kernel bug, those are the only known
> issues with using gcc4 for 2.4.)

Without this patch, your screen is flooded with warnings and errors when
accidentially trying to compile kernel 2.4 with gcc 4.

With this patch, the same happens, but the last lines contain the
explanation
#error Sorry, your GCC is too recent for kernel 2.4

> OTOH, for those of us that do use gcc4, this just gets in the way
> and forces the gcc4 fixes kit for 2.4 to be even larger.

>...

If someone makes a patch to fix all issues with gcc 4, adding the
removal of this #error should be the most trivial part of the patch.

> /Mikael

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

0 new messages