How do I point out OS includes?

Anders Lindgren
Fri Apr 13 12:21:00 GMT 2007

   I have successfully built a C/libc only toolchain for my own target, but 
I had to disable target-libiberty, C++ and libssp. The reason is that I 
don't know how to tell the gcc build where my OS include files are. This 
is no problem while building newlib, since I can stuff the necessary -I 
option into my target's newlib_cflags, but how do I do the corresponding 
thing for other target libraries? Since it's a cross-build, the OS 
includes are typically not even in a fixed place -- it depends entirely on 
where the user has the OS source checked out to.

   Top-level --with-headers looks like it would be the thing (apart from 
the copying part, but I have "rm" available :-) ) but is prominently 
listed as deprecated in favor or --with-sysroot. The latter however 
assumes a unix filesystem, and will start stuffing things like 
"usr/include" onto whatever I put there.

   This is just an issue while building the target libraries -- when using 
the finished toolchain, the appropriate include paths will be added by the 
build system. Should I use --with-sysroot and simply symlink 
$ROOT/usr/include back to $ROOT to make gcc happy?


More information about the Newlib mailing list