svn commit: r437976 - in head/devel: . xtoolchain-llvm-devel xtoolchain-llvm-devel/files xtoolchain-llvm40
Brooks Davis
brooks at FreeBSD.org
Sat Apr 8 00:14:00 UTC 2017
Author: brooks
Date: Sat Apr 8 00:13:58 2017
New Revision: 437976
URL: https://svnweb.freebsd.org/changeset/ports/437976
Log:
Add experimental xtoolchain ports for llvm-devel and llvm40.
With an appropriate port installed, in principle you can build a cross
world and/or kernel without a bootstrap compiler or binutils with:
make CROSS_TOOLCHAIN=llvm40 TARGET=arm64 buildworld buildkernel
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.
Sponsored by: DARPA, AFRL
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
Modified: head/devel/Makefile
==============================================================================
--- 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 += xparam
SUBDIR += xsd
SUBDIR += xtl
+ SUBDIR += xtoolchain-llvm-devel
+ SUBDIR += xtoolchain-llvm40
SUBDIR += xwpe
SUBDIR += xxgdb
SUBDIR += xxhash
Modified: head/devel/xtoolchain-llvm-devel/Makefile
==============================================================================
--- 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 (r437976)
@@ -1,43 +1,47 @@
# $FreeBSD$
PORTNAME= xtoolchain
-PORTVERSION= 0.2
+PORTVERSION= 0.1
CATEGORIES= devel
MASTER_SITES= # none
DISTFILES= # none
-PKGNAMEPREFIX?= powerpc64-
-PKGNAMESUFFIX?= -gcc
+PKGNAMESUFFIX?= -llvm${LLVM_SUFFIX}
-MAINTAINER?= bapt at FreeBSD.org
+MAINTAINER?= brooks at FreeBSD.org
COMMENT= Pre seeded toolchain to cross build FreeBSD base
+LLVM_SUFFIX?= -devel
+
NO_BUILD= yes
-.if ${PKGNAMEPREFIX} == "amd64-"
-TOOLCHAIN_PREFIX= x86_64-
-.else
-TOOLCHAIN_PREFIX= ${PKGNAMEPREFIX}
-.endif
-XCC?= ${TOOLCHAIN_PREFIX}unknown-${OPSYS:tl}${OSREL}-gcc
-XCXX?= ${TOOLCHAIN_PREFIX}unknown-${OPSYS:tl}${OSREL}-g++
-XCPP?= ${TOOLCHAIN_PREFIX}unknown-${OPSYS:tl}${OSREL}-cpp
-X_COMPILER_TYPE?= ${PKGNAMESUFFIX:C/-//g}
+XCC?= clang${LLVM_SUFFIX}
+XCXX?= clang++${LLVM_SUFFIX}
+XCPP?= clang-cpp${LLVM_SUFFIX}
+XLD?= ${LOCALBASE}/llvm${LLVM_SUFFIX}/bin/ld.lld
+X_COMPILER_TYPE?= clang
-RUN_DEPENDS?= ${XCC}:devel/${PKGNAMEPREFIX}${X_COMPILER_TYPE}
+RUN_DEPENDS?= ${XCC}:devel/llvm${LLVM_SUFFIX}
SUB_FILES= xtoolchain.mk
-SUB_LIST= TARGETARCH=${TOOLCHAIN_PREFIX:C/-//g} \
- OPSYS=${OPSYS:tl} \
- XCC=${XCC} \
+SUB_LIST= XCC=${XCC} \
XCXX=${XCXX} \
XCPP=${XCPP} \
+ XLD=${XLD} \
X_COMPILER_TYPE=${X_COMPILER_TYPE}
-PLIST_FILES= share/toolchains/${PKGNAMEPREFIX}${X_COMPILER_TYPE}.mk
+PLIST_FILES= share/toolchains/llvm${LLVM_SUFFIX}.mk \
+ llvm${LLVM_SUFFIX}/bin/ld
do-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/share/toolchains/
@${INSTALL_DATA} ${WRKDIR}/xtoolchain.mk \
- ${STAGEDIR}${PREFIX}/share/toolchains/${PKGNAMEPREFIX}${X_COMPILER_TYPE}.mk
+ ${STAGEDIR}${PREFIX}/share/toolchains/llvm${LLVM_SUFFIX}.mk
+
+# XXX: would be better to add -fuse-ld=lld 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
.include <bsd.port.mk>
Modified: head/devel/xtoolchain-llvm-devel/files/xtoolchain.mk.in
==============================================================================
--- 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=%%LOCALBASE%%/bin/%%XCC%%
XCXX=%%LOCALBASE%%/bin/%%XCXX%%
XCPP=%%LOCALBASE%%/bin/%%XCPP%%
-CROSS_BINUTILS_PREFIX=%%LOCALBASE%%/%%TARGETARCH%%-%%OPSYS%%/bin/
+XLD=%%XLD%%
+CROSS_BINUTILS_PREFIX=/var/empty
X_COMPILER_TYPE=%%X_COMPILER_TYPE%%
Added: head/devel/xtoolchain-llvm40/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/xtoolchain-llvm40/Makefile Sat Apr 8 00:13:58 2017 (r437976)
@@ -0,0 +1,7 @@
+# $FreeBSD$
+
+LLVM_SUFFIX=40
+
+MASTERDIR= ${.CURDIR}/../xtoolchain-llvm-devel
+
+.include "${MASTERDIR}/Makefile"
More information about the svn-ports-head
mailing list