Commit 479c0422 authored by Dave Jones's avatar Dave Jones Committed by Linus Torvalds

[PATCH] egcs no longer supported.

Andrew Morton found that egcs was miscompiling the per-cpu area code
on x86. This patch updates the check, and documentation accordingly.
parent 030f963e
...@@ -77,13 +77,11 @@ instead if you wish, although it may cause problems. Later versions of gcc ...@@ -77,13 +77,11 @@ instead if you wish, although it may cause problems. Later versions of gcc
have not received much testing for Linux kernel compilation, and there are have not received much testing for Linux kernel compilation, and there are
almost certainly bugs (mainly, but not exclusively, in the kernel) that almost certainly bugs (mainly, but not exclusively, in the kernel) that
will need to be fixed in order to use these compilers. In any case, using will need to be fixed in order to use these compilers. In any case, using
pgcc instead of egcs or plain gcc is just asking for trouble. pgcc instead of plain gcc is just asking for trouble.
Note that gcc 2.7.2.3 is no longer a supported kernel compiler. The kernel Note that gcc 2.7.2.3 and gcc 2.91.66 (egcs-1.1.2) are no longer supported
no longer works around bugs in gcc 2.7.2.3 and, in fact, will refuse to kernel compilers. The kernel no longer works around bugs in these versions,
be compiled with it. egcs-1.1.2 has register allocation problems in very and, in fact, will refuse to be compiled with it.
obscure cases. We have ensured the kernel does not trip these in any known
situation. The 2.5 tree is likely to drop egcs-1.1.2 workarounds.
The Red Hat gcc 2.96 compiler subtree can also be used to build this tree. The Red Hat gcc 2.96 compiler subtree can also be used to build this tree.
You should ensure you use gcc-2.96-74 or later. gcc-2.96-54 will not build You should ensure you use gcc-2.96-74 or later. gcc-2.96-54 will not build
...@@ -275,10 +273,6 @@ Getting updated software ...@@ -275,10 +273,6 @@ Getting updated software
Kernel compilation Kernel compilation
****************** ******************
egcs 1.1.2 (gcc 2.91.66)
------------------------
o <ftp://sourceware.cygnus.com/pub/gcc/releases/egcs-1.1.2/egcs-1.1.2.tar.bz2>
gcc 2.95.3 gcc 2.95.3
---------- ----------
o <ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz> o <ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz>
......
...@@ -153,8 +153,9 @@ CONFIGURING the kernel: ...@@ -153,8 +153,9 @@ CONFIGURING the kernel:
COMPILING the kernel: COMPILING the kernel:
- Make sure you have gcc 2.95.3 available. gcc 2.91.66 (egcs-1.1.2) may - Make sure you have gcc 2.95.3 available.
also work but is not as safe, and *gcc 2.7.2.3 is no longer supported*. gcc 2.91.66 (egcs-1.1.2), and gcc 2.7.2.3 are known to miscompile
some parts of the kernel, and are *no longer supported*.
Also remember to upgrade your binutils package (for as/ld/nm and company) Also remember to upgrade your binutils package (for as/ld/nm and company)
if necessary. For more information, refer to ./Documentation/Changes. if necessary. For more information, refer to ./Documentation/Changes.
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
* To avoid associated bogus bug reports, we flatly refuse to compile * To avoid associated bogus bug reports, we flatly refuse to compile
* with a gcc that is known to be too old from the very beginning. * with a gcc that is known to be too old from the very beginning.
*/ */
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 91) #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 95)
#error Sorry, your GCC is too old. It builds incorrect kernels. #error Sorry, your GCC is too old. It builds incorrect kernels.
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment