On 2021-02-23 12:34 pm, Kyle Evans wrote:
The more I look at `make -dm` output, the less sense it makes. Your
patch is decidedly correct regardless of how this specific scenario is
playing out:

1.) As you noted, it's wrong to clean something that's built
elsewhere. You can reasonably expect `make clean all` to work pretty
much everywhere else.

2.) i386/loader cannot make an informed decision about whether it's
out-of-date, which is sufficient to tell that the existing addition to
OBJS was not the correct implementation in hindsight.

3.) The failure mode if it's *missing* is exactly the same before and
after your patch; file can't be found, cannot build it.

On Tue, Feb 23, 2021 at 12:09 PM Warner Losh <i...@bsdimp.com> wrote:

I'm unsure of the mechanics as well. I do know that we shouldn't delete stuff in OTHER directories, though. the btx stuff is trying to do a bit of an end run around the link only with the installed stuff here and using crt0.o as a library from the 'where it was built' directory which I think creates one too many dependencies... I've not yet puzzled through all of them to find out which one is causing us to think we need to rebuild though.

Warner

On Tue, Feb 23, 2021 at 9:21 AM Kyle Evans <kev...@freebsd.org> wrote:

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 <i...@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 <dwei...@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@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-unsubscr...@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@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Do you guys know which part of my configuration is triggering this issue, so I can work around it for now? My last build attempt with the latest updates for the security fixes failed to install even with patch.

--
Thanks,
   Dean E. Weimer
   http://www.dweimer.net/
_______________________________________________
freebsd-stable@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to