What does this patch do for you? diff --git a/stand/i386/loader/Makefile b/stand/i386/loader/Makefile index ad95948ec50a..cbbe15bd1fc0 100644 --- a/stand/i386/loader/Makefile +++ b/stand/i386/loader/Makefile @@ -90,7 +90,8 @@ FILES+= ${LOADER} FILESMODE_${LOADER}= ${BINMODE} -b # XXX crt0.o needs to be first for pxeboot(8) to work -OBJS= ${BTXCRT} +# Can't add it to OBJS w/o pain and suffering +LDFLAGS+= ${BTXCRT} DPADD= ${LDR_INTERP32} ${LIBFIREWIRE} ${LIBI386} ${LIBSA32} LDADD= ${LDR_INTERP32} ${LIBFIREWIRE} ${LIBI386} ${LIBSA32} Anything? Warner On Mon, Feb 22, 2021 at 4:17 PM Dean E. Weimer <dweimer at dweimer.net> wrote:> On 2021-02-22 10:53 am, Dean E. Weimer wrote: > > On 2021-02-22 9:38 am, Dean E. Weimer via freebsd-stable wrote: > >> On 2021-02-22 9:29 am, Warner Losh wrote: > >> > >>> On Mon, Feb 22, 2021 at 8:24 AM Dean E. Weimer via freebsd-stable > >>> <freebsd-stable at freebsd.org> wrote: > >>> > >>>> I was able to successfully build and install BETA2 from source, > >>>> however > >>>> I am now attempting to upgrade the same machine to BETA3 buildworld > >>>> and > >>>> buildkernel complete. installkernel also completes, but installworld > >>>> fails, it appears to not find a file for i386 boot. > >>>> > >>>> I do have a customized src.conf > >>>> WIHTOUT_FLOPPY="YES" > >>>> WITHOUT_FREEBSD_UPDATE="YES" > >>>> WITH_BSD_GREP="YES" > >>>> WITHOUT_BLUETOOTH="YES" > >>>> WITHOUT_PORTSNAP="YES" > >>>> WITHOUT_WIRELESS="YES" > >>>> WITHOUT_WPA_SUPPLICANT_EAPOL="YES" > >>>> WITHOUT_ATM="YES" > >>>> WITHOUT_LPR="YES" > >>>> WITHOUT_PPP="YES" > >>>> WITHOUT_LLDB="YES" > >>>> WITHOUT_FTP="YES" > >>>> WITHOUT_RBOOTD="YES" > >>>> WITHOUT_TALK="YES" > >>>> WITHOUT_NTP="YES" > >>>> WITH_ISCSI="YES" > >>>> WITH_REPRODUCIBLE_BUILD="YES" > >>>> WITHOUT_GNU_DIFF="YES" > >>>> WITH_KERNEL_RETPOLINE="YES" > >>>> > >>>> and customized make.conf > >>>> CFLAGS?= -O > >>>> CLFAGS+= -pipe > >>>> NO_CPU_CFLAGS> >>>> MK_WERROR=no > >>>> > >>>> WITH_CCACHE_BUILD= YES > >>>> OPTIONS_SET= LIBEDIT OPTIMIZED_CFLAGS GSSAPI_NONE > >>>> OPTIONS_UNSET= X11 X GUI TLS_SRP AVAHI GSSAPI_BASE XPM CUPS EXAMPLES > >>>> DOCS > >>>> WRKDIRPREFIX= /var/ports > >>>> PACKAGES= /var/ports/packages > >>>> WITH_PKGNG= YES > >>>> DEFAULT_VERSIONS= pgsql=13 php=80 apache=2.4 perl5=5.32 bdb=6 > >>>> mysql=105m > >>>> ssl=openssl python=3.9 python3=3.9 gcc=9 linux=c7 samba=4.13 > >>>> > >>>> .if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*)) && > >>>> !defined(NOCCACHE) > >>>> CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1} > >>>> CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1} > >>>> .endif > >>>> .if (!empty(.CURDIR:M/jails/devel/ROOT/usr/src*) || > >>>> !empty(.CURDIR:M/jails/devel/ROOT/usr/obj*)) && !defined(NOCCACHE) > >>>> CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1} > >>>> CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1} > >>>> .endif > >>>> > >>>> Here's the part of where it fails during the install, src tree was > >>>> checked out at commit 1d0d443daa570c8eaa60ec2c2accbe19554a6c12. > >>>> > >>>> ... > >>>> ===> stand/userboot (install) > >>>> ===> stand/userboot/test (install) > >>>> ===> stand/userboot/userboot_4th (install) > >>>> install -o root -g wheel -m 444 -S userboot_4th.so > >>>> /jails/devel/ROOT/boot/ > >>>> install -o root -g wheel -m 444 userboot_4th.so.debug > >>>> /jails/devel/ROOT/usr/lib/debug/boot/ > >>>> ===> stand/userboot/userboot_lua (install) > >>>> install -o root -g wheel -m 444 -S userboot_lua.so > >>>> /jails/devel/ROOT/boot/ > >>>> install -o root -g wheel -m 444 userboot_lua.so.debug > >>>> /jails/devel/ROOT/usr/lib/debug/boot/ > >>>> install -l h -o root -g wheel -m 444 > >>>> /jails/devel/ROOT/boot/userboot_lua.so > >>>> /jails/devel/ROOT/boot/userboot.so > >>>> ===> stand/i386 (install) > >>>> ===> stand/i386/btx (install) > >>>> ===> stand/i386/btx/btx (install) > >>>> ===> stand/i386/btx/btxldr (install) > >>>> ===> stand/i386/btx/lib (install) > >>>> ===> stand/i386/libi386 (install) > >>>> ===> stand/i386/mbr (install) > >>>> install -o root -g wheel -m 444 mbr /jails/devel/ROOT/boot/mbr > >>>> ===> stand/i386/pmbr (install) > >>>> install -o root -g wheel -m 444 pmbr /jails/devel/ROOT/boot/pmbr > >>>> ===> stand/i386/boot0 (install) > >>>> install -o root -g wheel -m 444 boot0 > >>>> /jails/devel/ROOT/boot/boot0 > >>>> ===> stand/i386/boot0sio (install) > >>>> install -o root -g wheel -m 444 boot0 > >>>> /jails/devel/ROOT/boot/boot0sio > >>>> ===> stand/i386/boot2 (install) > >>>> objcopy -S -O binary boot1.out boot1 > >>>> objcopy -S -O binary boot2.out boot2.bin > >>>> btxld -v -E 0x2000 -f bin -b > >>>> > /jails/devel/ROOT/usr/obj/jails/devel/ROOT/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) > >>> > >>> Does this happen every time, or only sometimes? Do you have the > >>> complete log? Why we're trying to run btxld and objcopy in the > >>> *INSTALL* phase is likely why (paths are different between the two) > >>> > >>> Warner > >>> > >>>> mail to "freebsd-stable-unsubscribe at freebsd.org" > >> > >> Everytime, not sure why I am trying to run btxld and objcopy in > >> install phase, I am simply running the command make installworld > >> > >> I do use env variables to change paths, as I install to a ZFS clone of > >> the original system dataset then change boot setting on pool and > >> reboot. > >> > >> Environment Variables used during build and install, been doing this > >> process ever since I started using ZFS boot on FreeBSD 9.2. > >> > >> setenv MAKEOBJDIRPREFIX /jails/devel/ROOT/usr/obj > >> setenv DESTDIR /jails/devel/ROOT > >> setenv __MAKE_CONF /jails/devel/ROOT/etc/make.conf > >> setenv SRCCONF /jails/devel/ROOT/etc/src.conf > > > > I had already started a new build specifying CPUTYPE=silvermont in > > make.conf, as attempt work around. It failed as well. I did check and > > the path above exists on the system > > > > > :/jails/devel/ROOT/usr/obj/jails/devel/ROOT/usr/src/amd64.amd64/stand/i386/btx/btx > > # ll > > total 10 > > -rw-r--r-- 1 root wheel 117B Feb 22 10:13 .depend.btx.o > > -rwxr-xr-x 1 root wheel 1.7K Feb 22 10:37 btx* > > -rw-r--r-- 1 root wheel 5.4K Feb 22 10:13 btx.o > > drwxr-xr-x 2 root wheel 4B Feb 22 10:13 include/ > > > > I have removed my CPU Type specification and will run a new make and > > install capturing full logs so that I can post a link to full logs. > > I did a new build and capture output from full buildworld and > installworld, but first I cleared ccache same error was a result. > > Here is the entire output along with my make.conf and src.conf files. > https://nextcloud.dweimer.net/index.php/s/YYx6WX7KieatM9L > > > -- > Thanks, > Dean E. Weimer > http://www.dweimer.net/ >
On 2021-02-22 5:52 pm, Warner Losh wrote:> What does this patch do for you? > > diff --git a/stand/i386/loader/Makefile b/stand/i386/loader/Makefile > index ad95948ec50a..cbbe15bd1fc0 100644 > --- a/stand/i386/loader/Makefile > +++ b/stand/i386/loader/Makefile > @@ -90,7 +90,8 @@ FILES+= ${LOADER} > FILESMODE_${LOADER}= ${BINMODE} -b > > # XXX crt0.o needs to be first for pxeboot(8) to work > -OBJS= ${BTXCRT} > +# Can't add it to OBJS w/o pain and suffering > +LDFLAGS+= ${BTXCRT} > > DPADD= ${LDR_INTERP32} ${LIBFIREWIRE} ${LIBI386} ${LIBSA32} > LDADD= ${LDR_INTERP32} ${LIBFIREWIRE} ${LIBI386} ${LIBSA32} > > Anything? > > WarnerSuccess, mostly anyways. I tried copying and pasting above into a file (/tmp/patch) and using patch < /tmp/patch from usr/src. It failed to apply, so I just manually edited file, removed OBJS= line and added the comment and LDFLAGS+= line. ran make clean in usr/src/stand and then from usr/src ran make -DNO_CLEAN buildworld, then buildinstall completed. Don't know if email client added a special character that screwed up patch or I just did it wrong, but the fix appears to have worked. -- Thanks, Dean E. Weimer http://www.dweimer.net/
Hi, What I don't understand here is, why are these being considered out-of-date? That seems like it is indicative of a larger problem that we'd surely fall over elsewhere on if not for here, that the source tree's timestamps are post-dated w.r.t. the objdir. Thanks, Kyle Evans On Mon, Feb 22, 2021 at 5:52 PM Warner Losh <imp at bsdimp.com> wrote:> > What does this patch do for you? > > diff --git a/stand/i386/loader/Makefile b/stand/i386/loader/Makefile > index ad95948ec50a..cbbe15bd1fc0 100644 > --- a/stand/i386/loader/Makefile > +++ b/stand/i386/loader/Makefile > @@ -90,7 +90,8 @@ FILES+= ${LOADER} > FILESMODE_${LOADER}= ${BINMODE} -b > > # XXX crt0.o needs to be first for pxeboot(8) to work > -OBJS= ${BTXCRT} > +# Can't add it to OBJS w/o pain and suffering > +LDFLAGS+= ${BTXCRT} > > DPADD= ${LDR_INTERP32} ${LIBFIREWIRE} ${LIBI386} ${LIBSA32} > LDADD= ${LDR_INTERP32} ${LIBFIREWIRE} ${LIBI386} ${LIBSA32} > > Anything? > > Warner > > On Mon, Feb 22, 2021 at 4:17 PM Dean E. Weimer <dweimer at dweimer.net> wrote: > > > On 2021-02-22 10:53 am, Dean E. Weimer wrote: > > > On 2021-02-22 9:38 am, Dean E. Weimer via freebsd-stable wrote: > > >> On 2021-02-22 9:29 am, Warner Losh wrote: > > >> > > >>> On Mon, Feb 22, 2021 at 8:24 AM Dean E. Weimer via freebsd-stable > > >>> <freebsd-stable at freebsd.org> wrote: > > >>> > > >>>> I was able to successfully build and install BETA2 from source, > > >>>> however > > >>>> I am now attempting to upgrade the same machine to BETA3 buildworld > > >>>> and > > >>>> buildkernel complete. installkernel also completes, but installworld > > >>>> fails, it appears to not find a file for i386 boot. > > >>>> > > >>>> I do have a customized src.conf > > >>>> WIHTOUT_FLOPPY="YES" > > >>>> WITHOUT_FREEBSD_UPDATE="YES" > > >>>> WITH_BSD_GREP="YES" > > >>>> WITHOUT_BLUETOOTH="YES" > > >>>> WITHOUT_PORTSNAP="YES" > > >>>> WITHOUT_WIRELESS="YES" > > >>>> WITHOUT_WPA_SUPPLICANT_EAPOL="YES" > > >>>> WITHOUT_ATM="YES" > > >>>> WITHOUT_LPR="YES" > > >>>> WITHOUT_PPP="YES" > > >>>> WITHOUT_LLDB="YES" > > >>>> WITHOUT_FTP="YES" > > >>>> WITHOUT_RBOOTD="YES" > > >>>> WITHOUT_TALK="YES" > > >>>> WITHOUT_NTP="YES" > > >>>> WITH_ISCSI="YES" > > >>>> WITH_REPRODUCIBLE_BUILD="YES" > > >>>> WITHOUT_GNU_DIFF="YES" > > >>>> WITH_KERNEL_RETPOLINE="YES" > > >>>> > > >>>> and customized make.conf > > >>>> CFLAGS?= -O > > >>>> CLFAGS+= -pipe > > >>>> NO_CPU_CFLAGS> > >>>> MK_WERROR=no > > >>>> > > >>>> WITH_CCACHE_BUILD= YES > > >>>> OPTIONS_SET= LIBEDIT OPTIMIZED_CFLAGS GSSAPI_NONE > > >>>> OPTIONS_UNSET= X11 X GUI TLS_SRP AVAHI GSSAPI_BASE XPM CUPS EXAMPLES > > >>>> DOCS > > >>>> WRKDIRPREFIX= /var/ports > > >>>> PACKAGES= /var/ports/packages > > >>>> WITH_PKGNG= YES > > >>>> DEFAULT_VERSIONS= pgsql=13 php=80 apache=2.4 perl5=5.32 bdb=6 > > >>>> mysql=105m > > >>>> ssl=openssl python=3.9 python3=3.9 gcc=9 linux=c7 samba=4.13 > > >>>> > > >>>> .if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*)) && > > >>>> !defined(NOCCACHE) > > >>>> CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1} > > >>>> CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1} > > >>>> .endif > > >>>> .if (!empty(.CURDIR:M/jails/devel/ROOT/usr/src*) || > > >>>> !empty(.CURDIR:M/jails/devel/ROOT/usr/obj*)) && !defined(NOCCACHE) > > >>>> CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1} > > >>>> CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1} > > >>>> .endif > > >>>> > > >>>> Here's the part of where it fails during the install, src tree was > > >>>> checked out at commit 1d0d443daa570c8eaa60ec2c2accbe19554a6c12. > > >>>> > > >>>> ... > > >>>> ===> stand/userboot (install) > > >>>> ===> stand/userboot/test (install) > > >>>> ===> stand/userboot/userboot_4th (install) > > >>>> install -o root -g wheel -m 444 -S userboot_4th.so > > >>>> /jails/devel/ROOT/boot/ > > >>>> install -o root -g wheel -m 444 userboot_4th.so.debug > > >>>> /jails/devel/ROOT/usr/lib/debug/boot/ > > >>>> ===> stand/userboot/userboot_lua (install) > > >>>> install -o root -g wheel -m 444 -S userboot_lua.so > > >>>> /jails/devel/ROOT/boot/ > > >>>> install -o root -g wheel -m 444 userboot_lua.so.debug > > >>>> /jails/devel/ROOT/usr/lib/debug/boot/ > > >>>> install -l h -o root -g wheel -m 444 > > >>>> /jails/devel/ROOT/boot/userboot_lua.so > > >>>> /jails/devel/ROOT/boot/userboot.so > > >>>> ===> stand/i386 (install) > > >>>> ===> stand/i386/btx (install) > > >>>> ===> stand/i386/btx/btx (install) > > >>>> ===> stand/i386/btx/btxldr (install) > > >>>> ===> stand/i386/btx/lib (install) > > >>>> ===> stand/i386/libi386 (install) > > >>>> ===> stand/i386/mbr (install) > > >>>> install -o root -g wheel -m 444 mbr /jails/devel/ROOT/boot/mbr > > >>>> ===> stand/i386/pmbr (install) > > >>>> install -o root -g wheel -m 444 pmbr /jails/devel/ROOT/boot/pmbr > > >>>> ===> stand/i386/boot0 (install) > > >>>> install -o root -g wheel -m 444 boot0 > > >>>> /jails/devel/ROOT/boot/boot0 > > >>>> ===> stand/i386/boot0sio (install) > > >>>> install -o root -g wheel -m 444 boot0 > > >>>> /jails/devel/ROOT/boot/boot0sio > > >>>> ===> stand/i386/boot2 (install) > > >>>> objcopy -S -O binary boot1.out boot1 > > >>>> objcopy -S -O binary boot2.out boot2.bin > > >>>> btxld -v -E 0x2000 -f bin -b > > >>>> > > /jails/devel/ROOT/usr/obj/jails/devel/ROOT/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) > > >>> > > >>> Does this happen every time, or only sometimes? Do you have the > > >>> complete log? Why we're trying to run btxld and objcopy in the > > >>> *INSTALL* phase is likely why (paths are different between the two) > > >>> > > >>> Warner > > >>> > > >>>> mail to "freebsd-stable-unsubscribe at freebsd.org" > > >> > > >> Everytime, not sure why I am trying to run btxld and objcopy in > > >> install phase, I am simply running the command make installworld > > >> > > >> I do use env variables to change paths, as I install to a ZFS clone of > > >> the original system dataset then change boot setting on pool and > > >> reboot. > > >> > > >> Environment Variables used during build and install, been doing this > > >> process ever since I started using ZFS boot on FreeBSD 9.2. > > >> > > >> setenv MAKEOBJDIRPREFIX /jails/devel/ROOT/usr/obj > > >> setenv DESTDIR /jails/devel/ROOT > > >> setenv __MAKE_CONF /jails/devel/ROOT/etc/make.conf > > >> setenv SRCCONF /jails/devel/ROOT/etc/src.conf > > > > > > I had already started a new build specifying CPUTYPE=silvermont in > > > make.conf, as attempt work around. It failed as well. I did check and > > > the path above exists on the system > > > > > > > > :/jails/devel/ROOT/usr/obj/jails/devel/ROOT/usr/src/amd64.amd64/stand/i386/btx/btx > > > # ll > > > total 10 > > > -rw-r--r-- 1 root wheel 117B Feb 22 10:13 .depend.btx.o > > > -rwxr-xr-x 1 root wheel 1.7K Feb 22 10:37 btx* > > > -rw-r--r-- 1 root wheel 5.4K Feb 22 10:13 btx.o > > > drwxr-xr-x 2 root wheel 4B Feb 22 10:13 include/ > > > > > > I have removed my CPU Type specification and will run a new make and > > > install capturing full logs so that I can post a link to full logs. > > > > I did a new build and capture output from full buildworld and > > installworld, but first I cleared ccache same error was a result. > > > > Here is the entire output along with my make.conf and src.conf files. > > https://nextcloud.dweimer.net/index.php/s/YYx6WX7KieatM9L > > > > > > -- > > Thanks, > > Dean E. Weimer > > http://www.dweimer.net/ > > > _______________________________________________ > freebsd-stable at freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-stable > To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"