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
Peter Jeremy
2018-Feb-19 09:27 UTC
Problems building 11-stable/i386 with readonly /usr/src
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#l178Thanks 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). [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 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 963 bytes Desc: not available URL: <http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20180219/fbd70871/attachment.sig>