Re: -r325627 of head: mergemaster: Creating objdir after objdir after . . .

From: Mark Millard <markmi_at_dsl-only.net>
Date: Sat, 11 Nov 2017 14:25:06 -0800
On 2017-Nov-11, at 8:47 AM, Bryan Drewery <bdrewery_at_FreeBSD.org> wrote:

>> On Nov 11, 2017, at 00:51, Mark Millard <markmi_at_dsl-only.net> wrote:
>> 
>>> On 2017-Nov-10, at 5:16 PM, Bryan Drewery <bdrewery at FreeBSD.org> wrote:
>>> 
>>>> On 11/10/2017 8:30 AM, Bryan Drewery wrote:
>>>> . . . 
>>>> In fact it's similar to my META_MODE whitelist in the top-level
>>>> Makefile.  There's quite a few targets we don't care for AUTO_OBJ on,
>>>> like distribute*, installworld, installkernel, etc.
>>> 
>>> r325697 should fix it.
>> 
>> Most of the messages are gone in -r325700 . But there was:
>> 
>> *** Creating the temporary root environment in /var/tmp/temproot
>> *** /var/tmp/temproot ready for use
>> *** Creating and populating directory structure in /var/tmp/temproot
>> 
>> [Creating objdir /usr/obj/usr/src/arm64.aarch64...]
>> [Creating objdir /usr/obj/usr/src/arm64.aarch64/etc...]
>> [Creating objdir /usr/obj/usr/src/arm64.aarch64/etc/sendmail...]
>> 
>> (No more objdir lines after that.)
> 
> Yea this is expected. Mergemaster runs ‘make obj’ in etc/.

Hmm. I looking I see the:

      ${MM_MAKE} _obj SUBDIR_OVERRIDE=etc >/dev/null &&
      ${MM_MAKE} everything SUBDIR_OVERRIDE=etc >/dev/null &&

Its too bad that the mergemaster man page makes no reference
to depending on MAKEOBJDIRPREFIX (or its default) and the
tree contents that it points to. If one has more than one
tree around then one should be picking the right one --but
nothing in the man page suggests that.

It also would not play well with not having that build tree
available at the time of a mergemaster.

The 20130425 UPDATING entry does note use of
MAKEOBJDIRPREFIX. It notes that mergemaster makes use of the
specific, bootstrapped mtree and install. Does that mean
that a cross-build needs mergemaster to be executed on
the cross-build host instead of on the target system? I do
not see the man page as well-covering such questions for
the proper usage technique.

Dependency on /usr/src (by default or an alternate via -m) is
clear from the man page. So, having a proper vintage of such
and having mergemaster use it was clear. But such seems to not
be sufficient, which was not clear.

> The top-level check-old objdir creation is unavoidable right now... you can use -DNO_OBJ if you want to avoid it.
> 
>> 
>>>> 
>>>>> However from reading mergemaster.sh it seems that _at least_
>>>>> /usr/obj/usr/src/etc/sendmail would be created before my changes.  Can
>>>>> someone confirm that on stable/ or something?
>>>>> 
>>>>>> 
>>>>>> (MAKEOBJDIRPREFIX= does control the path-prefix used
>>>>>> if specified in the env list before mergemaster.)
>>>>>> 
>> 


===
Mark Millard
markmi at dsl-only.net
Received on Sat Nov 11 2017 - 21:31:54 UTC

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