Date: Wed, 30 Mar 2011 17:23:32 +0200 From: Dimitry Andric <dim@FreeBSD.org> To: mdf@FreeBSD.org Cc: freebsd-hackers <freebsd-hackers@freebsd.org> Subject: Re: Include file search path Message-ID: <4D934AF4.9080503@FreeBSD.org> In-Reply-To: <AANLkTi=BiUVnzsGg83wwWPHjnTDR=XukhJ3UK6Bd5hvF@mail.gmail.com> References: <AANLkTi=BiUVnzsGg83wwWPHjnTDR=XukhJ3UK6Bd5hvF@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2011-03-29 23:20, mdf@FreeBSD.org wrote: > So here's what I'm pondering. When I build a library, like e.g. libc, > where do the include files get pulled from? They can't (shouldn't) be > the ones in /usr/include, but I don't see a -nostdinc like for the > kernel. There are -I directives in the Makefile for > -I${.CURDIR}/include -I${.CURDIR}/../../include, etc., but that won't > remove /usr/include from the search path. During the bootstrap stage, a copy of gcc (or clang) is built, that has all default search paths for headers, libraries, etc, set relative to ${WORLDTMP}, usually /usr/obj/usr/src/tmp. E.g: $ /usr/obj/usr/src/tmp/usr/bin/gcc -v -E -x c /dev/null -o /dev/null Using built-in specs. Target: amd64-undermydesk-freebsd Configured with: FreeBSD/amd64 system compiler Thread model: posix gcc version 4.2.1 20070719 [FreeBSD] /usr/obj/usr/src/tmp/usr/libexec/cc1 -E -quiet -v -D_LONGLONG /dev/null -o /dev/null #include "..." search starts here: #include <...> search starts here: /usr/obj/usr/src/tmp/usr/include/gcc/4.2 /usr/obj/usr/src/tmp/usr/include End of search list. and: $ /usr/obj/usr/src/tmp/usr/bin/gcc -print-search-dirs install: /usr/obj/usr/src/tmp/usr/libexec/ programs: =/usr/obj/usr/src/tmp/usr/bin/:/usr/obj/usr/src/tmp/usr/bin/:/usr/obj/usr/src/tmp/usr/libexec/:/usr/obj/usr/src/tmp/usr/libexec/:/usr/obj/usr/src/tmp/usr/libexec/ libraries: =/usr/obj/usr/src/tmp/usr/lib/:/usr/obj/usr/src/tmp/usr/lib/ This is a rather nasty hack, though. If we can make it work, we should probably try using --sysroot instead, or alternatively, -nostdinc and adding include dirs by hand. The same for executable and library search paths, although I am not sure if there is a way to completely reset those with the current options.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D934AF4.9080503>