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

2017-11-16 Thread Bryan Drewery
On 11/16/2017 1:15 PM, Mark Millard wrote:
> 
> ===
> Mark Millard
> mar...@dsl-only.net
> 
> On 2017-Nov-16, at 9:13 AM, Bryan Drewery  wrote:
> 
>>> . . .
>>
>> 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
>>
> . . .
> 
> I applied the patch.
> 
> The 3 experiments below only showed the sendmail related
> "Creating objdir" lines, no other "Creating objdir" lines.
> 
[...]
> 
> (So: None found in the typescript file.)
> 

Thanks!  I will commit it in a while.


-- 
Regards,
Bryan Drewery



signature.asc
Description: OpenPGP digital signature


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

2017-11-16 Thread Mark Millard

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

On 2017-Nov-16, at 9:13 AM, Bryan Drewery  wrote:

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

I applied the patch.

The 3 experiments below only showed the sendmail related
"Creating objdir" lines, no other "Creating objdir" lines.



Based on using ( /tmp/usr/obj/armv7_clang not existing at the time):

# more ~/sys_build_scripts.armv7-host/mergemaster_armv7-armv7-host.sh 
kldload -n filemon && \
script 
~/sys_typescripts/typescript_mergemaster_armv7_clang_bootstrap_clang-armv7-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.armv7-clang-bootstrap.armv7-host" \
MAKEOBJDIRPREFIX="/tmp/usr/obj/armv7_clang/arm.armv7" \
mergemaster -A armv7 $*

The merge master produced just the 3 objdir lines related to sendmail:

# ~/sys_build_scripts.armv7-host/mergemaster_armv7-armv7-host.sh -FUPi 
Script started, output file is 
/root/sys_typescripts/typescript_mergemaster_armv7_clang_bootstrap_clang-armv7-host-2017-11-16:12:31:48

*** 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 /tmp/usr/obj/armv7_clang/arm.armv7/usr/src/arm.armv7...]
[Creating objdir /tmp/usr/obj/armv7_clang/arm.armv7/usr/src/arm.armv7/etc...]
[Creating objdir 
/tmp/usr/obj/armv7_clang/arm.armv7/usr/src/arm.armv7/etc/sendmail...]

. . . (other stuff) . . .



Based on ( /usr/obj/bpim3_clang not existing at the time [renamed]):

# more 
~/sys_build_scripts.armv7-host/make_bpim3_nodebug_clang_bootstrap-armv7-host.sh 
kldload -n filemon && \
script 
~/sys_typescripts/typescript_make_bpim3_nodebug_clang_bootstrap-armv7-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.armv7-clang-bootstrap.armv7-host" \
WITH_META_MODE=yes \
WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x4200" \
MAKEOBJDIRPREFIX="/usr/obj/bpim3_clang/arm.armv7" \
make $*

the check-old did not produce any objdir lines:

# 
~/sys_build_scripts.armv7-host/make_bpim3_nodebug_clang_bootstrap-armv7-host.sh 
check-old
Script started, output file is 
/root/sys_typescripts/typescript_make_bpim3_nodebug_clang_bootstrap-armv7-host-2017-11-16:12:44:43
>>> Checking for old files
>>> Checking for old libraries
>>> Checking for old directories
To remove old files and directories run 'make delete-old'.
To remove old libraries run 'make delete-old-libs'.

Script done, output file is 
/root/sys_typescripts/typescript_make_bpim3_nodebug_clang_bootstrap-armv7-host-2017-11-16:12:44:43


As for installworld installkernel creating a new directory tree. . .
(same .sh file for check-old above but with /usr/obj/bpim3_clang back in place)

# 
~/sys_build_scripts.armv7-host/make_bpim3_nodebug_clang_bootstrap-armv7-host.sh 
-j4 installworld installkernel 
DESTDIR=/usr/obj/DESTDIRs/clang-armv7-installworld-objdir-test
Script started, output file is 
/root/sys_typescripts/typescript_make_bpim3_nodebug_clang_bootstrap-armv7-host-2017-11-16:12:54:04
--- installworld ---
make[1]: 
"/usr/obj/bpim3_clang/arm.armv7/usr/src/arm.armv7/compiler-metadata.mk" line 1: 
Using cached compiler metadata from build at bpim3 on Tue Nov 14 22:25:57 PST 
2017
--- __installcheck_UGID ---
--- installworld ---
. . .
--- _kmodinstall ---
install -T release -o root -g wheel -m 555   g_mouse.ko 
/usr/obj/DESTDIRs/clang-armv7-installworld-objdir-test/boot/kernel/
install -T debug -o root -g wheel -m 555   g_mouse.ko.debug 
/usr/obj/DESTDIRs/clang-armv7-installworld-objdir-test/usr/lib/debug/boot/kernel/
--- afterinstall ---
kldxref /usr/obj/DESTDIRs/clang-armv7-installworld-objdir-test/boot/kernel

Script done, output file is 
/root/sys_typescripts/typescript_make_bpim3_nodebug_clang_bootstrap-armv7-host-2017-11-16:12:54:04

# grep "Creating objdir" 
/root/sys_typescripts/typescript_make_bpim3_nodebug_clang_bootstrap-armv7-host-2017-11-16:12:54:04
 | more
#

(So: None found in the typescript file.)

===
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-16 Thread Bryan Drewery
On 11/11/2017 2:25 PM, Mark Millard wrote:
> 
> 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.

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



signature.asc
Description: OpenPGP digital signature