Problems building 11-stable/i386 with readonly /usr/src

Warner Losh imp at bsdimp.com
Mon Feb 19 22:35:02 UTC 2018


On Mon, Feb 19, 2018 at 2:27 AM, Peter Jeremy <peter at rulingia.com> wrote:

> On 2018-Feb-18 09:06:38 -0600, Kyle Evans <kevans at freebsd.org> wrote:
> >On Sun, Feb 18, 2018 at 3:12 AM, Peter Jeremy <peter at rulingia.com> wrote:
> >> Sometime between r329122 and r329157, my 11-stable i386 box stopped
> >> being able to buildworld with a readonly /usr/src. I've been updating
> >> regularly but the problem still remains at r329450.  I don't have any
> >> problems building the same tree on amd64 or building head on i386 or
> >> amd64.  Does anyone have any ideas?
> >>
> >> Starting from an empty /usr/obj, the failure is:
> >> ...
> >
> >This would have come in with the recent MFC of imp@'s rototilling. I
> >seem to recall some build system funkiness that put .OBJDIR inside the
> >src tree inconsistently before recent-ish changes in head. CC'ing
> >bdrewery@ and imp@ in hopes they have an idea of how to handle this in
> >stable/11. The offending ln invocation would be this one:
> >https://svnweb.freebsd.org/base/stable/11/stand/defs.mk?view=markup#l178
>
> Thanks for that.  I added some debug code to stand/defs.mk and confirmed
> that in stand/efi, the ${_ILINKS} target is invoked in /usr/src/stand/efi,
> whereas in (eg) stand/zfs, it is invoked in /usr/obj/usr/src/stand/efi.
> The main difference is that SUBDIR is empty on i386 but non-empty on amd64.
> If I add i386 to the main build list (see patch below) then it all works.
> I'm not sure why efi isn't built on i386 because boot1, libefi and loader
> all support i386.  (This obviously is a work-around rather than a real fix
> but might be an option if the relevant head changes can't be MFC'd
> immediately).
>

i386 does not support efi at all.  We likely shouldn't include efi at all
in the subdirs at the top level as a better workaround.

Warner


>
> [Caution: copy and paste, tabs have been converted to spaces]
> Index: stand/efi/Makefile
> ===================================================================
> --- stand/efi/Makefile  (revision 329477)
> +++ stand/efi/Makefile  (working copy)
> @@ -14,7 +14,8 @@
>
>  .if ${MACHINE_CPUARCH} == "aarch64" || \
>      ${MACHINE_CPUARCH} == "amd64" || \
> -    ${MACHINE_CPUARCH} == "arm"
> +    ${MACHINE_CPUARCH} == "arm" || \
> +    ${MACHINE_CPUARCH} == "i386"
>  SUBDIR+=       libefi loader boot1
>  .endif
>
> --
> Peter Jeremy
>


More information about the freebsd-stable mailing list