Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Jul 2014 01:52:37 +0200
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        Warner Losh <imp@bsdimp.com>
Cc:        sbruno@FreeBSD.org, Ian Lepore <ian@FreeBSD.org>, freebsd-arch@FreeBSD.org
Subject:   Re: Total confusion over toolchain/xdev behavior
Message-ID:  <20140707235237.GG97203@ivaldir.etoilebsd.net>
In-Reply-To: <20B72004-1499-4F99-A7C7-13173C50C7C6@bsdimp.com>
References:  <1404688077.1059.115.camel@bruno> <1404766292.65432.43.camel@revolution.hippie.lan> <20B72004-1499-4F99-A7C7-13173C50C7C6@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--CEUtFxTsmBsHRLs3
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 07, 2014 at 05:27:25PM -0600, Warner Losh wrote:
>=20
> On Jul 7, 2014, at 2:51 PM, Ian Lepore <ian@FreeBSD.org> wrote:
>=20
> > On Sun, 2014-07-06 at 16:07 -0700, Sean Bruno wrote:
> >> Objective:  install an xcompile toolchain into a jail for use by
> >> poudriere during arm/mips/sparc/power ports pkgs builds.  The build
> >> should be possible from a non-root user.
> >>=20
> >> As far as I can tell, the xdev target is completely busted for non-cla=
ng
> >> arch's right now as it tries to build clang no matter what I do.  Its
> >> missing some pretty key documentation to making it work correctly, so a
> >> lot of my attempts have been "guess and check" with verbose make.
> >>=20
> >> -----------------------------------------------------------------------
> >> Attempt #1:
> >> I have been trying non-root xdev builds:
> >> MAKEOBJDIRPREFIX=3D/var/tmp make -s -j8 xdev XDEV=3Dmips XDEV_ARCH=3Dm=
ips
> >> -- dies because it tries to compile CLANG.
> >> -----------------------------------------------------------------------
> >>=20
> >> Attempt #2:
> >> Apply a hack from Baptiste that isn't quite right, but at least gets
> >> farther, note the missing variable causing "//usr/mips-freebsd"
> >> http://people.freebsd.org/~sbruno/src.ops.mk.diff
> >>=20
> >> =3D=3D=3D> gnu/usr.bin/cc/gcov (all)
> >> mtree populating //usr/mips-freebsd
> >> mkdir: //usr/mips-freebsd: Permission denied
> >> *** Error code 1
> >> -----------------------------------------------------------------------
> >>=20
> >> Attempt #3: Add XDTP
> >> MAKEOBJDIRPREFIX=3D/var/tmp make -s xdev XDEV=3Dmips XDEV_ARCH=3Dmips
> >> XDTP=3D/var/tmp/mips_cc
> >>=20
> >> Try defining a XDTP=3D/var/tmp/mips_cc with the above patch applied, g=
et's
> >> a bit farther but compile failure in locating critical include files.
> >>=20
> >> =3D=3D=3D> gnu/lib/libstdc++ (obj,depend,all,install)
> >> In file included from /home/sbruno/bsd/fbsd_head/gnu/lib/libstdc
> >> ++/../../../contrib/libstdc++/src/bitmap_allocator.cc:30:
> >> /home/sbruno/bsd/fbsd_head/gnu/lib/libstdc++/../../../contrib/libstdc
> >> ++/include/ext/bitmap_allocator.h:37:54: error: cstddef: No such file =
or
> >> directory
> >> -----------------------------------------------------------------------
> >>=20
> >> Attempt #4: Add the additional XDDESTDIR
> >> MAKEOBJDIRPREFIX=3D/var/tmp make -s xdev XDEV=3Dmips XDEV_ARCH=3Dmips
> >> XDTP=3D/var/tmp/mips_cc XDESTDIR=3D/var/tmp/mips_dst
> >> -- Same results as attempt #3
> >> -----------------------------------------------------------------------
> >>=20
> >> Even attempting to do stuff for *clang* enabled architectures bails
> >> because its not respecting prefixes:
> >> MAKEOBJDIRPREFIX=3D/var/tmp make -s -j 8 xdev XDEV=3Darm XDEV_ARCH=3Da=
rmv6
> >> -- bails because it tries to:
> >> =3D=3D=3D> usr.bin/clang/tblgen (all)
> >> mtree populating //usr/armv6-freebsd
> >> mtree: etc/ntp: Permission denied
> >> _xi-cross-tools
> >> =3D=3D=3D> xdev gnu/usr.bin/binutils (install)
> >> =3D=3D=3D> gnu/usr.bin/binutils/libiberty (install)
> >> =3D=3D=3D> gnu/usr.bin/binutils/libbfd (install)
> >> =3D=3D=3D> gnu/usr.bin/binutils/libopcodes (install)
> >> =3D=3D=3D> gnu/usr.bin/binutils/libbinutils (install)
> >> =3D=3D=3D> gnu/usr.bin/binutils/addr2line (install)
> >> =3D=3D=3D> gnu/usr.bin/binutils/as (install)
> >> =3D=3D=3D> gnu/usr.bin/binutils/ld (install)
> >> install: //usr/armv6-freebsd/usr/bin/ld: Permission denied
> >> *** Error code 71
> >>=20
> >> -----------------------------------------------------------------------
> >> Adding XDTP and XDDESTDIR results in a little more progress but obvious
> >> failures to attempt and install things directly into my host system:
> >>=20
> >> MAKEOBJDIRPREFIX=3D/var/tmp make -s xdev XDEV=3Darm XDEV_ARCH=3Darmv6
> >> XDDESTDIR=3D/var/tmp/arm_cc XDTP=3D/var/tmp/armv6_cc
> >> =3D=3D=3D> secure/lib/libssh (install)
> >> =3D=3D=3D> usr.bin/lex/lib (obj,depend,all,install)
> >> mkdir: ../../../../usr: Permission denied
> >> *** Error code 1
> >>=20
> >> Stop.
> >> make[1]: stopped in /home/sbruno/bsd/fbsd_head
> >> *** Error code 1
> >>=20
> >> Stop.
> >> make: stopped in /home/sbruno/bsd/fbsd_head
> >=20
> > It looks to me like the permission part of the problem is being caused
> > by a lack of DESTDIR=3D.  Without that, it's trying to install to /usr =
and
> > you don't have permission for that.  Maybe the confusion is because the
> > xdev target inherently builds-and-installs, unlike most other targets
> > that separate those two actions.
>=20
> OK. After some detective work, it looks like libstdc++ needs to be done b=
efore libsupc++ is done. I=E2=80=99ve added this dependency in r268377 and =
was able to do a full xdev build with a clean obj dir:
>=20
> 	rm -rf $HOME/F $MAKEOBJDIRPREFIX/mips-freebsd
> 	mkdir $HOME/F
> 	make xdev DESTDIR=3D$HOME/F XDEV=3Dmips XDEV_ARCH=3Dmips WITHOUT_CLANG=
=3Dt WITHOUT_CLANG_BOOTSTRAP=3Dt WITH_GCC=3Dt WITH_GCC_BOOTSTRAP=3Dt WITH_G=
NUCXX=3Dt -j 20

We can avoid most of the above by using a patch like the following:
http://people.freebsd.org/~bapt/Makefile.inc1.diff
Extending the same thing xi-cross-tools and xb-cross-tools (expect the
WITH_GNUCXX=3Dt because it it not set in src.opts.mk when it imho should.)

regards,
Bapt

--CEUtFxTsmBsHRLs3
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iEYEARECAAYFAlO7MsUACgkQ8kTtMUmk6EyJ8wCff7XMATfK4j4N77smru0Nl5D8
geIAoIARwHUNcwecZemz27EUiWIyH/rN
=In69
-----END PGP SIGNATURE-----

--CEUtFxTsmBsHRLs3--



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