Re: building world via ccache broken?

From: Pete Wright <pete_at_nomadlogic.org>
Date: Mon, 2 Oct 2017 20:16:04 -0700
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_at_nomadlogic.org
_at_nomadlogicLA
Received on Tue Oct 03 2017 - 01:16:07 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:13 UTC