The cause of the build problems with ccache

Ruslan Ermilov ru at freebsd.org
Thu Jan 19 04:57:29 PST 2006


On Thu, Jan 19, 2006 at 08:48:27AM +0100, Alexander Leidinger wrote:
> Hi,
> 
> I looked at the cause of the build errors when using ccache. When building
> with ccache, the compiler uses /usr/include instead of the includes in
> /usr/src (after the "unsigned char" -> "void" change in the md5 header this
> jumps directly into your face if you look at the error message).
> 
> Does the intermediate compiler in /usr/obj get build with a different default
> include path?
> 
Yes.  The magic is in this line in Makefile.inc1:

XMAKE=          TOOLS_PREFIX=${WORLDTMP} ${BMAKE} -DNO_FORTRAN -DNO_GDB
                ^^^^^^^^^^^^^^^^^^^^^^^^

> If yes:
>  - This would also result in picking up the wrong includes when someone tries
> to build the world with a different compiler (e.g. icc).
> 
I believe so.

>  - Wouldn't it be better to discard the default include path and add the
> include path we want explicitly on the command line?
> 
This was attempted before and failed.  I don't remember all the details
now (you can also go ask Marcel and David), but I remember GCC is picky
about standard paths: it would treat them differently from other
locations, resulting in a different set of warnings etc.  And we want
it to work exactly as if these paths were standard.  The compiler set
uses stuff in ${WORLDTMP}: new headers, libraries, etc.


Cheers,
-- 
Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20060119/7c6b57c7/attachment.bin


More information about the freebsd-arch mailing list