After looking at the various other patches that people posted, I've come up with this revised version of my original... -Barry K. Nathan <[EMAIL PROTECTED]> diff -ruN linux-2.4.0test10pre5/Documentation/Changes linux-2.4.0test10pre5-bkn/Documentation/Changes --- linux-2.4.0test10pre5/Documentation/Changes Mon Oct 23 20:20:31 2000 +++ linux-2.4.0test10pre5-bkn/Documentation/Changes Wed Oct 25 11:35:48 2000 @@ -31,7 +31,7 @@ Eine deutsche Version dieser Datei finden Sie unter <http://www.stefan-winter.de/Changes-2.4.0.txt>. -Last updated: October 13, 2000 +Last updated: October 25, 2000 Chris Ricker ([EMAIL PROTECTED] or [EMAIL PROTECTED]). @@ -48,7 +48,7 @@ Card) hardware, for example, you probably needn't concern yourself with pcmcia-cs. -o Gnu C 2.7.2.3 # gcc --version +o Gnu C 2.91.66 # gcc --version o Gnu make 3.77 # make --version o binutils 2.9.1.0.25 # ld -v o util-linux 2.10o # kbdrate -v @@ -64,13 +64,22 @@ GCC --- -You will need at least gcc 2.7.2 to compile the kernel. You currently -have several options for gcc-derived compilers: gcc 2.7.2.3, various -versions of egcs, the new gcc 2.95 and upcoming gcc 3.0, and experimental -compilers like pgcc. For absolute stability, it is still recommended -that gcc 2.7.2.3 be used to compile your kernel. egcs 1.1.2 should also -work. gcc 2.95 is known to have problems, and using pgcc for your kernel -is just asking for trouble. +The gcc version requirements may vary depending on the type of CPU in your +computer. The next paragraph applies to users of x86 CPUs, but not +necessarily to users of other CPUs. Users of other CPUs should obtain +information about their gcc version requirements from another source. + +The recommended compiler for the kernel is egcs 1.1.2 (gcc 2.91.66), and it +should be used when you need absolute stability. You may use gcc 2.95.2 +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 +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. + +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. 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 @@ -85,7 +94,7 @@ Binutils -------- -Linux on IA/32 has recently switched from using as86 to using gas for +Linux on IA-32 has recently switched from using as86 to using gas for assembling the 16-bit boot code, removing the need for as86 to compile your kernel. This change does, however, mean that you need a recent release of binutils. @@ -245,12 +254,7 @@ Compilers ********* -gcc 2.7.2.3 ------------ -o <ftp://ftp.gnu.org/gnu/gcc/gcc-2.7.2.3.tar.gz> -o <ftp://metalab.unc.edu/pub/gnu/gcc-2.7.2.3.tar.gz> - -egcs 1.1.2 +egcs 1.1.2 (gcc 2.91.66) --------- o <ftp://ftp.valinux.com/pub/support/hjl/gcc/egcs-1.1.2/egcs-1.1.2-glibc.x86.tar.bz2> o <ftp://ftp.valinux.com/pub/support/hjl/gcc/egcs-1.1.2/egcs-1.1.2-libc5.x86.tar.bz2> diff -ruN linux-2.4.0test10pre5/README linux-2.4.0test10pre5-bkn/README --- linux-2.4.0test10pre5/README Wed Oct 25 11:41:30 2000 +++ linux-2.4.0test10pre5-bkn/README Wed Oct 25 11:45:35 2000 @@ -161,12 +161,10 @@ COMPILING the kernel: - - Make sure you have gcc-2.7.2 or newer available. It seems older gcc - versions can have problems compiling newer versions of Linux. This - is mainly because the older compilers can only generate "a.out"-format - executables. As of Linux 2.1.0, the kernel must be compiled as an - "ELF" binary. If you upgrade your compiler, remember to get the new - binutils package too (for as/ld/nm and company). + - Make sure you have gcc-2.91.66 (egcs-1.1.2) available. gcc 2.95.2 may + also work but is not as safe, and *gcc 2.7.2.3 is 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. Please note that you can still run a.out user programs with this kernel. diff -ruN linux-2.4.0test10pre5/init/main.c linux-2.4.0test10pre5-bkn/init/main.c --- linux-2.4.0test10pre5/init/main.c Wed Oct 25 11:49:30 2000 +++ linux-2.4.0test10pre5-bkn/init/main.c Wed Oct 25 11:30:18 2000 @@ -73,8 +73,8 @@ * 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__ < 7) -#error sorry, your GCC is too old. It builds incorrect kernels. +#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 91) +#error Sorry, your GCC is too old. It builds incorrect kernels. #endif extern char _stext, _etext; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] Please read the FAQ at http://www.tux.org/lkml/