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

From: Bryan Drewery <bdrewery_at_FreeBSD.org>
Date: Thu, 16 Nov 2017 09:13:48 -0800
On 11/11/2017 2:25 PM, Mark Millard wrote:
> 
> 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.

Can you test this patch please in context of this problem please?
It resolves read-only objdirs and should avoid more of the objdir
creations at mergemaster/installworld time.  It probably will still
create the etc/sendmail one.

https://people.freebsd.org/~bdrewery/patches/top-level-objdirs.diff

> 
> 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
> 


-- 
Regards,
Bryan Drewery


Received on Thu Nov 16 2017 - 16:13:56 UTC

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