On 2018-Feb-18 09:06:38 -0600, Kyle Evans <kev...@freebsd.org> wrote:
>On Sun, Feb 18, 2018 at 3:12 AM, Peter Jeremy <pe...@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:

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

[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
Peter Jeremy

Attachment: signature.asc
Description: PGP signature

Reply via email to