From nobody Fri Feb 24 03:31:07 2023 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PNFmW4mgZz3t97L for ; Fri, 24 Feb 2023 03:31:23 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic317-21.consmr.mail.gq1.yahoo.com (sonic317-21.consmr.mail.gq1.yahoo.com [98.137.66.147]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4PNFmW1QxWz4LJp for ; Fri, 24 Feb 2023 03:31:22 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1677209481; bh=A11DecxRk4cmkeT/5Fo+Ht1ZNJhdXGJJ/7IXYb00czU=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject:Reply-To; b=oJr8z6T/1BhmMutuuDg0NYsWSpmnSKSAqVlcT97cFAtLhc2PxAR2EHmL95xTN5Hsba8nxU9Yt30eYVgp55ntSE+wgcbcNYINy+b8IyIjm6Y0XdSIIyi6hiCqPg4X1j0+tdUWugeJMBD5rD6PR44GplvYE2N3ST6rdz5jWEmbwrwwBAxJxjIy7jh/6szu5Vt1NyOfotjlaqRIjtI8I5ie5Zd8o+K/tbikdio6pTCV3yzyaNgMCammwSVMHXcXhSB/XD6miZovms/gh9DTbqwIemJK4SWDHF+78pZuk9tKRZY+RWfvwyUtfLCUoaTta7QF9NL+07kgIktSB7UGIr8Twg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1677209481; bh=seEIUcj0Ic/rIxpD85sl/na19DREZwzaSw8T4vvkecu=; h=X-Sonic-MF:Subject:From:Date:To:From:Subject; b=EF1q+ItUtowT25B866zOmYiK/XfZlmWKCVEe5t0ApjR9BA3MylL44u3alfayzdRlclKRszURcOCM75z/hsen1568H3zXLWvxBTYAxUu6+85DyI2zNOz+lGAPUDyBC5NuGiQNw3FH/C2G1UGvQ0TF29P6H9S3VOui1rfPpqq1Gr6WD8hCUgQzlu1CtLKswbLPPCMMsse87leutBBIrBPYMHvyeRMMtM3gu9nuMPkijTuiKgYbeB+HGy/+O7yqyRKqqTTXSkFH/4M9k9ZRQ0rAzt1DRhfbDx2fOtzaNmjd7EAyC8sXgC8HLbbjSoTrJCnVNr+Y1I6BBuVbTlZZH8t4Pg== X-YMail-OSG: JB6MM8kVM1nVSvOmZt6elWOSN44mAKoWdj0pOsPtlZzkZiRnJPeJXupbScxFqKi uLl1xvfHJY0ShepdMFP8pIFS77Wtp3pKk8JgvE.aX9i7uxuyuPtfqbf9HXxz8IMU1iYZi7bYI4fA J8fhC8MFKl.Cplup9cdpcH7QeQ242V4_hHGzBebKnDaIV6VlnBJ.5ZOjjzCyQq8uymUlbmyccCoR WfkObUFnTzZ02yb3.o6NhkFP067TDFRakNwpHcoGf9BjXthrHhdkvJ.Z_o2mxpqGbX..jXh7iZr5 gIkF7ZccYLb_ElUSHk_WN.ZMI3MAFo.HnEF9rgJfk5LT16CFh.6iUcjX70hBzagNvZWV84X5E0iU .3euvAgI9H_9bMdlTmToc2dlp0_dimuP2lKAUH79ILYKhOaIRfQ_bEsNv2naU5Eo1BY0zru4iu2S fV1PaqAwHka7pKLVFNEOi4E0Aq0Tf0DF8v3g29qh_10zCS_Ga0Gqvm1ktUKNSAiYYD3PJrdcmS.p bk2VFqih2WwMGHqjcCI3Lh_oxDxMJ8O1rrXIbEAebCkS.mmA_TMQsQVIR7ZoI_rAN9Feb1ebFzHr 2BYilL_7SUIvOih6ThYBYo6n1.n6XMvzGKLEhR94MddUI2IO_la.bpG9_2dxOfRj4hSPLKsz4A.C crhaa_eADx3X2ZEh1r.IKhB3S8m20Jjtu8UBIY0e9NRgOS11XYk0DaSZvSKrkk_5bd27V8MSGL9h xCv_MWLh1YQc5UolXNTg8PK2LVUirUy5ezz6GnUAnAP8GSxgDNbBVyHiM6pYXIQQifoqbUVlXmHW QpdRub5GOQbuh8MgP2Zf6bmgoHSFAFkHXUSJdIPToOJE8SeC41V7VlFIA1Br2nFwEG35qXc6FP8Q Pk7gFp15Ox6RubioVMzBmpoidih3V3Eg6KuyGHWVlPpFbbiaqJIsKxpEONWlgIEYG4jSq8vWY3ZR im9nOZoAJ9GeeCLkgtWkGjsWQBPpsB9TfHdyOg1z4cxycr5srPsCkf._5xuEMFLInrymcWkpTiVx HH3QtsF_wNBdkJ7WxjS0IRsWrSpU_PXr.m32fEiTOPBzdHLqb6JaTr6hytQVR8L2BNExf9IHaM6y 6MLGiLRftTgKqOVg.xTHC7OP8K6LkjgqEOP7GnoUl_MheeUBJjqEcynaT25m15zMRU_4zMMxkM3G qFi.fsrLOeldIkmGBwFtNAlH4p5G1oS422SzTB_cRnAlRh3sexITBHsBgGCLS1.x5Q7uWKR4Uj8w kc4u29kwrnebj9OrF1SbISKFhD92CLww_jfEI287Hu_dsC_.oOGFqhlcHXzzRu4ntiE2gkY1KRxf L0NhqJOIjWOKtyaiHUfgKMa_HDWm9iFfQaPumNN2itXputD3tHP88vuaoiE0mdSOAUNK.lFqXzY8 IkP_mrSAtSMixhHID.EgtfOu62hd9DpGq7ha9FPW7V6CRIHlWINJP26.h6sOjACL.6IlDqy7oRga 8ytVz6DijJxB69FpssVGN6VvU1x1KNn1ua6dL7J4_ED6uiS6pz0GsY6aDd6sUGZ4yYSB3GU7MiLS XmjNwNX6TTGZzl.6k5kNQJ4sbcjq7iqjtajU_oGofzc142QhhVjQ3KBMQtOXiEJUEYhHMByYDPbm xyLs_ssUd1ra2PZ7BltPq2n6sxt.9sM9JCZmV.TC7moDmA.BfnArVkLLu.NrlWLQxMXSDLuakEsv LM51tq7PMU7DQe2Pa7ho1gm4h6MKpVZjOVbMekWWnYsDtO31Bdi4DfnVNtnhBz2CvIFlvcYvMxMf KjPV.76vuZToY2UVvgSzEdQBWV2HFM72GWIzb6Jz.Uc5QUVy4iCCZzI.FOEYycXi52L.PIr5wGJI IOj6jxeRj21F9YTykVawG.gJuHg5sHAYlhOqm31lYQsvfJHT2RzygxErSxquPZ9gSAJkDAfmcVmi D4JZXp4tZVpFnZA1DVHz.ZzQGaaMePD.kXowLO5uGKUq1rkLCEWYzTXwemUgw4HYk7jfm9B1CdZC avuLdaSOXBpgg1JZM2TV8mWd8Wcsps6Nb0px5UY1Y4XYj9PIbo2FEGfqJBZDJ2NhEf6dWOx2UWC6 2otTc4QrdCMCtMKMMlLRmcr1aApqytQNktwtMVIXLaSL5OLm88r7yfiTH24jskLT9fVwy4UQisYk 7eVGfHrgmomTxISPYLEvsIxBtOO80k7SKGDuLb17uf.ayFiJjflyaRe1OxSo9UgTlunHN1l2SP9E xglTPeT03sohUbcwjO66y8X36X.2m5qIO7xH3bNNjXEXHDVH135lwSIfelSn6RlScqf2YDm4IQF4 - X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic317.consmr.mail.gq1.yahoo.com with HTTP; Fri, 24 Feb 2023 03:31:21 +0000 Received: by hermes--production-gq1-655ddccc9-52j4r (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 70a048c2ce34fa2619fe22cf15f1d3e6; Fri, 24 Feb 2023 03:31:18 +0000 (UTC) Content-Type: text/plain; charset=us-ascii List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.400.51.1.1\)) Subject: Re: FYI: Why META_MODE rebuilds so much for building again after installworld (no source changes) From: Mark Millard In-Reply-To: <93460.1677202939@kaos.jnpr.net> Date: Thu, 23 Feb 2023 19:31:07 -0800 Cc: Bryan Drewery , Current FreeBSD , Peter Content-Transfer-Encoding: quoted-printable Message-Id: References: <3345EBA5-A09C-4E3F-B94D-39F57F56BDBB@yahoo.com> <73088.1611797582@kaos.jnpr.net> <10819.1677108389@kaos.jnpr.net> <76FA98EF-6184-4D7E-A01F-0EE8117D0D10@yahoo.com> <29887.1677115125@kaos.jnpr.net> <27790339-240F-4C97-97C7-38AFD8DE03D5@yahoo.com> <7FB6F619-6E71-4075-8A6C-573564371DD5@yahoo.com> <2655.1677134606@kaos.jnpr.net> <242BB478-B2FE-4BCC-A56E-098F3FEB3EE1@yahoo.com> <42586.1677183334@kaos.jnpr.net> <30.1677189836@kaos.jnpr.net> <1B5FCF8A-0DFD-4246-8464-65A44A40529F@yahoo.com> <93460.1677202939@kaos.jnpr.net> To: "Simon J. Gerraty" X-Mailer: Apple Mail (2.3731.400.51.1.1) X-Rspamd-Queue-Id: 4PNFmW1QxWz4LJp X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N [I'm back at this again after some time on other subjects.] On Feb 23, 2023, at 17:42, Simon J. Gerraty wrote: > Mark Millard wrote: >=20 >> Simplifying context . . . >> . . . >>> As I mentioned previously, there is no variablity of OBJTOP within = the >>> context of a single make instance - at least not once it starts = running >>> targets. >>>=20 >>>> . . . >>>=20 >>> .MAKE.META.IGNORE_PATHS +=3D ${OBJTOP}/tmp/legacy/usr >>=20 >> I'll use that definition line for the below. >=20 > Ok. >=20 >>> should result in nothing under ${OBJTOP}/tmp/legacy/usr causing a = target >>> to be out of date - just because it is newer. >>=20 >> I'll ignore there that that is skipping too much >> and just show what happens for the 2nd buildkernel >> of 2 in a row when I use that exact line for both >> make runs. >>=20 >> First counts of the "is newer than" lines, counting >> separate program names separately: >>=20 >> # cat = /usr/obj/BUILDs/main-amd64-nodbg-clang/sys-typescripts/typescript-make-amd= 64-nodbg-clang-amd64-host-2023-02-23:16:15:18 | grep "is newer than the = target" | sed - >> e "s@^.*: file '@file '@" | sort | uniq -c | sort -rn | more >> 2553 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/realpath' is newer than the target... >> 1001 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... >>=20 >=20 > It is of course critical to know what OBJDIR is at this point. > also can you show me the line in the meta file that is matching. So, using specific "is newer than" notice examples instead of the above counts . . . First some output log lines around a few sbin/realpath "is newer than" related Building lines, with the .info lines in place now (I've got both kmod.mk and kern.mk with the .info line, likely producing redundant output but I did not know up front for sure): make[4]: "/usr/main-src/sys/conf/kmod.mk" line 72:=20 .CURDIR=3D/usr/main-src/sys/modules/aac = .OBJDIR=3D/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/= sys/GENERIC-NODBG/modules/usr/main-src/sys/modules/aac = OBJTOP=3D/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/s= ys/GENERIC-NODBG/modules/usr/main-src .MAKE.META.IGNORE_PATHS=3D/bin/sh /bin /lib /rescue /sbin /usr/bin = /usr/lib /usr/sbin /usr/share /usr/include /usr/local/etc/libmap.d = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.am d64/sys/GENERIC-NODBG/modules/usr/main-src/tmp/legacy/usr make[4]: "/usr/main-src/sys/conf/kern.mk" line 3: = .CURDIR=3D/usr/main-src/sys/modules/aac = .OBJDIR=3D/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/= sys/GENERIC-NODBG/modules/usr/main-src/sys/modules/aac = OBJTOP=3D/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/s= ys/GENERIC-NODBG/modules/usr/main-src .MAKE.META.IGNORE_PATHS=3D/bin/sh /bin /lib /rescue /sbin /usr/bin = /usr/lib /usr/sbin /usr/share /usr/include /usr/local/etc/libmap.d = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.am d64/sys/GENERIC-NODBG/modules/usr/main-src/tmp/legacy/usr = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/machine.meta: 23: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/realpath' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/machine machine -> /usr/main-src/sys/amd64/include = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/x86.meta: 23: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/realpath' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/x86 x86 -> /usr/main-src/sys/x86/include = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/i386.meta: 23: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/realpath' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/i386 i386 -> /usr/main-src/sys/i386/include Some lines just following the above are some sbin/ln "is newer than" related Building lines: Skipping meta for beforedepend: .PHONY = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_scsi.h.meta: 12: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_scsi.h = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_cam.h.meta: 12: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_cam.h = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_aac.h.meta: 12: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_aac.h For reference for a sbin/realpath "is newer than" example, the sys/modules/aac/machine.meta : # Meta data file = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/machine.meta CMD @case machine in machine) path=3D/usr/main-src/sys/amd64/include = ;; *) path=3D/usr/main-src/sys/machine/include ;; esac ; = path=3D`realpath $path`; echo machine "->" $path ; ln -fns $path = machine CWD = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac TARGET machine -- command output -- machine -> /usr/main-src/sys/amd64/include -- filemon acquired metadata -- # filemon version 5 # Target pid 84728 # Start 1677207916.433304 V 5 E 84729 /bin/sh R 84729 /etc/libmap.conf R 84729 /usr/local/etc/libmap.d R 84729 /usr/local/etc/libmap.d/mesa.conf R 84729 /var/run/ld-elf.so.hints R 84729 /lib/libedit.so.8 R 84729 /lib/libc.so.7 R 84729 /lib/libtinfow.so.9 R 84729 /usr/share/locale/C.UTF-8/LC_CTYPE F 84729 84730 E 84730 = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legacy= /usr/sbin/realpath R 84730 /etc/libmap.conf R 84730 /usr/local/etc/libmap.d R 84730 /usr/local/etc/libmap.d/mesa.conf R 84730 /var/run/ld-elf.so.hints R 84730 /lib/libc.so.7 X 84730 0 0 E 84729 = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legacy= /usr/sbin/ln R 84729 /etc/libmap.conf R 84729 /usr/local/etc/libmap.d R 84729 /usr/local/etc/libmap.d/mesa.conf R 84729 /var/run/ld-elf.so.hints R 84729 /lib/libc.so.7 D 84729 machine L 84729 '/usr/main-src/sys/amd64/include' 'machine' X 84729 0 0 # Stop 1677207916.435305 # Bye bye For reference for a sbin/ln "is newer than" example, the sys/modules/aac/opt_scsi.h.meta : # Meta data file = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_scsi.h.meta CMD ln -sf = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/opt_scsi.h opt_scsi.h CWD = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac TARGET opt_scsi.h -- command output -- -- filemon acquired metadata -- # filemon version 5 # Target pid 84728 # Start 1677207916.439304 V 5 E 84735 = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legacy= /usr/sbin/ln R 84735 /etc/libmap.conf R 84735 /usr/local/etc/libmap.d R 84735 /usr/local/etc/libmap.d/mesa.conf R 84735 /var/run/ld-elf.so.hints R 84735 /lib/libc.so.7 D 84735 opt_scsi.h L 84735 = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENER= IC-NODBG/opt_scsi.h' 'opt_scsi.h' X 84735 0 0 # Stop 1677207916.440304 # Bye bye > If you add the .info line I suggested in kern.mk or kmod.mk > you should get some useful info. Added to both for now. The material above has the output from them from just before a "is newer than" notice. >> Thousands of rebuilt things based on: >>=20 >> . . ./tmp/legacy/usr/sbin/realpath >> . . ./tmp/legacy/usr/sbin/ln >>=20 >> It appears that buildkernel does not use an OBJTOP definition >> that references: >=20 > It is possible it does not have a "normal" value for it. > Kernel builds start in the objdir so .CURDIR is actually under > OBJTOP, so unless the makefiles have appropriate logic for that case, > and depending on how OBJTOP is derrived, you may have a bogus value. >=20 > The fix in that case would be the makefile setting OBJTOP. >=20 >>=20 >> /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64 >>=20 >> in my context. >>=20 >> For reference of Build lines paired with a few of those "is newer >> than" lines: >>=20 >>=20 >> I've still no clue of a notation that avoids this for >> my choice to use personal MAKEOBJDIRPREFIX paths: >=20 > That should work, looking at share/mk/src.sys.obj.mk > though looks like you might get >=20 > OBJROOT?=3D ${_default_makeobjdirprefix}${SRCTOP}/ >=20 > which may not be valid for a kernel build. > At least ${.OBJDIR} will not have that ${OBJROOT} as a prefix > and some of the settings for OBJTOP look just wrong to me: >=20 > OBJTOP:=3D ${OBJROOT:H} >=20 > is the opposite of what the relationship b/w OBJROOT and OBJTOP are in > DIRDEPS_BUILD but it looks like >=20 > OBJTOP:=3D ${OBJROOT}${MACHINE}.${MACHINE_ARCH} >=20 > is more likely to be used, but given the above default for OBJROOT > that is unlikely to work for a kernel build. >=20 > Looks like share/mk/src.sys.obj.mk grok's SB (the setup I/we use) so = you > can take control by setting SB and SB_OBJROOT to anything you like and > it should be used for OBJROOT and presumably hence OBJTOP even for a > kernel build. Though I normally use MAKEOBJDIR (similar to the way it > is set in _default_makeobjdir), I don't know how well that works with > legacy targets though - there's a lot of baked in assumptions about > using MAKEOBJDIRPREFIX. >=20 > Again that .info line I gave you would provide some useful clues. >=20 =3D=3D=3D Mark Millard marklmi at yahoo.com