Re: [releng/13.0] error during installworld

From: Yaroslav Shvets <yaroslav_at_shvets.name>
Date: Wed, 23 Jun 2021 07:52:36 UTC
Hello Marek.

On Tue, 22 Jun 2021, 12:18, you wrote:

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

Rebuilding the world into one thread did not help ;(
I umounted ssd (mounted via nullfs) and mount hdd-partition to /usr/obj
and buildworld-installworld completed correctly.

It looks like still need to fix the Makefile.

-- 
Yaroslav Shvets