On Fri, Aug 15, 2008 at 10:48 AM, RW <[EMAIL PROTECTED]> wrote:
> On Thu, 14 Aug 2008 16:04:52 -0400
> "Maxim Khitrov" <[EMAIL PROTECTED]> wrote:
>> This is an old problem, but so far I haven't been able to find a
>> solution. When ccache is used to build world on amd64, the process
>> fails when /usr/src/lib/csu/i386-elf/crt1.c is compiled. If
>> WITHOUT_LIB32 is added to src.conf, this problem does not happen.
>> Likewise, building without ccache works fine.
> I take it that you've already tried removing any unnecessary settings
> such as CFLAGS.
> What interesting about this is that it's failing on a compile; i.e. on a
> cache miss, when ccache is doing next to nothing. That suggests that
> there's either a problem in the way that the real compiler is invoked
> by ccache, or that the real failure occurred during the building
> of the toolchain and it's dependencies.
> I'd try setting CCACHE_RECACHE temporarily in the environment, to flush
> out the old cached files, and see if it makes a difference.

I only set the CPUTYPE in make.conf, CFLAGS are untouched. Clearing
out the repository (ccache -C) doesn't help.

I think what's happening is that there is a collision in hash values
generated by ccache. That's the only thing I can think of, because
crt1.c is compiled twice; once from /usr/src/lib/csu/amd64/crt1.c, and
a second time from /usr/src/lib/csu/i386-elf/crt1.c. If LIB32 is
disabled in src.conf, only the first compilation takes place. If the
generated hash values are the same, by some chance, then the actual
problem is that the file is not compiled a second time when, in fact,
it should be. This is only a guess, however.

- Max
freebsd-questions@freebsd.org mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to