Wednesday, August 23, 2017

lang/rust: switch to embedded llvm

Hi,

The following diff on lang/rust will switch it to embedded LLVM.

Brad would like to update devel/llvm to 5.0rc, but rustc 1.19.0 doesn't
support it.

It is also a sane path for compiling rustc with libc++ instead of
libestdc++. Currently devel/llvm is linked to libestdc++ and rustc could
link with llvm and libc++ (as it would mix libc++ and libestdc++).

The status for libc++ regarding rustc is good for now, but I have a
stopper with not functional unwinding: it works with debugging symbols
but not without... More details at https://github.com/rust-lang/rust/issues/43575

Thanks.
--
Sebastien Marie

Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/rust/Makefile,v
retrieving revision 1.49
diff -u -p -r1.49 Makefile
--- Makefile 22 Aug 2017 11:10:01 -0000 1.49
+++ Makefile 23 Aug 2017 18:06:24 -0000
@@ -20,7 +20,7 @@ BV = ${BV-${MACHINE_ARCH}}
PKGNAME = rust-${V}
PKGNAME-main = rust-${V}
PKGNAME-doc = rust-doc-${V}
-REVISION-main = 0
+REVISION-main = 1

MULTI_PACKAGES = -main -doc

@@ -63,8 +63,13 @@ MODULES += gcc4 \
lang/python
MODPY_RUNDEP = No

-BUILD_DEPENDS += devel/llvm \
- devel/cmake
+BUILD_DEPENDS += devel/cmake
+#BUILD_DEPENDS += devel/llvm
+
+.if ! ${BUILD_DEPENDS:Mdevel/llvm}
+# use ninja to compile embedded llvm
+BUILD_DEPENDS += devel/ninja
+.endif

LIB_DEPENDS += net/curl \
devel/libgit2/libgit2 \
@@ -154,9 +159,15 @@ do-configure:
echo '[dist]' >>${WRKBUILD}/config.toml
echo 'src-tarball = false' >>${WRKBUILD}/config.toml

+ echo '[llvm]' >>${WRKBUILD}/config.toml
+ echo 'static-libstdcpp = false' >>${WRKBUILD}/config.toml
+ echo 'ninja = true' >>${WRKBUILD}/config.toml
+
echo '[target.${TRIPLE_ARCH}]' >>${WRKBUILD}/config.toml
+.if ${BUILD_DEPENDS:Mdevel/llvm}
echo 'llvm-config = "${LOCALBASE}/bin/llvm-config"' \
>>${WRKBUILD}/config.toml
+.endif

rm -rf ${WRKDIR}/modgcc-libs
mkdir -p ${WRKDIR}/modgcc-libs

No comments:

Post a Comment