13-BETA3 installation from source problems.

Marek Zarychta zarychtam at plan-b.pwste.edu.pl
Sun Feb 28 14:51:26 UTC 2021


W dniu 24.02.2021 o 20:03, Kyle Evans pisze:
> On Wed, Feb 24, 2021 at 12:57 PM Dean E. Weimer <dweimer at dweimer.net> wrote:
>>
>> 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 <imp at 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 <kevans at 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 <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.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>> /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"
>>
>> 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.
>>
> 
> I've been able to reproduce it locally with a stock config twice or
> so, but it's non-trivial and only seems to reproduce with at least a
> nullfs objdir. A good data point would be to point your
> MAKEOBJDIRPREFIX at /jails/devel/host-usr-obj (assuming that's not
> null-mounted) -- as long as you're still operating out of
> /jails/devel/ROOT/usr/src, the paths relative to it will work out the
> same.
> 
> Thanks,
> 
> Kyle Evans

Is there any other way to make it working for nullfs objdir? I export
real objdir over NFS for other systems and mount it as /usr/obj.
Adding MAKEOBJDIRPREFIX for each src.conf and changing mount points
would be even more headache than running once more barren "make
buildworld", which with one job take usually about 10 minutes and sorts
it out.

Best regards,

-- 
Marek Zarychta

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20210228/f6463e9b/attachment.sig>


More information about the freebsd-stable mailing list