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

Warner Losh imp at bsdimp.com
Tue Feb 20 23:16:36 UTC 2018


On Tue, Feb 20, 2018 at 3:36 PM, Bryan Drewery <bdrewery at freebsd.org> wrote:

> On 2/18/18 1:12 AM, Peter Jeremy 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:
> > ...
> >>>> stage 4.3: building everything
> > ...
> > ===> stand/zfs (all)
> > Building /usr/obj/usr/src/stand/zfs/machine
> > machine -> /usr/src/sys/i386/include
> > Building /usr/obj/usr/src/stand/zfs/x86
> > x86 -> /usr/src/sys/x86/include
> > Building /usr/obj/usr/src/stand/zfs/zfs.o
> > Building /usr/obj/usr/src/stand/zfs/skein.o
> > Building /usr/obj/usr/src/stand/zfs/skein_block.o
> > Building /usr/obj/usr/src/stand/zfs/libzfsboot.a
> > building static zfsboot library
> > ===> stand/efi (all)
> > machine -> /usr/src/sys/i386/include
> > ln: machine: Read-only file system
> > *** Error code 1
> >
> > Stop.
> > make[4]: stopped in /usr/src/stand/efi
> > .ERROR_TARGET='machine'
> > .ERROR_META_FILE=''
> > .MAKE.LEVEL='4'
> > MAKEFILE=''
> > .MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
> > _ERROR_CMD='.PHONY'
> > .CURDIR='/usr/src/stand/efi'
> > .MAKE='make'
> > .OBJDIR='/usr/src/stand/efi'
>
> It's wanting to use .OBJDIR=.CURDIR.
>
> I'm thinking this is due to the bsd.init.mk abuse in stand/.  I say
> "abuse" because bsd.init.mk has this comment and I've only been writing
> my logic with the assumption that the comment is valid, which I know
> Warner disagrees with.
>
> > # The include file <bsd.init.mk> includes <bsd.opts.mk>,
> > # ../Makefile.inc and <bsd.own.mk>; this is used at the
> > # top of all <bsd.*.mk> files that actually "build something"
>
> I'll try to get a fix in later today or tomorrow.
>

Is there a supported way to have all that done before the rest of the
Makefile is read in? Or at least the Makefile.inc bits? If so, then this is
abuse. If not, then I find it hard to see as abuse, but am open to a
convincing argument and alternative way to accomplish what I need.

Warner


> > .TARGETS='all'
> > DESTDIR='/usr/obj/usr/src/tmp'
> > LD_LIBRARY_PATH=''
> > MACHINE='i386'
> > MACHINE_ARCH='i386'
> > MAKEOBJDIRPREFIX='/usr/obj'
> > MAKESYSPATH='/usr/src/share/mk'
> > MAKE_VERSION='20170720'
> > PATH='/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/
> src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/
> usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/
> sbin:/bin:/usr/sbin:/usr/bin'
> > SRCTOP='/usr/src'
> > OBJTOP='/usr/src'
> > .MAKE.MAKEFILES='/usr/src/share/mk/sys.mk /usr/src/share/mk/local.sys.
> env.mk /usr/src/share/mk/src.sys.env.mk /etc/src-env.conf
> /usr/src/share/mk/bsd.mkopt.mk /etc/make.conf /usr/src/share/mk/
> local.sys.mk /usr/src/share/mk/src.sys.mk Makefile /usr/src/share/mk/
> bsd.init.mk /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk
> /usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk
> /usr/src/stand/efi/../Makefile.inc /usr/src/stand/efi/../defs.mk
> /usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk
> /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.compiler.mk
> /usr/src/share/mk/bsd.subdir.mk'
> > .PATH='. /usr/src/stand/efi'
> > *** Error code 1
> >
>
>
> --
> Regards,
> Bryan Drewery
>
>


More information about the freebsd-stable mailing list