Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Jan 2006 12:25:08 +0200
From:      Ruslan Ermilov <ru@freebsd.org>
To:        Ceri Davies <ceri@submonkey.net>, cvs-ports@freebsd.org, cvs-all@freebsd.org, ports-committers@freebsd.org
Subject:   Re: cvs commit: ports/devel/ccache Makefile
Message-ID:  <20060112102508.GC22138@ip.net.ua>
In-Reply-To: <20060112093633.GB28781@submonkey.net>
References:  <200601111549.k0BFnQQ2094145@repoman.freebsd.org> <b2203fed0601110810y6d225490m47a4fa3b2cbe9ba9@mail.gmail.com> <20060111163046.GS97223@submonkey.net> <20060111192504.GB36556@ip.net.ua> <20060112093633.GB28781@submonkey.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--jousvV0MzM2p6OtC
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Jan 12, 2006 at 09:36:33AM +0000, Ceri Davies wrote:
> On Wed, Jan 11, 2006 at 09:25:04PM +0200, Ruslan Ermilov wrote:
> > On Wed, Jan 11, 2006 at 04:30:46PM +0000, Ceri Davies wrote:
> > > On Wed, Jan 11, 2006 at 11:10:06AM -0500, michael johnson wrote:
> > > > On 1/11/06, Ruslan Ermilov <ru@freebsd.org> wrote:
> > > > >
> > > > > ru          2006-01-11 15:49:25 UTC
> > > > >
> > > > >   FreeBSD ports repository
> > > > >
> > > > >   Modified files:
> > > > >     devel/ccache         Makefile
> > > > >   Log:
> > > > >   Attempt to attract maintainer's attention to a problem a lot of
> > > > >   our users reported when doing "make buildworld" with NOCCACHE
> > > > >   defined (hardcodes CC and CXX to "/usr/bin/{cc|c++}").
> > > >=20
> > > >=20
> > > > Please feel free to change what ever in ccache so it works. I won't=
 be doing
> > > > much with freebsd for the next little bit.
> > >=20
> > > My ccache entry in make.conf looks like:
> > >=20
> > > # ccache
> > > .if !defined(NOCCACHE) && exists(/usr/local/libexec/ccache/cc)
> > > .if ${.CURDIR:M/usr/src*}
> > > CC=3D/usr/local/libexec/ccache/cc
> > > CXX=3D/usr/local/libexec/ccache/c++
> > > .else
> > > CC=3Dcc
> > > CXX=3Dc++
> > > .endif
> > > .else
> > > CC=3D/usr/bin/cc
> > > CXX=3D/usr/bin/c++
> > > .endif
> > >=20
> > > I could probably have used PREFIX too, but that always =3D=3D /usr/lo=
cal on
> > > my machines.
> > >=20
> > The last ".else" part is the problem when doing "make buildworld" and
> > NOCCACHE is defined.  I have no idea what will break if we just remove
> > it (i.e., revert rev. 1.2 to this patch).
>=20
> Oh, my bad.  Turns out I don't have ccache installed so the whole thing
> is getting ignored.
>=20
> Man, I was having a bad day yesterday.  Let's see what else I've
> broken...
>=20
The problem is not with having or not having ccache installed, but
with the hardcoded /usr/bin/cc and /usr/bin/c++ if NOCCACHE is
defined.  This breaks buildworld as follows:

- buildworld sets CC and CXX to point to specially built compilers
  available somewhere inside ${WORLDTMP},
- these compilers pick up correct (up-to-date) versions of headers,
  libraries, etc., from ${WORLDTMP},
- setting CC and CXX in /etc/make.conf makes them global variables,
  of a higher precedence than those that buildworld passes in
  shell environment,
- buildworld uses wrong compilers that pick up wrong headers etc.,
- buildworld breaks.

I don't care to fix the port (mostly because I'm not familiar with
ccache) but I'm full with getting mysterious build failure reports
=66rom our users, where in 90% of cases this was caused by the wrong
contents of /etc/make.conf suggested by port installation example.


Cheers,
--=20
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer

--jousvV0MzM2p6OtC
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)

iD8DBQFDxi6EqRfpzJluFF4RAnobAJ99N+5Kmj0aSi5mSZAfr/a3zfgwkwCfSLt7
foiX2ViTdetK0JAQ0etnFNk=
=Mugw
-----END PGP SIGNATURE-----

--jousvV0MzM2p6OtC--



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