aboutsummaryrefslogtreecommitdiff
path: root/repos/extra/rust/abuild
blob: 8c4d918d669306aca346399fb33b36849eaa951e (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
95
96
97
98
99
100
101
102
name=rust
version=1.86.0

##cat src/stage0.txt
export _date=2025-02-20
export _rustc=1.85.0
export _cargo=$_rustc
##

release=1
source="https://static.rust-lang.org/dist/${name}c-$version-src.tar.xz
	https://static.rust-lang.org/dist/$_date/rust-std-$_rustc-x86_64-unknown-linux-musl.tar.xz::noextract
	https://static.rust-lang.org/dist/$_date/rustc-$_rustc-x86_64-unknown-linux-musl.tar.xz::noextract
	https://static.rust-lang.org/dist/$_date/cargo-$_cargo-x86_64-unknown-linux-musl.tar.xz::noextract
	fix-linux_musl_base.patch
	libressl.patch
	fix-curl.patch"
build_dir=${name}c-$version-src
keep_static=1
no_strip=1

build() {
	mkdir -p build/cache/$_date
	
	_tuplet=x86_64-unknown-linux-musl
	cp $SRC/rust-std-$_rustc-x86_64-unknown-linux-musl.tar.xz build/cache/$_date/
	cp $SRC/rustc-$_rustc-x86_64-unknown-linux-musl.tar.xz build/cache/$_date/
	cp $SRC/cargo-$_cargo-x86_64-unknown-linux-musl.tar.xz build/cache/$_date/
	
	sed -i 's/\(crt_static_default = \)true/\1false/' compiler/rustc_target/src/spec/base/linux_musl.rs
	sed -i 's/\("files":{\)[^}]*/\1/' vendor/curl-sys-0.4.52+curl-7.81.0/.cargo-checksum.json
	sed -i 's/\("files":{\)[^}]*/\1/' vendor/curl-sys-0.4.78+curl-8.11.0/.cargo-checksum.json
	sed -i 's/\("files":{\)[^}]*/\1/' vendor/curl-sys-0.4.79+curl-8.12.0/.cargo-checksum.json
	sed -i 's/\("files":{\)[^}]*/\1/' vendor/openssl-sys-0.9.92/.cargo-checksum.json
	
	cat > config.toml <<EOF
[llvm]
link-shared      = true
download-ci-llvm = false
static-libstdcpp = false
use-libcxx       = true

[build]
build     = "$_tuplet"
host      = [ "$_tuplet" ]
target    = [ "$_tuplet" ]

docs           = false
compiler-docs  = false
extended       = true
submodules     = false
python         = "python3"
locked-deps    = true
vendor         = true
tools          = [ "cargo", "rustfmt" ]
sanitizers     = false
profiler       = false
full-bootstrap = false

[install]
prefix = "/usr"

[target.$_tuplet]
llvm-config = "/usr/bin/llvm-config"
crt-static  = false
sanitizers  = false

[dist]
src-tarball = false

[rust]
backtrace         = false
channel           = "stable"
codegen-tests     = false
codegen-units-std = 1
codegen-units     = 0
debug             = false
debug-assertions  = false
debuginfo-level   = 0
incremental       = false
jemalloc          = false
rpath             = false
dist-src          = false
llvm-libunwind    = "system"
EOF

	mkdir -p libgcc
	printf 'INPUT(-lunwind)\n' > libgcc/libgcc_s.so
	ln -sf $(cc -print-file-name=libunwind.so) libgcc/libgcc_s.so.1
	export LD_LIBRARY_PATH="$PWD/libgcc:$LD_LIBRARY_PATH"
	export LIBRARY_PATH="$PWD/libgcc:$LIBRARY_PATH"
	
	mkdir "$SRC/rust"
	export RUST_BACKTRACE=1
	
	#python x.py build
	python x.py install
	
	rm -rf $PKG/usr/lib/rustlib/src/ \
		$PKG/usr/share/zsh \
		$PKG/usr/lib/rustlib/uninstall.sh
}