Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Jul 2016 10:56:24 -0700
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        John Baldwin <jhb@FreeBSD.org>, freebsd-arch@freebsd.org
Subject:   Re: Build work 11.0 plans status update
Message-ID:  <81a1a205-381b-4651-91e1-660525589cd5@FreeBSD.org>
In-Reply-To: <e027e2fd-915e-c0d6-f727-4bc5edde2bde@FreeBSD.org>
References:  <201605270001.u4R01mKT087678@repo.freebsd.org> <fb451ad5-da16-cdbe-6106-8b67705600b3@FreeBSD.org> <20160527182543.GB4025@FreeBSD.org> <0d639d52-3ed4-a86d-3d45-b93c02939ce7@FreeBSD.org> <e027e2fd-915e-c0d6-f727-4bc5edde2bde@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 7/1/16 6:57 AM, John Baldwin wrote:
> On 6/30/16 12:42 PM, Bryan Drewery wrote:
>> (bcc'd some specific interested parties)
>>
>> This is from a private mail I sent to re@ a while back and is a status
>> update for upcoming work.
>>
>>> On Fri, May 27, 2016 at 11:18:58AM -0700, Bryan Drewery wrote:
>>>> Heads up, I intend to continue adding a few new features during the
>>>> slush/stable period since they are so impactful.  They will be
>>>> off-by-default for stable/11 at this point I guess.  I feel this is fine
>>>> since it is not ABI-related.
>>>>
>>>> - AUTO_OBJ: For subdir builds and buildworld, automatically create obj
>>>> dirs without needing 'make obj'.  I wanted to enable this by default but
>>>> can wait for the branch to be created.  There is some work pending for this.
> 
> Will there be a way to disable use of /usr/obj if desired?
> 
> Normally I do want it, but sometimes I don't.  One of my use cases is when
> I have a src tree mounted via NFS into a VM guest and /usr/obj is private
> to the guest.  Being able to build "in-tree" in a work checkout means that
> the binary is available on the host so I can run a debugger against it,
> and/or I can build the binary in one place and run it in both.
> 
> For my work with gdb which uses auto*, I use a 'obj' subdir of the checkout
> which is akin to what Simon suggests, but I can do that on a per-tree basis
> without having to set various env vars or having to specify make vars on each
> make invocation.
> 
> Also, when building random little source files ('vi foo.c' / 'make foo') it's
> handy to be able to ./foo instead of /usr/obj/<tab><tab><tab>/foo to find
> the binary I just built.
> 

Yes, the context you quoted was an earlier description rather than the
newer where I said:

> - AUTO_OBJ I am splitting into 3 separate patches after feedback.
>   1. Removing 'make obj' treewalks from buildworld/buildkernel.  This is
>      coming in the next few days.  No risk to it.
>   2. Unifying the objtree as like
>      /usr/obj/usr/src/TARGET.TARGET_ARCH/bin/sh.  This I will bring in
>      an option of UNIFIED_OBJDIR to flip between the old and new
>      patterns.  Some tools such as picobsd and the options survey will
>      rely on the old pattern.  A CFT is needed to discover what else
>      relies on the old patterns still.  There's also a problem of
>      migrating from the old tree to the new.  I will bring this patch
>      as off-by-default to re@ in the next week.
>   3. Default AUTO_OBJ in subdirs.  This one is kind of tricky and needs
>      some more thought.  Non-root especially may be problematic since
>      it will try to write to /usr/obj by default.  I likely will hold
>      off on this and not propose it for 11.0.

This last bit (3) is what you're asking about and is why I am more
hesitant to push it forward too quickly.  People often do want to build
in the local directory.  You would be able to disable it with
'WITHOUT_AUTO_OBJ=yes make', if it were on by default.

The argument for enabling this in a subdir build by default is because
it is too easy to get into a situation where stale files in the source
tree break the build and lead to confusion.  I get reports of this at
least once a week lately.  I don't want to cause more problems by
enabling it though.

-- 
Regards,
Bryan Drewery



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?81a1a205-381b-4651-91e1-660525589cd5>