Date: Sat, 8 Apr 2017 00:23:07 +0000 From: Brooks Davis <brooks@freebsd.org> To: freebsd-toolchain@freebsd.org Subject: Re: svn commit: r437976 - in head/devel: . xtoolchain-llvm-devel xtoolchain-llvm-devel/files xtoolchain-llvm40 Message-ID: <20170408002307.GA43485@spindle.one-eyed-alien.net> In-Reply-To: <201704080013.v380DwC4038708@repo.freebsd.org> References: <201704080013.v380DwC4038708@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--5mCyUwZo2JvN/JJP Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable I've added new xtoolchain ports for llvm. Unlike the <arch>-xtoolchain-gcc ports, they use LLVM's native cross build support so there is a single one for each usable LLVM version. They use clang and lld for compilation and linking. It's probably feasible to add versions that use binutils, but I'll let someone else explore that space. My results so far: llvm40 builds i386, amd64, and arm64 with caveats. llvm-devel build arm64, but amd64 is currently failing and I've not tested i386. For i386, modules don't link so buildkernel requires -DNO_MODULES. For arm64, there's a bootstrapping bug of some sort of LLD so -DWITHOUT_LLD is required. I suspect mips64 is close to working, but haven't tested it yet. -- Brooks On Sat, Apr 08, 2017 at 12:13:58AM +0000, Brooks Davis wrote: > Author: brooks > Date: Sat Apr 8 00:13:58 2017 > New Revision: 437976 > URL: https://svnweb.freebsd.org/changeset/ports/437976 >=20 > Log: > Add experimental xtoolchain ports for llvm-devel and llvm40. > =20 > With an appropriate port installed, in principle you can build a cross > world and/or kernel without a bootstrap compiler or binutils with: > =20 > make CROSS_TOOLCHAIN=3Dllvm40 TARGET=3Darm64 buildworld buildkernel > =20 > In practice, this only has a chance of working on platforms with solid > LLD support. At the moment I've had some success with i386, amd64, and > arm64. > =20 > Sponsored by: DARPA, AFRL >=20 > Added: > head/devel/xtoolchain-llvm-devel/ > - copied from r437962, head/devel/powerpc64-xtoolchain-gcc/ > head/devel/xtoolchain-llvm40/ > head/devel/xtoolchain-llvm40/Makefile (contents, props changed) > Modified: > head/devel/Makefile > head/devel/xtoolchain-llvm-devel/Makefile > head/devel/xtoolchain-llvm-devel/files/xtoolchain.mk.in >=20 > Modified: head/devel/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/devel/Makefile Fri Apr 7 23:20:31 2017 (r437975) > +++ head/devel/Makefile Sat Apr 8 00:13:58 2017 (r437976) > @@ -5817,6 +5817,8 @@ > SUBDIR +=3D xparam > SUBDIR +=3D xsd > SUBDIR +=3D xtl > + SUBDIR +=3D xtoolchain-llvm-devel > + SUBDIR +=3D xtoolchain-llvm40 > SUBDIR +=3D xwpe > SUBDIR +=3D xxgdb > SUBDIR +=3D xxhash >=20 > Modified: head/devel/xtoolchain-llvm-devel/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/devel/powerpc64-xtoolchain-gcc/Makefile Fri Apr 7 22:32:01 2017= (r437962) > +++ head/devel/xtoolchain-llvm-devel/Makefile Sat Apr 8 00:13:58 2017 (r= 437976) > @@ -1,43 +1,47 @@ > # $FreeBSD$ > =20 > PORTNAME=3D xtoolchain > -PORTVERSION=3D 0.2 > +PORTVERSION=3D 0.1 > CATEGORIES=3D devel > MASTER_SITES=3D # none > DISTFILES=3D # none > -PKGNAMEPREFIX?=3D powerpc64- > -PKGNAMESUFFIX?=3D -gcc > +PKGNAMESUFFIX?=3D -llvm${LLVM_SUFFIX} > =20 > -MAINTAINER?=3D bapt@FreeBSD.org > +MAINTAINER?=3D brooks@FreeBSD.org > COMMENT=3D Pre seeded toolchain to cross build FreeBSD base > =20 > +LLVM_SUFFIX?=3D -devel > + > NO_BUILD=3D yes > =20 > -.if ${PKGNAMEPREFIX} =3D=3D "amd64-" > -TOOLCHAIN_PREFIX=3D x86_64- > -.else > -TOOLCHAIN_PREFIX=3D ${PKGNAMEPREFIX} > -.endif > -XCC?=3D ${TOOLCHAIN_PREFIX}unknown-${OPSYS:tl}${OSREL}-gcc > -XCXX?=3D ${TOOLCHAIN_PREFIX}unknown-${OPSYS:tl}${OSREL}-g++ > -XCPP?=3D ${TOOLCHAIN_PREFIX}unknown-${OPSYS:tl}${OSREL}-cpp > -X_COMPILER_TYPE?=3D ${PKGNAMESUFFIX:C/-//g} > +XCC?=3D clang${LLVM_SUFFIX} > +XCXX?=3D clang++${LLVM_SUFFIX} > +XCPP?=3D clang-cpp${LLVM_SUFFIX} > +XLD?=3D ${LOCALBASE}/llvm${LLVM_SUFFIX}/bin/ld.lld > +X_COMPILER_TYPE?=3D clang > =20 > -RUN_DEPENDS?=3D ${XCC}:devel/${PKGNAMEPREFIX}${X_COMPILER_TYPE} > +RUN_DEPENDS?=3D ${XCC}:devel/llvm${LLVM_SUFFIX} > =20 > SUB_FILES=3D xtoolchain.mk > -SUB_LIST=3D TARGETARCH=3D${TOOLCHAIN_PREFIX:C/-//g} \ > - OPSYS=3D${OPSYS:tl} \ > - XCC=3D${XCC} \ > +SUB_LIST=3D XCC=3D${XCC} \ > XCXX=3D${XCXX} \ > XCPP=3D${XCPP} \ > + XLD=3D${XLD} \ > X_COMPILER_TYPE=3D${X_COMPILER_TYPE} > =20 > -PLIST_FILES=3D share/toolchains/${PKGNAMEPREFIX}${X_COMPILER_TYPE}.mk > +PLIST_FILES=3D share/toolchains/llvm${LLVM_SUFFIX}.mk \ > + llvm${LLVM_SUFFIX}/bin/ld > =20 > do-install: > @${MKDIR} ${STAGEDIR}${PREFIX}/share/toolchains/ > @${INSTALL_DATA} ${WRKDIR}/xtoolchain.mk \ > - ${STAGEDIR}${PREFIX}/share/toolchains/${PKGNAMEPREFIX}${X_COMPILER_TYP= E}.mk > + ${STAGEDIR}${PREFIX}/share/toolchains/llvm${LLVM_SUFFIX}.mk > + > +# XXX: would be better to add -fuse-ld=3Dlld to LDFLAGS, but there isn't > +# yet a mechansim for that. Link added here, not in devel/llvm* to avoid > +# forcing lld on all users. > +post-install: > + @${MKDIR} ${STAGEDIR}${LOCALBASE}/llvm${LLVM_SUFFIX}/bin > + @${LN} -s ld.lld ${STAGEDIR}${LOCALBASE}/llvm${LLVM_SUFFIX}/bin/ld > =20 > .include <bsd.port.mk> >=20 > Modified: head/devel/xtoolchain-llvm-devel/files/xtoolchain.mk.in > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/devel/powerpc64-xtoolchain-gcc/files/xtoolchain.mk.in Fri Apr 7= 22:32:01 2017 (r437962) > +++ head/devel/xtoolchain-llvm-devel/files/xtoolchain.mk.in Sat Apr 8 00= :13:58 2017 (r437976) > @@ -1,5 +1,6 @@ > XCC=3D%%LOCALBASE%%/bin/%%XCC%% > XCXX=3D%%LOCALBASE%%/bin/%%XCXX%% > XCPP=3D%%LOCALBASE%%/bin/%%XCPP%% > -CROSS_BINUTILS_PREFIX=3D%%LOCALBASE%%/%%TARGETARCH%%-%%OPSYS%%/bin/ > +XLD=3D%%XLD%% > +CROSS_BINUTILS_PREFIX=3D/var/empty > X_COMPILER_TYPE=3D%%X_COMPILER_TYPE%% >=20 > Added: head/devel/xtoolchain-llvm40/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/devel/xtoolchain-llvm40/Makefile Sat Apr 8 00:13:58 2017 (r4379= 76) > @@ -0,0 +1,7 @@ > +# $FreeBSD$ > + > +LLVM_SUFFIX=3D40 > + > +MASTERDIR=3D ${.CURDIR}/../xtoolchain-llvm-devel > + > +.include "${MASTERDIR}/Makefile" > _______________________________________________ > svn-ports-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-ports-all > To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org" >=20 --5mCyUwZo2JvN/JJP Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEcBAEBAgAGBQJY6C1qAAoJEKzQXbSebgfAikAH/3yaKEnzq/N7i44DvScG6Z4t fd8osjhmHurr4knlAkk3Rrh6SnjJPgr6sNj8qZJTSkBPNYLGdeGUcf/gEN/iCE6n wEycwprRoKuUKOUYt3PNoIdxQAg9U6aR6pPmeBz+IVNnKpInD+PkZcReV1Yj+ztP larwW31fZN3khSsMKRhvn+ElJZTIPu2KIxBocsHuUUlbwVxSLaXv9pwpi+yM/IZ8 IxsFUQ+SbKT4UCLN6/gm8Ph3cw2oAOi1NKO7PLreN1aJlnNlUOc5T74CR7M0wcx4 GZn1d0nSb0WyJFvbblembGPu3OlKcPPWlchykHF9YmtTdCgplhqrFi6RcMepSO4= =bUdi -----END PGP SIGNATURE----- --5mCyUwZo2JvN/JJP--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170408002307.GA43485>