Re: /usr/sbin/etcupdate -D/usr/obj/DESTDIRs/main-CA7-chroot -s /usr/main-src -M TARGET_ARCH=armv7 ends up building dtc !

From: Jessica Clarke <jrtc27_at_freebsd.org>
Date: Sun, 13 Aug 2023 19:07:30 UTC
On Sun, Aug 13, 2023 at 02:23:54AM -0700, Mark Millard wrote:
> On Aug 13, 2023, at 01:06, Mina Galić <freebsd@igalic.co> wrote:
> 
> > from IRC, i have learned this is working as designed:
> > etcupdate without -B does a build.
> 
> My interpretation of what "build" referred to for
> etcupate was way off. I've added the -B's that I
> was not using before.
> 
> Thanks for the note!
> 
> > Also, jrtc27 recently made it so bootstrapping, because otherwise BUILD_WITH_STRICT_TMPPATH doesn't work: https://github.com/freebsd/freebsd-src/commit/d81da4c98328d4ee3fe4c0a85f6874a3c69a1afd
> 
> Yep: that added what leads to the dtc build.
> 
> I still wonder if etcupdate builds more than it needs to
> for its specific pruposes when it does do a build:
> building dtc in order to complete an etcupdate just seems
> time/resource wasting.

It does, but teasing apart what's needed for buildworld/buildkernel and
just buildetc is a bunch of work, and better to have something that
works inefficiently than something that doesn't work. Patches more than
welcome to make it more efficient. However, I will note that 99% of the
time -B is what people should be using, so it's not all that important
(it's rare that you want to produce an etcupdate tree from sources that
haven't just been built).

Jess

> But, at least I'm using -B in the future.
> 
> > Kind regards, 
> > Mina Galić
> > 
> > 
> > 
> > 
> > -------- Original Message --------
> > On 13 Aug 2023, 08:32, Mark Millard < marklmi@yahoo.com> wrote:
> > I'd noticed that the etcupdate part of my build procedure has been taking much time. So I looked with a ps -axldww while it was going on. An example was: `-- /bin/sh /usr/sbin/etcupdate -D/usr/obj/DESTDIRs/main-CA7-chroot -s /usr/main-src -M TARGET_ARCH=armv7 `-- make TARGET_ARCH=armv7 -DNO_FILEMON buildetc `-- make -m /usr/main-src/share/mk -f Makefile.inc1 TARGET=arm TARGET_ARCH=armv7 buildetc `-- make -f Makefile.inc1 _bootstrap-tools MK_CROSS_COMPILER=no MK_TOOLCHAIN=no . . . `-- /bin/sh -e -c echo "===> usr.bin/dtc (obj,all,install)"; cd /usr/main-src/usr.bin/dtc;. . . install `-- make DIRPRFX=usr.bin/dtc/ all `-- c++ -O2 -pipe -fno-common -DNDEBUG . . . -c /usr/main-src/usr.bin/dtc/fdt.cc -o fdt.o More may build. This is just what was present when I happened to look. Seems an odd thing to be happening for an etcupdate . I'll note that aarch64 targeting aarch64 (self hosted build) also spends notable time and is likely doing similarly. === Mark Millard marklmi at yahoo.com 
> > 
> 
> 
> ===
> Mark Millard
> marklmi at yahoo.com