Skip site navigation (1)Skip section navigation (2)
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>