Configuring for bare hw ia32 PC's

duane ellis duane-newlib@duaneellis.com
Tue May 13 13:49:00 GMT 2008


duane> If you look at the makefile - it builds GCC in 2 stages stage 1 - is
duane> just a straight up C compiler, nothing else. No standard library. 
That
duane> should be enough to build your kernel as I describe.

jonathan> I gree, though I recommend building the kernel with the second
jonathan> round gcc. [snip]

[snip]

jonathan> Yes. But having done that, don't try to use stage1 GCC to 
build your
jonathan> kernel. Use stage2 GCC for everything, if only to reduce the 
number of
jonathan> variants of tools that can hurt you.

Wait - hold on for a second.

The stage1 GCC has *zero* header files, and only 'libgcc'.

White lie: GCC supplied <limits.h> and <stddef.h>  are present
(look in the 'lib' directory)

The benefit here is there is no accidental #include of a user space 
header file. Yes, you can do the same with "--nostdinc" and other
command line hackery :-(

It really depends on your needs, fears, etc. Perhaps my fear is over 
blow - why? Because linux x86 builds with "gcc" - the default compiler
and uses the "--nostdinc" trick.

BTW - you might also want to check out the -fnobuiltin options.

-Duane.




More information about the Newlib mailing list