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

2017-11-11 Thread Mark Millard

On 2017-Nov-11, at 8:47 AM, Bryan Drewery  wrote:

>> On Nov 11, 2017, at 00:51, Mark Millard  wrote:
>> 
>>> On 2017-Nov-10, at 5:16 PM, Bryan Drewery  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

___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"

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

2017-11-11 Thread Mark Millard

===
Mark Millard
mar...@dsl-only.net

On 2017-Nov-11, at 12:51 AM, Mark Millard  wrote:

> On 2017-Nov-10, at 5:16 PM, Bryan Drewery  wrote:
> 
>> On 11/10/2017 8:30 AM, Bryan Drewery wrote:
>>> On 11/10/17 7:52 AM, Bryan Drewery wrote:
 On 11/10/2017 12:46 AM, Mark Millard wrote:
> When I use the command:
> 
> ~/sys_build_scripts.aarch64-host/mergemaster_cortexA53-aarch64-host.sh 
> -FUPi -D/mnt
> 
> based on:
> 
> # more 
> ~/sys_build_scripts.aarch64-host/mergemaster_cortexA53-aarch64-host.sh
> kldload -n filemon && \
> script 
> ~/sys_typescripts/typescript_mergemaster_cortexA53_clang_bootstrap_clang-aarch64-host-$(date
>  +%Y-%m-%d:%H:%M:%S) \
> env __MAKE_CONF="/root/src.configs/make.conf" SRCCONF="/dev/null" 
> SRC_ENV_CONF="/root/src.configs/src.conf.cortexA53-clang-bootstrap.aarch64-host"
>  \
> mergemaster -A aarch64 $*
> 
> in a context where /usr/obj/usr does not exist
> (no local build tree present at the time), I get:
> 
> Script started, output file is 
> /root/sys_typescripts/typescript_mergemaster_cortexA53_clang_bootstrap_clang-aarch64-host-2017-11-09:23:57:04
> 
> *** 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/share/termcap...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/etc/syslog.d...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/usr.sbin/rmt...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/etc/pam.d...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/csu...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/csu/aarch64...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/libc...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/libc_nonshared...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/libcompiler_rt...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/libclang_rt...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/libc++...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/libc++experimental...]
> [Creating nested objdir 
> /usr/obj/usr/src/arm64.aarch64/lib/libc++experimental/filesystem...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/libcxxrt...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/libelf...]
> [Creating nested objdir /usr/obj/usr/src/arm64.aarch64/lib/libelf/sys...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/msun...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/libalias...]
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/lib/libalias/libalias...]
> . . . (long list) . . .
> [Creating objdir /usr/obj/usr/src/arm64.aarch64/usr.sbin/wpa/hostapd...]
> [Creating objdir 
> /usr/obj/usr/src/arm64.aarch64/usr.sbin/wpa/hostapd_cli...]
> [Creating objdir 
> /usr/obj/usr/src/arm64.aarch64/usr.sbin/wpa/ndis_events...]
> 
> 
> 
> So a /usr/obj/usr/src/arm64.aarch64/ directory tree
> ends up being created.
 
 Hah, not what we want. I'll fix that.
 
>>> 
>>> 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.)
> 
>>> 
 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.)
> 

FYI a check-old (with MAKEOBJDIRPREFIX="/usr/obj/cortexA53_clang/arm64.aarch64"
in use) got me a:

[Creating objdir 
/usr/obj/cortexA53_clang/arm64.aarch64/usr/src/arm64.aarch64...]

(Just the one objdir line.)

/usr/obj/cortexA53_clang/ did not exist when check-old
was started.

So, the activity does track MAKEOBJDIRPREFIX when it
is in use.

===
Mark Millard
markmi at dsl-only.net

___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"