have not received much testing for Linux kernel compilation, and there are
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
-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
-no longer works around bugs in gcc 2.7.2.3 and, in fact, will refuse to
-be compiled with it. egcs-1.1.2 has register allocation problems in very
-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.
+Note that gcc 2.7.2.3 and gcc 2.91.66 (egcs-1.1.2) are no longer supported
+kernel compilers. The kernel no longer works around bugs in these versions,
+and, in fact, will refuse to be compiled with it.
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
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
----------
o <ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz>
COMPILING the kernel:
- - 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*.
+ - Make sure you have gcc 2.95.3 available.
+ 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)
if necessary. For more information, refer to ./Documentation/Changes.
* 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.
*/
-#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.
#endif