Date: Mon, 2 Oct 2017 20:16:04 -0700 From: Pete Wright <pete@nomadlogic.org> To: freebsd-current@freebsd.org Subject: Re: building world via ccache broken? Message-ID: <fd2197f9-34b4-1a59-a8c7-83205fcc96c0@nomadlogic.org> In-Reply-To: <aa78eaa4-fe74-cc7c-aaa1-8d43e2430ace@nomadlogic.org> References: <0e4e8110-9b79-2010-852c-3815885d3523@nomadlogic.org> <df6fc4ca-1266-cc33-dbc8-6b4de21f659b@nomadlogic.org> <fe4ce7e9-f97e-c538-6f6f-410b48bc2648@FreeBSD.org> <aa78eaa4-fe74-cc7c-aaa1-8d43e2430ace@nomadlogic.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 10/02/2017 16:35, Pete Wright wrote:
>
>
> On 10/02/2017 16:33, Matt Joras wrote:
>> On 10/02/2017 15:23, Pete Wright wrote:
>>>
>>> On 10/02/2017 13:07, Pete Wright wrote:
>>>> hey there,
>>>> i've been unable to buildworld using ccache for a while. initially i
>>>> assumed it was due to some incompatibilities on the drm-next branch
>>>> which i was running, but i've since cut over to CURRENT and am still
>>>> having issues. running "make buildworld" i am running into this
>>>> exception:
>>>>
>>>> /usr/home/pwright/git/freebsd/lib/libufs/cgroup.c:217:11: error: no
>>>> member named 'fs_metackhash' in 'struct fs'
>>>> if ((fs->fs_metackhash & CK_CYLGRP) != 0) {
>>>> ~~ ^
>>>>
>>>>
>>>> full exception here:
>>>> https://gist.github.com/nomadlogic/30771aacd05d6dbb1c0cbebfb2ef6b61
>>>>
>>>> I am going to re-run this w/o ccache - to verify that this is a
>>>> ccache related issue. I guess my first question - is anyone else
>>>> using ccache successfully?
>>>>
>>> fwiw building the world without ccache works as expected. perhaps my
>>> make.conf is not correctly configured?
>>>
>>> $ cat /etc/make.conf
>>> .if !defined(NO_CCACHE)
>>> CC= /usr/local/libexec/ccache/world/cc
>>> CXX= /usr/local/libexec/ccache/world/c++
>>> .endif
>>>
>>> cheers,
>>> -pete
>>>
>> Someone can correct me if I'm wrong but I believe the current "correct"
>> way to get ccache builds is WITH_CCACHE_BUILD set in src.conf.
>> src.conf(5) seems to indicate as much as well. To answer your question,
>> yes, I am I'm sure many others are building world on HEAD with ccache
>> without issue.
>
> thanks, i had another person point me in this direction - and after
> reading the man page it does indeed clearly state as much :)
>
> what had tripped me up is that the ccache portfile installs:
> /usr/local/share/doc/ccache/ccache-howto-freebsd.txt
>
> which does not mention src.conf, but states:
>
> <snip>
> To use ccache for base add the following to /etc/make.conf.
> You can replace cc and c++ with the compilers of your choice.
> (remember that only GCC and Clang can build world and kernel)
>
> .if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*))
> .if !defined(NOCCACHE) && exists(/usr/local/libexec/ccache/world/cc)
> CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1}
> CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1}
> .endif
> .endif
> </snip>
>
> if i'm able to successfully build my world and kernel via src.conf
> i'll file a PR against the ccache port.
>
> cheers!
> -pete
>
I can verify that this works on my system, firing off a PR now to the
ports team to update documentation shortly :)
thanks for the input everyone.
-pete
--
Pete Wright
pete@nomadlogic.org
@nomadlogicLA
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?fd2197f9-34b4-1a59-a8c7-83205fcc96c0>
