summaryrefslogtreecommitdiff
path: root/repo/devel/rustc/rustc.xibuild
blob: 090aa01717f19f036359595471386b977c075973 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/bin/sh

MAKEDEPS="cmake 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

}