Date: Tue, 8 Jul 2014 21:48:45 -0600 From: Warner Losh <imp@bsdimp.com> To: Baptiste Daroussin <bapt@FreeBSD.org> Cc: sbruno@FreeBSD.org, Ian Lepore <ian@FreeBSD.org>, freebsd-arch@FreeBSD.org Subject: Re: Total confusion over toolchain/xdev behavior Message-ID: <D755AEC2-E102-4FB2-8DCD-3C328064897B@bsdimp.com> In-Reply-To: <20140709000628.GA56040@ivaldir.etoilebsd.net> References: <1404688077.1059.115.camel@bruno> <1404766292.65432.43.camel@revolution.hippie.lan> <20B72004-1499-4F99-A7C7-13173C50C7C6@bsdimp.com> <20140707235237.GG97203@ivaldir.etoilebsd.net> <DB29AF3B-C761-4112-A4F6-6CF20159C2E1@bsdimp.com> <20140709000628.GA56040@ivaldir.etoilebsd.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_221413DC-DF81-4821-9955-7146E1086A2A Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Jul 8, 2014, at 6:06 PM, Baptiste Daroussin <bapt@FreeBSD.org> wrote: > On Mon, Jul 07, 2014 at 07:29:01PM -0600, Warner Losh wrote: >>=20 >> On Jul 7, 2014, at 5:52 PM, Baptiste Daroussin <bapt@FreeBSD.org> = wrote: >>=20 >>> 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-clang >>>>>> 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=3Dmips >>>>>> -- 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, get'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=3Darmv6 >>>>>> -- 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 before libsupc++ is done. I=92ve 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_GNUCXX=3Dt -j 20 >>>=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.) >>=20 >> The patch looks good to my eye. Did you want me to expand it, or do = you want to >> do the honors? >>=20 >> About the rest=85 Yea, you may be right=85. MK_GNUCXX is an odd = duck, and that=92s >> likely the problem that should be fixed in a different way. It is = really an internal >> variable that should be set based on the actual compiler type = (possibly with an >> override for the odd-duck pair of clang and libstdc++ which may not = be worth >> supporting). It is telling us we=92re doing something horribly wrong = and we should listen >> to that rather than add another compiler-related kludge to the build = system. I=92ll work >> on that bit. >>=20 >> Also an aside: The horribly long command line was to try to get to = the bottom of >> the breakage, not to promote it as the proper way of doing things. >=20 > I haven't committed because it isn't complete yet :) > I have updated it to the following: > http://people.freebsd.org/~bapt/Makefile.inc1.diff > but it is not enough as I end up with: >=20 > /tmp/tmips//usr/mips64-freebsd/usr/bin/ld: cannot find -lsupc++ >=20 > So it goes further but it is not yet enough I actually think xdev and a couple others should move to Makefile, and = the sub targets stay in Makefile.inc and be invoked with the right = TARGET and TARGET_ARCH so that we get the right defaults. Warner --Apple-Mail=_221413DC-DF81-4821-9955-7146E1086A2A Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJTvLudAAoJEGwc0Sh9sBEARYAP/0vvb3MK5tyNPJtDNF3PB4u1 yHbzhSyHiMtxjWQrcqK5byvV7ZUUWMCE37jByCUME8s5YRwkG5a6io6qK2GEtJiW f0EM7RJxVFqB4vHt2QO3YmcFQ70bJi/mZrUv2BWdEoGm6/3yUFjqM0EGEKXSf4Qc P1yXN2XlzoMVShGoFAoXTNVX4Yb/mGOxSWtWgiO39GMpLy+CP1Qq851ACD/eKAfm 18IOzeuIOiPjXiZNs3XzNhkadWnzrCxXi2o6yBNtKaVpIvHlSKLsdfF8tw//rGkS L5mw5Qynyc3wNIOxsX1/DSgJJy+YMzQjeDdT3XgR3So8ly8iv85ZAuRHOnrtQGAl 9vIa2POcOa0mE04tG9+wvg5XshO5B7rK/Fv6rfUJsW1LhAWLreYlz0PBvu/VwjgE oBxnoejfBjfEYeWwNgzYNEPR6+lB/9wr1hFPreCxmKYxmUCNRsvw6huj0cAXq7fi quFCG8roto2iEh/IKasSl3aeCcJvWPr6U0wPBZkoxBOScFeVNWtACv//b/8jSJa/ 12mauWXBeOGVxNV7QvVtFpgzWlQBuN6Lym1so6hbqMJzjMputDV1ESNj1jDWDvKz O3QL+UeU1YW1SPDY3Gh/DxGgBAQ6o1eboLH6abqKab8LxVAnakpXIkg05sj/OOYj oZFw6gv2jXv4z+Bwrq44 =isxN -----END PGP SIGNATURE----- --Apple-Mail=_221413DC-DF81-4821-9955-7146E1086A2A--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D755AEC2-E102-4FB2-8DCD-3C328064897B>