Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Mar 2017 14:24:49 +0100
From:      "O. Hartmann" <ohartmann@walstatt.org>
To:        Ian Lepore <ian@freebsd.org>
Cc:        Lawrence Stewart <lstewart@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: Deterministic rescue buildworld error with custom make.conf/src.conf/MAKEOBJDIRPREFIX
Message-ID:  <20170312142449.3f412b89@thor.intern.walstatt.dynvpn.de>
In-Reply-To: <1489286252.40576.68.camel@freebsd.org>
References:  <f81368cc-14bc-6fe8-9c57-c410615ebbfe@freebsd.org> <1489274995.40576.65.camel@freebsd.org> <0aa75720-7670-9b64-a536-9958ff332eea@freebsd.org> <1489286252.40576.68.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/KoPQyiImqJ2tKbvkNoPCPgd
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

Am Sat, 11 Mar 2017 19:37:32 -0700
Ian Lepore <ian@freebsd.org> schrieb:

> On Sun, 2017-03-12 at 13:27 +1100, Lawrence Stewart wrote:
> > Hi Ian,
> >=20
> > On 12/03/2017 10:29, Ian Lepore wrote: =20
> > >=20
> > > On Sun, 2017-03-12 at 10:22 +1100, Lawrence Stewart wrote: =20
> > > >=20
> > > > Hi all,
> > > >=20
> > > > 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.
> > > >=20
> > > > 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.
> > > >=20
> > > > Any clues?
> > > >=20
> > > > Cheers,
> > > > Lawrence
> > > >=20
> > > >=20
> > > > root@builder-head-amd64:/usr/src # cat cust_make.conf
> > > > KERNCONF=3DGENERIC-NODEBUG
> > > > MALLOC_PRODUCTION=3DYES
> > > >=20
> > > > root@builder-head-amd64:/usr/src # cat cust_src.conf
> > > > WITHOUT_PROFILE=3D1
> > > >=20
> > > > root@builder-head-amd64:/usr/src # make
> > > > __MAKE_CONF=3D/usr/src/cust_make.conf
> > > > SRCCONF=3D/usr/src/cust_src.conf
> > > > MAKEOBJDIRPREFIX=3D/usr/obj/cust buildworld buildkernel
> > > > [...]
> > > > MK_AUTO_OBJ=3Dno
> > > > MK_TESTS=3Dno=A0=A0UPDATE_DEPENDFILE=3Dno=A0=A0_RECURSING_CRUNCH=3D1
> > > > CC=3D"cc -target x86_64-unknown-freebsd12.0
> > > > --sysroot=3D/usr/obj/cust/usr/src/tmp
> > > > -B/usr/obj/cust/usr/src/tmp/usr/bin
> > > > -O2 -pipe=A0=A0=A0-std=3Dgnu99=A0=A0=A0=A0-Qunused-arguments=A0=A0"=
=A0=A0CXX=3D"c++=A0=A0-
> > > > target
> > > > x86_64-unknown-freebsd12.0 --sysroot=3D/usr/obj/cust/usr/src/tmp
> > > > -B/usr/obj/cust/usr/src/tmp/usr/bin -O2 -pipe -Qunused-arguments
> > > > -Wno-c++11-extensions=A0=A0"=A0=A0make .MAKE.MODE=3D"normal curdirO=
k=3Dyes"
> > > > .MAKE.META.IGNORE_PATHS=3D""=A0=A0-f rescue.mk exe
> > > > cc -target x86_64-unknown-freebsd12.0
> > > > --sysroot=3D/usr/obj/cust/usr/src/tmp
> > > > -B/usr/obj/cust/usr/src/tmp/usr/bin
> > > > -O2 -pipe=A0=A0=A0-std=3Dgnu99=A0=A0=A0=A0-Qunused-arguments=A0=A0=
=A0-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
> > > >=20
> > > > There appear to be a lot of missing .o files under the rescue obj
> > > > tree:
> > > >=20
> > > > root@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
> > > >=20
> > > > compared with an obj tree on a different head system:
> > > >=20
> > > > find /usr/obj/usr/src/rescue/rescue/usr/ -type f | wc -l
> > > > =A0=A0=A0=A01552
> > > > _______________________________________________
> > > > freebsd-current@freebsd.org mailing list
> > > > https://lists.freebsd.org/mailman/listinfo/freebsd-current
> > > > To unsubscribe, send any mail to "freebsd-current-unsubscribe@fre
> > > > ebsd
> > > > .org" =20
> > > The MAKEOBJDIRPREFIX variable must be set in the environment, not
> > > in
> > > make.conf or on the make command line (documented in build(7)). =20
> > Your assertion seems at odds with my past experience and my reading
> > of
> > the man page... from build(7):
> >=20
> > 	The build may be controlled by defining make(1) variables
> > 	described in the ENVIRONMENT section below, and by the
> > 	variables documented in make.conf(5).
> >=20
> > ... which indicates they are make variables, not environment
> > variables
> > specifically. As a concrete example, TARGET and DESTDIR are listed
> > under
> > the "ENVIRONMENT" section of the man page, yet "EXAMPLES" shows:
> >=20
> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0make TARGET=3Dsparc64 buildworld
> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0make TARGET=3Dsparc64 DESTDIR=3D/clien=
ts/sparc64 installworld
> >=20
> > I've certainly always set build vars documented in the "ENVIRONMENT"
> > section of the man page on the make command line without issue.
> > Pretty
> > sure I've set MAKEOBJDIRPREFIX from the make command line also in the
> > past, though perhaps it has been working for me "by accident" and a
> > documentation tweak is in order if the distinction you make is in
> > fact
> > relevant...
> >=20
> > Cheers,
> > Lawrence
> > _______________________________________________
> > freebsd-current@freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-current
> > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd
> > .org" =20
>=20
> You cited everything from build(7) except the part most on-point for
> the problem you're having:
>=20
>     MAKEOBJDIRPREFIX
>         Defines the prefix for directory names in the tree of
>         built objects.=A0=A0Defaults to /usr/obj if not defined.=A0=A0Thi=
s variable
>         should only be set in the environment and not via /etc/make.conf =
or the
>         command line.
>=20
> -- Ian
>=20


Shouldn't it then be "... This variable must only be set in the environment=
"? Every other
attempt will fail. It would also be nice to have some more information abou=
t the WHY.
Using poudriere, one can set this variable within a per-set configuration f=
ile aiming for
a jail built upon sources on a local machine. Sometimes its really confusin=
g when shell
environment comes into play and when it all stays within the make domain.

Kind regards,

O. Hartmann


--=20
O. Hartmann

Ich widerspreche der Nutzung oder =DCbermittlung meiner Daten f=FCr
Werbezwecke oder f=FCr die Markt- oder Meinungsforschung (=A7 28 Abs. 4 BDS=
G).

--Sig_/KoPQyiImqJ2tKbvkNoPCPgd
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iLUEARMKAB0WIQQZVZMzAtwC2T/86TrS528fyFhYlAUCWMVMIQAKCRDS528fyFhY
lLvoAf9+9XreZoerLjULu+HFb0jaFBvn67xauk1mFOatAIwzNgzLKfzI2ldS0TiZ
GNrsX5tjsulx5Tx1nKfCFJdN+1uqAf93RRixLvSkM0GIob70ykfPs5teOu9n/OGG
iuYZ2Z+QA3ps0LX5rwXTi8XzpK1H7DoSGQo0KRCKQIFmbQwxROTC
=a7+9
-----END PGP SIGNATURE-----

--Sig_/KoPQyiImqJ2tKbvkNoPCPgd--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170312142449.3f412b89>