> > > /home/sysbuild/amd64/tools/bin/nbgpt  work.img biosboot -i 2
> > >  -c 
> > > /home/sysbuild/amd64/obj/home/sysbuild/src/distrib/amd64/installimage/work/usr/mdec/gptmbr.bin
> > > nbgpt: work.img: No secondary GPT header; run recover
> > > *** Failed target:  NetBSD-9.99.82-amd64-install.img
> > > *** Failed command: /home/sysbuild/amd64/tools/bin/nbgpt work.img
> > > biosboot -i 2 -c
> > > /home/sysbuild/amd64/obj/home/sysbuild/src/distrib/amd64/installimage/work/usr/mdec/gptmbr.bin
> > > *** Error code 1
> > > Stop.
> > > nbmake[4]: stopped in /home/sysbuild/src/distrib/amd64/installimage
> > > .....
> >
> > This is due to a stale installation file.  There is ongoing discussion
> > of this problem for PR 56132.  Please look there!  As a work-around,
> >
> >         rm -rf /build/netbsd-local/obj/amd64/distrib/amd64/installimage/
> 
> Thanks, removing the directory let me complete the build. My usual
> first reaction to a build failure is to 'make cleandir' in the source
> directories and remove the old obj directory completely; in most cases
> if there were a real problem it has already been addressed by NetBSD
> developers and the build is OK; in this case I had removed all the
> obj, tools and destdir directories just three days ago and didn't
> expect an early fallout...

The main problem is that iso_image, live_image, and install_image
targets of build.sh (and src/Makefile) hide detailed directory
structures for building images, so currently there is no way to
"clean objects only in image dirs".

A possible way is to add explicit targets like iso_image_clean,
live_image_clean, and install_image_clean etc. in all Makefiles
under src/distrib?

Anyway, we have workarounds but still need review by Makefile gurus:
 https://mail-index.netbsd.org/netbsd-bugs/2021/04/29/msg071345.html
 https://mail-index.netbsd.org/netbsd-bugs/2021/05/01/msg071360.html

---
Izumi Tsutsui

Reply via email to