Re: Deterministic rescue buildworld error with custom make.conf/src.conf/MAKEOBJDIRPREFIX

From: Ian Lepore <ian_at_freebsd.org>
Date: Sat, 11 Mar 2017 16:29:55 -0700
On Sun, 2017-03-12 at 10:22 +1100, Lawrence Stewart wrote:
> Hi all,
> 
> I'm unable to complete buildworld with 2 recent svn revs I've tried
> (r314838 and r315059). I'm building for a slightly resource
> constrained
> production system so am specifying custom settings and a different
> obj
> tree location so I can copy it to the target system. The error
> persists
> after an "rm -rf /usr/obj/*", and if parallel building is disabled.
> 
> The underlying build system built from r314838 via simple "make -C
> /usr/src -s -j6 buildworld buildkernel" built and installed fine, so
> the
> problem seems to be around the use of the build customisations.
> 
> Any clues?
> 
> Cheers,
> Lawrence
> 
> 
> root_at_builder-head-amd64:/usr/src # cat cust_make.conf
> KERNCONF=GENERIC-NODEBUG
> MALLOC_PRODUCTION=YES
> 
> root_at_builder-head-amd64:/usr/src # cat cust_src.conf
> WITHOUT_PROFILE=1
> 
> root_at_builder-head-amd64:/usr/src # make
> __MAKE_CONF=/usr/src/cust_make.conf SRCCONF=/usr/src/cust_src.conf
> MAKEOBJDIRPREFIX=/usr/obj/cust buildworld buildkernel
> [...]
> MK_AUTO_OBJ=no MK_TESTS=no  UPDATE_DEPENDFILE=no  _RECURSING_CRUNCH=1
> CC="cc -target x86_64-unknown-freebsd12.0
> --sysroot=/usr/obj/cust/usr/src/tmp
> -B/usr/obj/cust/usr/src/tmp/usr/bin
> -O2 -pipe   -std=gnu99    -Qunused-arguments  "  CXX="c++  -target
> x86_64-unknown-freebsd12.0 --sysroot=/usr/obj/cust/usr/src/tmp
> -B/usr/obj/cust/usr/src/tmp/usr/bin -O2 -pipe -Qunused-arguments
> -Wno-c++11-extensions  "  make .MAKE.MODE="normal curdirOk=yes"
> .MAKE.META.IGNORE_PATHS=""  -f rescue.mk exe
> cc -target x86_64-unknown-freebsd12.0
> --sysroot=/usr/obj/cust/usr/src/tmp
> -B/usr/obj/cust/usr/src/tmp/usr/bin
> -O2 -pipe   -std=gnu99    -Qunused-arguments   -nostdlib -Wl,-dc -r
> -o
> cat.lo cat_stub.o
> /usr/obj/cust/usr/src/rescue/rescue//usr/src/bin/cat/cat.o
> cc: error: no such file or directory:
> '/usr/obj/cust/usr/src/rescue/rescue//usr/src/bin/cat/cat.o'
> *** Error code 1
> 
> There appear to be a lot of missing .o files under the rescue obj
> tree:
> 
> root_at_builder-head-amd64:/usr/src # find
> /usr/obj/cust/usr/src/rescue/rescue//usr -type f
> /usr/obj/cust/usr/src/rescue/rescue//usr/src/bin/sh/mksyntax.o
> /usr/obj/cust/usr/src/rescue/rescue//usr/src/bin/sh/mksyntax
> /usr/obj/cust/usr/src/rescue/rescue//usr/src/bin/sh/mknodes.o
> /usr/obj/cust/usr/src/rescue/rescue//usr/src/bin/sh/mknodes
> /usr/obj/cust/usr/src/rescue/rescue//usr/src/bin/csh/sh.err.h
> /usr/obj/cust/usr/src/rescue/rescue//usr/src/bin/csh/tc.const.h
> /usr/obj/cust/usr/src/rescue/rescue//usr/src/bin/csh/gethost
> 
> compared with an obj tree on a different head system:
> 
> find /usr/obj/usr/src/rescue/rescue/usr/ -type f | wc -l
>     1552
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd
> .org"

The MAKEOBJDIRPREFIX variable must be set in the environment, not in
make.conf or on the make command line (documented in build(7)).

-- Ian
Received on Sat Mar 11 2017 - 22:31:01 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:10 UTC