Build work 11.0 plans status update
Bryan Drewery
bdrewery at FreeBSD.org
Mon Jul 4 17:56:30 UTC 2016
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
More information about the freebsd-arch
mailing list