#!/bin/mkpkg # description: Rust programming language # url: https://www.rust-lang.org/ # https://releases.rs/docs/1.98.0/ name=rust version=1.98.1 _bootstrap=1.97.1 _date=2026-07-16 release=2 depends=(llvm) makedeps=(cmake ninja python3 gcc-compat) source=( https://static.rust-lang.org/dist/rustc-$version-src.tar.xz https://static.rust-lang.org/dist/$_date/rust-std-$_bootstrap-x86_64-unknown-linux-musl.tar.xz https://static.rust-lang.org/dist/$_date/rustc-$_bootstrap-x86_64-unknown-linux-musl.tar.xz https://static.rust-lang.org/dist/$_date/cargo-$_bootstrap-x86_64-unknown-linux-musl.tar.xz system.diff musl-no-crt-static.patch libressl-openssl-sys.patch ) sha256sums=( "be1816e7f6c40abb90245ad6e024bed2a7e88d7dda4561e4d5470207df616b9f" "51d83178680556f73a5fa8ad865b76a1ff541867445c00fc65dc67246bc2de66" "1b1f926d3b5bf8036c858180dbc9518c6c317154718ee5c5460bb23d23bacf5d" "623a1315bdbddc5e7a807aaf7e1911d1435a294758e170b8758f49fc57a3e67c" "c812b442131f53a6a614cba20bcd007ab0eee8583bd423d75038b90ebc87f323" "8b7d3beb08cc22a4477b238eff22d91b249ea4c5344911f6fc3c279342538e35" "0e5cd25e3680e75494b9d58783106723a97ef74bf70c9237bbb088fbc948a5d2" ) extract() { cp system.diff $SRC/ cp musl-no-crt-static.patch $SRC/ cp libressl-openssl-sys.patch $SRC/ tar -xf $PKGMK_SOURCE_DIR/rustc-$version-src.tar.xz -C $SRC mkdir -p $SRC/rustc-$version-src/build/cache/$_date cp rust-std-$_bootstrap-x86_64-unknown-linux-musl.tar.xz $SRC/rustc-$version-src/build/cache/$_date/ cp rustc-$_bootstrap-x86_64-unknown-linux-musl.tar.xz $SRC/rustc-$version-src/build/cache/$_date/ cp cargo-$_bootstrap-x86_64-unknown-linux-musl.tar.xz $SRC/rustc-$version-src/build/cache/$_date/ } patch() { cd rustc-$version-src patch -p1 -i $SRC/system.diff patch -p1 -i $SRC/musl-no-crt-static.patch patch -p1 -i $SRC/libressl-openssl-sys.patch # LLVM 23 dropped X86 FeatureAMXTF32 (Intel removed AMX-TF32 from the ISA). # rustc 1.98 still probes it via LLVMRustHasFeature(), now fatal, and # core_arch still defines the intrinsics. Fixed upstream in # rust-lang/rust#159310, landing in 1.99.0. sed -i '/"amx-tf32"/d' compiler/rustc_target/src/target_features.rs sed -i '/amx.tf32/Id' library/std_detect/src/detect/arch/x86.rs sed -i '/amx_tf32/d' library/std_detect/src/detect/os/x86.rs sed -i '/amx-tf32/d' library/std_detect/tests/x86-specific.rs sed -i '\%^/// Perform matrix multiplication of two tiles a and b, containing packed single precision%,/^}$/d' \ library/stdarch/crates/core_arch/src/x86_64/amx.rs sed -i '/llvm\.x86\.tmmultf32ps/,+1d' \ library/stdarch/crates/core_arch/src/x86_64/amx.rs } build() { cd rustc-$version-src cat > bootstrap.toml <