add bootstrap packages
This commit is contained in:
parent
4de0af80de
commit
fb7ee2330b
3 changed files with 88 additions and 0 deletions
3
bootstrap/README.md
Normal file
3
bootstrap/README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Bootstrap
|
||||||
|
These packages are not meant to be used in a complete Iglunix system but are
|
||||||
|
ment as a stepping stone to build the full packages.
|
49
bootstrap/rust/boot.sh
Executable file
49
bootstrap/rust/boot.sh
Executable file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
ARCH=aarch64
|
||||||
|
CHAN=beta
|
||||||
|
LIBUNWIND=/usr/lib/libunwind.so.1
|
||||||
|
|
||||||
|
mkdir -p build
|
||||||
|
|
||||||
|
echo 'Downloading rust tar'
|
||||||
|
stat build/rust.tar > /dev/null 2> /dev/null \
|
||||||
|
|| curl "https://static.rust-lang.org/dist/rust-$CHAN-$ARCH-unknown-linux-musl.tar.gz" -o build/rust.tar
|
||||||
|
|
||||||
|
echo 'Extracting rust tar'
|
||||||
|
stat build/rust-$CHAN-$ARCH-unknown-linux-musl > /dev/null 2> /dev/null \
|
||||||
|
|| tar -xf build/rust.tar -C build
|
||||||
|
|
||||||
|
echo 'Building libgcc_s.so'
|
||||||
|
stat build/libgcc_s.so > /dev/null 2> /dev/null \
|
||||||
|
|| clang -shared -o build/libgcc_s.so \
|
||||||
|
-Wl,--allow-multiple-definition -Wl,--whole-archive \
|
||||||
|
$(clang -print-libgcc-file-name)
|
||||||
|
|
||||||
|
mkdir -p build/rust-root
|
||||||
|
|
||||||
|
echo 'Installing rust to rust-root'
|
||||||
|
|
||||||
|
stat build/rust-root/lib/rustlib/uninstall.sh > /dev/null 2> /dev/null \
|
||||||
|
|| ./build/rust-$CHAN-$ARCH-unknown-linux-musl/install.sh \
|
||||||
|
--disable-ldconfig \
|
||||||
|
--destdir=$(pwd)/build/rust-root \
|
||||||
|
--prefix=/
|
||||||
|
|
||||||
|
# Can't just symlink here 'cause rustc needs __clear_cache which isn't exposed
|
||||||
|
# by libunwind
|
||||||
|
echo 'Copying libgcc_s shim'
|
||||||
|
stat $(pwd)/build/rust-root/lib/libgcc_s.so.1 > /dev/null 2> /dev/null \
|
||||||
|
|| cp $(pwd)/build/libgcc_s.so $(pwd)/build/rust-root/lib/libgcc_s.so.1
|
||||||
|
|
||||||
|
# Symlink libunwind for dynamic builds to link to
|
||||||
|
echo 'Symlinking libunwind'
|
||||||
|
stat $(pwd)/build/rust-root/lib/rustlib/aarch64-unknown-linux-musl/lib/libgcc_s.so > /dev/null 2> /dev/null \
|
||||||
|
|| ln -sr $LIBUNWIND $(pwd)/build/rust-root/lib/rustlib/aarch64-unknown-linux-musl/lib/libgcc_s.so
|
||||||
|
|
||||||
|
export RUSTC=$(pwd)/build/rust-root/bin/rustc
|
||||||
|
|
||||||
|
echo "Checking Sanity"
|
||||||
|
|
||||||
|
$RUSTC sanity.rs -C target-feature=-crt-static -o build/sanity
|
||||||
|
./build/sanity
|
36
bootstrap/rust/build.sh
Normal file
36
bootstrap/rust/build.sh
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
pkgname=rust
|
||||||
|
pkgver=beta
|
||||||
|
|
||||||
|
fetch() {
|
||||||
|
stat rust.tar.gz > /dev/null 2> /dev/null \
|
||||||
|
|| curl "https://static.rust-lang.org/dist/rust-$pkgver-$ARCH-unknown-linux-musl.tar.gz" -o rust.tar.gz
|
||||||
|
|
||||||
|
stat rust-$pkgver-$ARCH-unknown-linux-musl > /dev/null 2> /dev/null \
|
||||||
|
|| tar -xf rust.tar.gz
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
stat libgcc_s.so > /dev/null 2> /dev/null \
|
||||||
|
|| clang -shared -o libgcc_s.so \
|
||||||
|
-Wl,--allow-multiple-definition -Wl,--whole-archive \
|
||||||
|
$(clang -print-libgcc-file-name)
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
stat $pkgdir/opt/rust/lib/rustlib/uninstall.sh > /dev/null 2> /dev/null \
|
||||||
|
|| ./rust-$pkgver-$ARCH-unknown-linux-musl/install.sh \
|
||||||
|
--disable-ldconfig \
|
||||||
|
--destdir=$pkgdir \
|
||||||
|
--prefix=/opt/rust
|
||||||
|
|
||||||
|
stat $pkgdir/opt/rust/lib/libgcc_s.so \
|
||||||
|
|| cp ./libgcc_s.so $pkgdir/opt/rust/lib/libgcc_s.so
|
||||||
|
}
|
||||||
|
|
||||||
|
backup() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
license() {
|
||||||
|
return
|
||||||
|
}
|
Loading…
Reference in a new issue