On Thu, 27 Dec 2001 22:24:23 +0100, Richard Zidlicky wrote: > On Thu, Dec 27, 2001 at 12:48:00PM +0100, Thierry Godefroy wrote: > > > I do compile my i586 kernels with gcc v2.95.2, BUT in this case you MUST > > change the root Makefile so that the gcc "-fomit-frame-pointer" options > > are replaced (in two locations of the Makefile) by "-fno-omit-frame-pointer": > > failing to do this WILL result in an UNSTABLE kernel. > > I would not recommend this, use a reliable compiler.
Then use gcc 2.91.66 = egcs 1.1.2 for kernel v2.2.x (quoting the "Changes" file in documentation: "In general, however, gcc-2.7.2.3 and egcs 1.1.2 are known to be stable on x86, while gcc 2.95 and others have not been as thoroughly tested yet.") and gcc 2.95.3/4 for kernel v2.4.x (quoting "Changes": "The recommended compiler for the kernel is gcc 2.95.3 or .4, and it should be used when you need absolute stability. .../... 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).") > Surely Mandrake has updates for their compiler packages? For gcc 2.95.1/2 based distributions (Mandrake 7.x), they used a patch in their kernel packages so that "kgcc" (in fact a symlink to egcs 1.1.2=gcc 2.91.66) is used in the Makefiles of the kernel source tree instead of "gcc". "kgcc" stands for "kernel gcc"... IIRC, Redhat (6.x) and Suse (6.x) used the same trick... I don't know what compiler they all use for recent distributions (Mandrake 8.x, Redhat 7.x,...). > Iirc some of the kernel code assumes -fomit-frame-pointer, at least > ucLinux code did this. If it works for you than probably because this > code has special makefile rules. No, I am sure (for having searched the compilation log for any remaining -fomit-frame-pointer) that -fno-omit-frame-pointer is used everywhere: I never had any kernel stability problem since I use this setting (over two years now...). BTW, the pre-compiled kernels on q60linux.free.fr are all compiled with gcc 2.91.66 and the standard Makefiles (-fomit-frame-pointer setting in force). Thierry.
