buildworld, buildkernel, and devel/cache
Warren Block
wblock at wonkity.com
Mon Jan 26 23:29:41 UTC 2015
On Mon, 26 Jan 2015, Scott Bennett wrote:
> On Mon., 27 January 2015, Warren Block <wblock at wonkity.com> wrote:
>> On Mon, 26 Jan 2015, Scott Bennett wrote:
>>> On Mon, 26 Jan 2015 10:24:22 +0200 Ivan Klymenko <fidaj at ukr.net> wrote:
>>>>> In /root/.profile I have
>>>>>
>>>>> CCACHE_DIR=/buildwork/ccache
>>>>> export PATH=/usr/local/libexec/ccache:$PATH
>>>>> export CCACHE_PATH=/usr/bin:/usr/local/bin
>>>>>
>>>>> In /root/.cshrc.extensions, a file I source from /root/.cshrc, I have
>>>>>
>>>>> setenv CCACHE_DIR /buildwork/ccache
>>>>> setenv PATH /usr/local/libexec/ccache:$PATH
>>>>> setenv CCACHE_PATH /usr/bin:/usr/local/bin
>>>>>
>>>> This file is in some ways you can
>>>> help /usr/local/share/doc/ccache/ccache-howto-freebsd.txt
>>>
>>> I had read that and hadn't seen how that would work, but after seeing
>>> your reply, I tried adding the three lines to /etc/make.conf and got errors,
>>> like I had expected:
>>>
>>> make: "/etc/make.conf" line 18: Missing dependency operator
>>> make: RE substitution error: repetition-operator operand invalid
>>> make: Unclosed substitution for CXX (, missing)
>>> make: "/etc/make.conf" line 20: Undefined variable "${CXX:C,^c++,/usr/local/libexec/ccache/world/c++,1}"
>>> make: Fatal errors encountered -- cannot continue
>>> make: stopped in /usr/src
>>>
>>> So my question remains. Please respond if you have something that
>>> you have tried and know works.
>>> Thanks in advance.
>>
>> They are shell variables, so set them in the shell, .cshrc or the two
>> alternatives mentioned above.
>
> Well, the instructions in that file say,
>
> To use ccache for base add the following to /etc/make.conf. You
> can replace cc and c++ with the compilers of your choice. (re-
> member that only GCC and Clang can build world and kernel)
>
> && 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}
>
> which was why I had put those three lines into /etc/make.conf. On your
> suggestion, I moved them to /root/.profile and /root/.cshrc.extensions,
> with the results that in the csh case, I got (as expected) the
>
> Badly placed ()'s.
>
> error. sh gave no errors, so I started a buildworld, which has been running
> for a little while already, but with no evidence to be found (e.g., no
> counters increasing in "ccache -s" output, no ccache seen running in top,
> the only instances of ccache in lastcomm(1) output are the ones I entered
> manually to check the counters) that ccache is being used by buildworld at
> all. I have not yet tried any ports updates to see whether addition of
> those three lines to .profile had any adverse effect upon that process.
> Thanks for the try, though.
I might have missed something, so let's back up. Shell variables need
to be set, and entries in make.conf need to be added. Both are needed.
More information about the freebsd-questions
mailing list