Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 02 Oct 2012 23:48:08 +0200
From:      Dimitry Andric <dimitry@andric.com>
To:        Eitan Adler <lists@eitanadler.com>
Cc:        Volodymyr Kostyrko <c.kworr@gmail.com>, stable@freebsd.org
Subject:   Re: Missing lib on linking libc WITH_LIBCPLUSPLUS
Message-ID:  <506B6118.1020701@andric.com>
In-Reply-To: <CAF6rxgkGyHRwCgGxcRnwTOhJ7kfeuBvrBPNfjUWNFZ6zYP_fjg@mail.gmail.com>
References:  <506A9D89.80303@gmail.com> <506AB019.70501@andric.com> <506B0FF5.5050505@gmail.com> <CAF6rxgkGyHRwCgGxcRnwTOhJ7kfeuBvrBPNfjUWNFZ6zYP_fjg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2012-10-02 19:27, Eitan Adler wrote:
> On 2 October 2012 12:01, Volodymyr Kostyrko <c.kworr@gmail.com> wrote:
...
>> Bingo. Yes, disabling ccache makes everything work.
> please ping the ccache folk about this. It *shouldn't* matter. :)

In this case, ccache apparently does not realize that the world stage is
using the toolchain built during the cross-tools stage, which usually is
in /usr/obj/usr/src/tmp/usr/bin.

This toolchain uses another include and lib path, e.g. it only refers to
headers and libraries under /usr/obj, specifically *not* those in the
base system.

In Volodymyr's original log, you can see /usr/bin/ld being invoked by
the compiler driver, not /usr/obj/usr/src/tmp/usr/bin/ld.  I think
ccache invokes /usr/bin/cc, instead of /usr/obj/usr/src/tmp/usr/bin/cc.

Normally ccache searches the PATH to find the 'real' cc executable, but
I am not sure why this goes wrong during the world stage.  It would be
interesting to see some verbose logging from ccache, to see how it finds
the cc executable here.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?506B6118.1020701>