summaryrefslogtreecommitdiff
path: root/repo/devel/rustc/rustc.xibuild
diff options
context:
space:
mode:
Diffstat (limited to 'repo/devel/rustc/rustc.xibuild')
-rw-r--r--repo/devel/rustc/rustc.xibuild94
1 files changed, 94 insertions, 0 deletions
diff --git a/repo/devel/rustc/rustc.xibuild b/repo/devel/rustc/rustc.xibuild
new file mode 100644
index 0000000..758dafe
--- /dev/null
+++ b/repo/devel/rustc/rustc.xibuild
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+MAKEDEPS="cmake llvm clang llvm-ar"
+DEPS="curl libssh2 openssl"
+
+PKG_VER=1.58.1
+SOURCE=https://static.rust-lang.org/dist/rustc-$PKG_VER-src.tar.gz
+DESC="Systems programming language focused on safety, speed and concurrency"
+
+ADDITIONAL="
+ patches/0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
+ patches/0007-do-not-install-libunwind-source.patch
+ patches/install-template-shebang.patch
+ patches/link-musl-dynamically.patch
+ patches/musl-fix-linux_musl_base.patch
+ patches/need-rpath.patch
+ patches/need-ssp_nonshared.patch
+"
+
+prepare () {
+ apply_patches
+ sed -i /LD_LIBRARY_PATH/d src/bootstrap/bootstrap.py
+ sed -i 's/\("files":{\)[^}]*/\1/' vendor/libc/.cargo-checksum.json
+
+}
+
+build () {
+ target=x86_64-unknown-linux-musl
+ build=x86_64-unknown-linux-musl
+ ./configure \
+ --build="$build" \
+ --host="$target" \
+ --target="$target" \
+ --prefix="/usr" \
+ --release-channel="stable" \
+ --llvm-root="/usr/lib/" \
+ --disable-docs \
+ --enable-extended \
+ --tools="analysis,cargo,src,rustfmt" \
+ --enable-llvm-link-shared \
+ --enable-option-checking \
+ --enable-locked-deps \
+ --enable-vendor \
+ --set="rust.musl-root=/usr" \
+ --set="rust.codegen-units=1" \
+ --set="rust.codegen-units-std=1" \
+ --set="rust.parallel-compiler=true" \
+ --set="target.$target.llvm-config=/usr/bin/llvm-config" \
+ --set="target.$target.musl-root=/usr" \
+ --set="target.$target.crt-static=false" \
+ --set="target.$target.cc=clang" \
+ --set="target.$target.cxx=clang++" \
+ --set="target.$target.ar=llvm-ar" \
+ --set="target.$target.linker=clang" \
+ --set="target.$build.musl-root=/usr" \
+ --set="target.$build.crt-static=false" \
+ --set="target.$build.cc=clang" \
+ --set="target.$build.cxx=clang++" \
+ --set="target.$build.ar=llvm-ar" \
+ --set="target.$build.linker=clang"
+
+ sed 's/#deny-warnings = .*/deny-warnings = false/' -i config.toml
+ sed 's|deny(warnings,|deny(|' -i src/bootstrap/lib.rs
+
+ python ./x.py dist -v --jobs $JOBS
+
+}
+
+package () {
+ export LIBSSH2_SYS_USE_PKG_CONFIG=1 &&
+ DESTDIR=${PWD}/install python3 ./x.py install &&
+ unset LIBSSH2_SYS_USE_PKG_CONFIG
+
+ chown -R root:root install &&
+ cp -a install/* $PKG_DEST
+
+ mkdir -p $PKG_DEST/etc/profile.d/
+ cat > $PKG_DEST/etc/profile.d/rustc.sh << "EOF"
+# Begin /etc/profile.d/rustc.sh
+
+pathprepend /opt/rustc/bin PATH
+
+# End /etc/profile.d/rustc.sh
+EOF
+ mkdir -p $PKG_DEST/etc/ld.so.conf.d
+cat >> $PKG_DEST/etc/ld.so.conf.d/rustc.conf << EOF
+# Begin rustc addition
+
+/opt/rustc/lib
+
+# End rustc addition
+EOF
+
+}