Skip to content

Commit

Permalink
Merge pull request #316 from mariux64/update-rust
Browse files Browse the repository at this point in the history
Update rust
  • Loading branch information
david authored Feb 4, 2025
2 parents fad329d + f7f1a86 commit b411153
Showing 1 changed file with 140 additions and 0 deletions.
140 changes: 140 additions & 0 deletions rustc-1.84.1-0.build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
#! /bin/bash

PKG=rustc
VERSION=1.84.1
BUILD=0

PREFIX=/pkg/$PKG-$VERSION-$BUILD

set -xe
umask 022

TEMPFILES=/scratch/local2
if $(env | grep MXQ_SERVERID >/dev/null); then TEMPFILES=$TMPDIR ; fi

if [ -n "$TESTING" ]; then PREFIX=${TEMPFILES}/$PKG-$VERSION-$BUILD ; fi

BUILD_TMPDIR=${TEMPFILES}/$PKG-$VERSION-$BUILD.build.tmp
test -d $BUILD_TMPDIR && rm -rf $BUILD_TMPDIR
mkdir -p $BUILD_TMPDIR/home
export TMPDIR=$BUILD_TMPDIR
export HOME=$BUILD_TMPDIR/home

exec </dev/null

mkdir -p $PREFIX
cat >$PREFIX/profile <<-EOF
PATH=$PREFIX/bin:\$PATH
LD_LIBRARY_PATH=$PREFIX/lib:\$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
if [ -d /pkg/${PKG}-${VERSION}-${BUILD}/.compatlibs ]; then LD_LIBRARY_PATH=${PREFIX}/.compatlibs\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} ; fi
EOF
. $PREFIX/profile
. /pkg/llvm-17.0.6-0/profile

export MAKEFLAGS="-j $(nproc)"

BUILDDIR=$PREFIX/build

mkdir -p $BUILDDIR
cd $BUILDDIR

test -e $PKG-$VERSION-src.tar.gz || wget https://static.rust-lang.org/dist/$PKG-$VERSION-src.tar.gz
test -d $PKG-$VERSION-src || tar xvf $PKG-$VERSION-src.tar.gz
cd $PKG-$VERSION-src

cat << EOF > config.toml
# see config.toml.example for more possible options
# https://github.com/rust-lang/rust/issues/135358
profile = "dist"
change-id = 133207
[llvm]
link-shared=false
# Do not download pre-built LLVM, instead either use the system
# LLVM or build LLVM from the shipped source.
download-ci-llvm = false
# use ninja
ninja = true
targets = "X86"
# When compiling LLVM, the experimental targets (WebAssembly
# and RISCV) are built by default - omit them
experimental-targets = ""
[build]
# omit HTML docs to save time and space (comment this to build them)
docs = false
# install cargo as well as rust
extended = true
# Instead of downloading the src/stage0 version of the compiler
# specified, use this rustc binary instead as the stage0 snapshot compiler.
# If you set this, you likely want to set cargo as well.
rustc = "/usr/local/package/bin/rustc"
# Instead of downloading the src/stage0 version of Cargo specified, use
# this Cargo binary instead to build all Rust code
# If you set this, you likely want to set rustc as well.
cargo = "/usr/local/package/bin/cargo"
# Instead of downloading the src/stage0 version of rustfmt specified,
# use this rustfmt binary instead as the stage0 snapshot rustfmt.
rustfmt = "/usr/local/package/bin/rustfmt"
# Instead of downloading the src/stage0 version of cargo-clippy specified,
# use this cargo-clippy binary instead as the stage0 snapshot cargo-clippy.
#
# Note that this option should be used with the same toolchain as the rustc option above.
# Otherwise, clippy is likely to fail due to a toolchain conflict.
cargo-clippy = "/usr/local/package/bin/cargo-clippy"
# Use the source code shipped in the tarball for the dependencies.
# The combination of this and the "locked-deps" entry avoids downloading
# many crates from Internet, and makes the Rustc build more stable.
vendor = true
[install]
# Adjust the prefix for the desired destination
prefix = "$PREFIX"
sysconfdir = "etc"
# docdir is used even if the full awesome docs are not installed
docdir = "share/doc/rustc-${VERSION}"
[rust]
channel = "stable"
rpath = false
# Enable the same optimizations as the official upstream build.
codegen-units = 1
EOF

sed '/MirOpt/d' -i src/bootstrap/src/core/builder/mod.rs

export RUST_BACKTRACE=full
export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi" &&
python3 ./x.py build

python3 ./x.py install

cd ${BUILDDIR}

BINDGENVERS=0.28.0

test -e ${BUILDDIR}/cbindgen-${BINDGENVERS}.tar.gz || wget https://github.com/eqrion/cbindgen/archive/v${BINDGENVERS}/cbindgen-${BINDGENVERS}.tar.gz -O ${BUILDDIR}/cbindgen-${BINDGENVERS}.tar.gz
test -d cbindgen-${BINDGENVERS} || tar xvf ${BUILDDIR}/cbindgen-${BINDGENVERS}.tar.gz

cd cbindgen-${BINDGENVERS}

source ${PREFIX}/profile

cargo build --release
install -Dm755 target/release/cbindgen $PREFIX/bin


exit

0 comments on commit b411153

Please sign in to comment.