Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Jul 2013 07:10:10 -0500
From:      Bryan Drewery <bryan-lists@shatow.net>
To:        FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   make installworld: btxld: No such file or directory [solved]
Message-ID:  <51E29522.1010803@shatow.net>

next in thread | raw e-mail | index | archive | help
This post is just to inform others that run into this problem.

For years I have ran into this error while running 'make installworld':

> # make installworld
> [...]
> ===> sys/boot/i386/boot2 (install)
> /usr/local/libexec/ccache/world/cc -Os  -fno-guess-branch-probability  -fomit-frame-pointer  -fno-unit-at-a-time  -mno-align-long-strings  -mrtd  -mregparm=3  -DUSE_XREAD  -DUFS1_AND_UFS2  -DFLAGS=0x80  -DSIOPRT=0x3f8  -DSIOFMT=0x3  -DSIOSPD=9600  -I/usr/src/sys/boot/i386/boot2/../../common  -I/usr/src/sys/boot/i386/boot2/../btx/lib -I.  -Wall -Waggregate-return -Wbad-function-cast -Wcast-align  -Wmissing-declarations -Wmissing-prototypes -Wnested-externs  -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings  -Winline --param max-inline-insns-single=100   -march=i386 -ffreestanding -mpreferred-stack-boundary=2  -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float -m32 -std=gnu99    -S -o boot2.s.tmp /usr/src/sys/boot/i386/boot2/boot2.c
> sed -e '/align/d' -e '/nop/d' < boot2.s.tmp > boot2.s
> rm -f boot2.s.tmp
> /usr/local/libexec/ccache/world/cc  -m32 -c boot2.s
> ld -static -N --gc-sections -nostdlib -m elf_i386_fbsd -Ttext 0x2000 -o boot2.out /usr/obj/usr/src/sys/boot/i386/boot2/../btx/lib/crt0.o boot2.o sio.o
> objcopy -S -O binary boot2.out boot2.bin
> btxld -v -E 0x2000 -f bin -b /usr/obj/usr/src/sys/boot/i386/boot2/../btx/btx/btx -l boot2.ldr  -o boot2.ld -P 1 boot2.bin
> btxld: No such file or directory
> *** [boot2.ld] Error code 1
> 
> Stop in /usr/src/sys/boot/i386/boot2.
> *** [realinstall] Error code 1
> 


There's several other mailing list posts that insist that build orders
are wrong or that the date/time is incorrect or off. I always had
strictly followed buildworld/installworld all while running ntpd. My
workaround was to 'make -C /usr/src/sys/boot/i386' before installworld
to avoid this issue, as others have done as well.

I realized this time that I was applying local patches to the tree
before buildworld, then reverting the patches before installworld. This
changed timestamps of various source files that forced the rebuild
during installworld. The real solution was to not revert the files until
after installworld and to not change the source tree in any other way
between buildworld/installworld.

Cheers,
Bryan Drewery




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51E29522.1010803>