Re: [releng/13.0] error during installworld

From: Marek Zarychta <zarychtam_at_plan-b.pwste.edu.pl>
Date: Tue, 22 Jun 2021 09:18:21 UTC
W dniu 22.06.2021 o 10:51, Yaroslav Shvets pisze:
> Hello Marek.
> 
> On Tue, 22 Jun 2021, 11:04, you wrote:
> 
>> W dniu 22.06.2021 o 08:30, Yaroslav Shvets pisze:
>>> Hello All.
>>>
>>> I have successfully updated os from the sources from releng/12.2 to
>>> releng/13.0.
>>> But when reinstalling the world from releng/13.0,
>>> I get the error during installworld:
>>>
>>> installworld.log:
>>> -- cut --
>>> ===> stand/i386/mbr (install)
>>> install   -o root -g wheel -m 444   mbr /boot/mbr
>>> ===> stand/i386/pmbr (install)
>>> install   -o root -g wheel -m 444   pmbr /boot/pmbr
>>> ===> stand/i386/boot0 (install)
>>> install   -o root -g wheel -m 444   boot0 /boot/boot0
>>> ===> stand/i386/boot0sio (install)
>>> install   -o root -g wheel -m 444   boot0 /boot/boot0sio
>>> ===> stand/i386/boot2 (install)
>>> btxld -v -E 0x2000 -f bin -b
>>> /usr/obj/usr/src/amd64.amd64/stand/i386/btx/btx/btx -l boot2.ldr  -o
>>> boot2.ld -P 1 boot2.bin
>>> make[6]: exec(btxld) failed (No such file or directory)
>>> *** Error code 1
>>>
>>> Stop.
>>> make[6]: stopped in /usr/src/stand/i386/boot2
>>> *** Error code 1
>>>
>>> Stop.
>>> make[5]: stopped in /usr/src/stand/i386
>>> *** Error code 1
>>>
>>> Stop.
>>> make[4]: stopped in /usr/src/stand
>>> *** Error code 1
>>>
>>> Stop.
>>> make[3]: stopped in /usr/src
>>> *** Error code 1
>>>
>>> Stop.
>>> make[2]: stopped in /usr/src
>>> *** Error code 1
>>>
>>> Stop.
>>> make[1]: stopped in /usr/src
>>> *** Error code 1
>>>
>>> Stop.
>>> make: stopped in /usr/src
>>> -- cut --
>>>
>>> /etc/src.conf is absent
>>>
>>> /etc/make.conf:
>>> -- cut --
>>> NO_GUI=         true
>>> NO_X=           true
>>> OPTIONS_UNSET=  GUI
>>> OPTIONS_UNSET=  X11
>>>
>>> # with SASLv2:
>>> SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2
>>> SENDMAIL_LDFLAGS=-L/usr/local/lib
>>> SENDMAIL_LDADD=-lsasl2
>>> -- cut --
>>>
>>> What to do now?
>>>
>>
>> It became quite a common failure (race) lately for parallel builds with
>> NO_CLEAN and nullfs mounted OBJ dir. In my case rebuilding world with
>> only one job helps. You can also ignore this and install the world
>> anyway.
> 
> Thank a lot for your answer!
> 
> Indeed, /usr/obj is mounted by nullfs.
> I will try to rebuild the world in one thread.
> 
> But how can i ignore the error and continue the installation of the world?
> Is there some kind of flag for the Makefile?
> 

Please compare make(1). "make -i installworld" will do the job, but it
should be considered as a temporary only solution which might lead to
some serious failures when abused.

There was a thread about this issue in 13-BETA3 on the freebsd-stable@
mailing list, but I can't give you the reference since archives from
February 2021 disappeared. For the first time I have fallen into this
about 2 years (January 2020) on CURRENT and asked for help on
freebsd-current@. At that time keveans@ suggested such a patch:

diff --git a/stand/i386/Makefile b/stand/i386/Makefile
index a9d402acf60..24255eefabf 100644
--- a/stand/i386/Makefile
+++ b/stand/i386/Makefile
@@ -4,7 +4,10 @@ NO_OBJ=t

 .include <bsd.init.mk>

-SUBDIR.yes=    mbr pmbr boot0 boot0sio btx boot2 cdboot gptboot \
+# Almost everything else here relies on btxldr, so we must make sure
it's built
+# before everything else proceeds so we don't end up building against a
stale
+# btxldr and ending up with a build-during-install scenario.
+SUBDIR.yes=    btx .WAIT mbr pmbr boot0 boot0sio boot2 cdboot gptboot \
                isoboot libi386

This patch worked back at that time. Unfortunately the thread on the
mailing list disappeared, so I can't give you the reference.

-- 
Marek Zarychta