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.

Reply via email to