Re: ``make buildkernel'' fails when /usr/obj is empty

From: Matt Smith <matt.xtaz_at_gmail.com>
Date: Sun, 3 Jun 2018 11:31:09 +0100
On May 31 22:50, Konstantin Belousov wrote:
>On Thu, May 31, 2018 at 08:19:20PM +0200, Dimitry Andric wrote:
>> On 31 May 2018, at 20:11, Warner Losh <imp_at_bsdimp.com> wrote:
>> >
>> > On Thu, May 31, 2018 at 11:47 AM, Dimitry Andric <dim_at_freebsd.org> wrote:
>> > On 31 May 2018, at 18:04, Benjamin Kaduk <kaduk_at_MIT.EDU> wrote:
>> > > On Thu, May 31, 2018 at 09:58:50AM +0200, Gary Jennejohn wrote:
>> > >> On Thu, 31 May 2018 09:52:22 +0200
>> > >> Gary Jennejohn <gljennjohn_at_gmail.com> wrote:
>> ...
>> > > Whatever happened to the "run buildworld or kernel-toolchain before
>> > > buildkernel" requirement?
>> >
>> > That is still a requirement, yes.  Otherwise, you might have outdated
>> > toolchain components are in your /usr/obj.
>> >
>> > Usually you can get away without doing that, and now that clang is the toolchain that's rebuilt (and that's not fast) people try to get away with it more and more...
>>
>> Actually clang doesn't get updated *that* often, but there is a minor
>> snag that one of llvm's config files (lib/clang/include/llvm/Config/config.h)
>> includes <osreldate.h>, so each time __FreeBSD_version is bumped, quite
>> a lot of dependencies get triggered...
>>
>> The version is only used for two checks:
>>
>> #if __FreeBSD_version >= 1000052
>> /* Define to 1 if you have the `backtrace' function. */
>> #define HAVE_BACKTRACE TRUE
>>
>> and:
>>
>> /* Define to 1 if you have the `futimens' function. */
>> #if __FreeBSD_version >= 1100056
>> #define HAVE_FUTIMENS 1
>> #endif
>>
>> Maybe the first check could be dropped, assuming that backtrace() is
>> always available, but I'm not sure about futimens().  Is there any
>> supported version of FreeBSD left that does *not* have it?
>Or you can manually define the symbols as needed on each branch,
>eliminating the need for osreldate.h and reusable if some other
>configuration variable needs to be conditionally set.

Are these the kind of things that could get done in current and stable?  
Currently llvm/clang is rebuilt on pretty much every buildworld cycle 
that I do because of this which makes using things like WITH_META_MODE 
pretty pointless.

It would be great to get this kind of change in the trees.

-- 
Matt
Received on Sun Jun 03 2018 - 08:31:13 UTC

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