2005-05-30 19:29:17

by Adrian Bunk

[permalink] [raw]
Subject: [2.4 patch] document that gcc 4 is not supported

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 <[email protected]>

---

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


2005-05-30 20:01:16

by Mikael Pettersson

[permalink] [raw]
Subject: Re: [2.4 patch] document that gcc 4 is not supported

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

2005-05-30 20:14:30

by Adrian Bunk

[permalink] [raw]
Subject: Re: [2.4 patch] document that gcc 4 is not supported

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