Joined: Sep. 2005
||Posted: Dec. 17 2007,03:23
You're right in that the notes with the 2.4.26 kernel sources (I did not check the 2.4.31 kernel sources) recommends using gcc-2.95.
I initially started with gcc-2.95 for the compile extension, but gcc-2.95 will not compile the version of the glibc library used in dsl, so I switched to gcc-3.3.5.
I have not seen any adverse effects compiling modules (eg bluetooth, irda, cifs) with the compile extension, but I will add a warning to the compile extension info file as suggested.
Edit: here is what it says on the subject in ../Documentation/Changes in both the 2.4.26 and 2.4.31 kernel sources:
|Current Minimal Requirements|
Upgrade to at *least* these software revisions before thinking you've
encountered a bug! If you're unsure what version you're currently
running, the suggested command should tell you.
Again, keep in mind that this list assumes you are already
functionally running a Linux 2.2 kernel. Also, not all tools are
necessary on all systems; obviously, if you don't have any PCMCIA (PC
Card) hardware, for example, you probably needn't concern yourself
o Gnu C 2.95.3 # gcc --version
o Gnu make 3.77 # make --version
o binutils 22.214.171.124.25 # ld -v
o util-linux 2.10o # fdformat --version
o modutils 2.4.14 # insmod -V
o e2fsprogs 1.25 # tune2fs
o jfsutils 1.0.12 # fsck.jfs -V
o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
o xfsprogs 2.6.0 # xfs_db -V
o pcmcia-cs 3.1.21 # cardmgr -V
o quota-tools 3.09 # quota -V
o PPP 2.4.0 # pppd --version
o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
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 gcc 2.95.x (x >= 3), and it
should be used when you need absolute stability. You may use gcc 3.0.x
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 126.96.36.199 is no longer a supported kernel compiler. The kernel
no longer works around bugs in gcc 188.8.131.52 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.
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
the kernel correctly.
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
your version of gcc 2.95.x, may necessitate using -fno-strict-aliasing).