diff --git a/Cargo.lock b/Cargo.lock index f61d3f69408..9e2237d2cdf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2617,7 +2617,8 @@ checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libloading" version = "0.8.9" -source = "git+https://github.com/Bravo555/rust_libloading.git?branch=0.8.9#bfc3d31bf4613dd91b6a3394b40ed304ea2c2f31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", "windows-link 0.2.1", diff --git a/Cargo.toml b/Cargo.toml index b6b50762304..ed9579d242a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -236,13 +236,6 @@ yansi = { version = "1.0.1", default-features = false, features = [ ] } zeroize = "1.5" - -# cryptoki uses libloading which tries to link libdl when declaring extern dlopen, but on musl -# dlopen is directly under libc, so we need to modify the extern block to not link libdl -# TODO: remove once fix is upstreamed to libloading -[patch.crates-io] -libloading = { git = "https://github.com/Bravo555/rust_libloading.git", branch = "0.8.9" } - [profile.release] codegen-units = 1 lto = true diff --git a/mk/cargo.sh b/mk/cargo.sh index 4035f7f9599..6614be7b64a 100755 --- a/mk/cargo.sh +++ b/mk/cargo.sh @@ -75,9 +75,10 @@ case $target in ;; aarch64-unknown-linux-musl) use_clang=1 + MUSL_SYSROOT_DIR="$HOME/.musl-cross/aarch64-unknown-linux-musl/aarch64-unknown-linux-musl/sysroot" + rustflags_self_contained="$rustflags_self_contained -Clink-arg=--sysroot=$MUSL_SYSROOT_DIR -Clink-arg=-L${MUSL_SYSROOT_DIR}/usr/lib" export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="$rustflags_self_contained" export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUNNER="$qemu_aarch64" - MUSL_SYSROOT_DIR="$HOME/.musl-cross/aarch64-unknown-linux-musl/aarch64-unknown-linux-musl/sysroot" export CFLAGS_aarch64_unknown_linux_musl="--sysroot=$MUSL_SYSROOT_DIR" export BINDGEN_EXTRA_CLANG_ARGS_aarch64_unknown_linux_musl="-I${MUSL_SYSROOT_DIR}/usr/include" ;; @@ -89,11 +90,12 @@ case $target in ;; arm-unknown-linux-musleabi) use_clang=1 + MUSL_SYSROOT_DIR="$HOME/.musl-cross/arm-unknown-linux-musleabi/arm-unknown-linux-musleabi/sysroot" + rustflags_self_contained="$rustflags_self_contained -Clink-arg=--sysroot=$MUSL_SYSROOT_DIR -Clink-arg=-L${MUSL_SYSROOT_DIR}/usr/lib" export CARGO_TARGET_ARM_UNKNOWN_LINUX_MUSLEABI_RUSTFLAGS="$rustflags_self_contained" export CARGO_TARGET_ARM_UNKNOWN_LINUX_MUSLEABI_RUNNER="$qemu_arm_gnueabi" # TODO: target does not support atomics so it is disabled however the code needs to be checked if this will causes problems # as it will no longer be thread safe - MUSL_SYSROOT_DIR="$HOME/.musl-cross/arm-unknown-linux-musleabi/arm-unknown-linux-musleabi/sysroot" export BINDGEN_EXTRA_CLANG_ARGS_arm_unknown_linux_musleabi="-I${MUSL_SYSROOT_DIR}/usr/include -D__STDC_NO_ATOMICS__=1" export CFLAGS_arm_unknown_linux_musleabi="--sysroot=$MUSL_SYSROOT_DIR -D__STDC_NO_ATOMICS__=1" ;; @@ -105,9 +107,10 @@ case $target in ;; armv5te-unknown-linux-musleabi) use_clang=1 + MUSL_SYSROOT_DIR="$HOME/.musl-cross/arm-unknown-linux-musleabi/arm-unknown-linux-musleabi/sysroot" + rustflags_self_contained="$rustflags_self_contained -Clink-arg=--sysroot=$MUSL_SYSROOT_DIR -Clink-arg=-L${MUSL_SYSROOT_DIR}/usr/lib" export CARGO_TARGET_ARMV5TE_UNKNOWN_LINUX_MUSLEABI_RUSTFLAGS="$rustflags_self_contained" export CARGO_TARGET_ARMV5TE_UNKNOWN_LINUX_MUSLEABI_RUNNER="$qemu_arm_gnueabi" - MUSL_SYSROOT_DIR="$HOME/.musl-cross/arm-unknown-linux-musleabi/arm-unknown-linux-musleabi/sysroot" # TODO: target does not support atomics so it is disabled however the code needs to be checked if this will causes problems # as it will no longer be thread safe export BINDGEN_EXTRA_CLANG_ARGS_armv5te_unknown_linux_musleabi="-I${MUSL_SYSROOT_DIR}/usr/include -D__STDC_NO_ATOMICS__=1" @@ -115,11 +118,12 @@ case $target in ;; arm-unknown-linux-musleabihf) use_clang=1 + MUSL_SYSROOT_DIR="$HOME/.musl-cross/arm-unknown-linux-musleabihf/arm-unknown-linux-musleabihf/sysroot" + rustflags_self_contained="$rustflags_self_contained -Clink-arg=--sysroot=$MUSL_SYSROOT_DIR -Clink-arg=-L${MUSL_SYSROOT_DIR}/usr/lib" export CARGO_TARGET_ARM_UNKNOWN_LINUX_MUSLEABIHF_RUSTFLAGS="$rustflags_self_contained" export CARGO_TARGET_ARM_UNKNOWN_LINUX_MUSLEABIHF_RUNNER="$qemu_arm_gnueabihf" # TODO: target does not support atomics so it is disabled however the code needs to be checked if this will causes problems # as it will no longer be thread safe - MUSL_SYSROOT_DIR="$HOME/.musl-cross/arm-unknown-linux-musleabihf/arm-unknown-linux-musleabihf/sysroot" export BINDGEN_EXTRA_CLANG_ARGS_arm_unknown_linux_musleabihf="-I${MUSL_SYSROOT_DIR}/usr/include -D__STDC_NO_ATOMICS__=1" export CFLAGS_arm_unknown_linux_musleabihf="--sysroot=$MUSL_SYSROOT_DIR -D__STDC_NO_ATOMICS__=1" ;; @@ -143,9 +147,10 @@ case $target in ;; armv7-unknown-linux-musleabihf) use_clang=1 + MUSL_SYSROOT_DIR="$HOME/.musl-cross/armv7-unknown-linux-musleabihf/armv7-unknown-linux-musleabihf/sysroot" + rustflags_self_contained="$rustflags_self_contained -Clink-arg=--sysroot=$MUSL_SYSROOT_DIR -Clink-arg=-L${MUSL_SYSROOT_DIR}/usr/lib" export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUSTFLAGS="$rustflags_self_contained" export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUNNER="$qemu_arm_gnueabihf" - MUSL_SYSROOT_DIR="$HOME/.musl-cross/armv7-unknown-linux-musleabihf/armv7-unknown-linux-musleabihf/sysroot" export CFLAGS_armv7_unknown_linux_musleabihf="--sysroot=$MUSL_SYSROOT_DIR" export BINDGEN_EXTRA_CLANG_ARGS_armv7_unknown_linux_musleabihf="-I${MUSL_SYSROOT_DIR}/usr/include" ;; @@ -155,8 +160,9 @@ case $target in ;; i686-unknown-linux-musl) use_clang=1 - export CARGO_TARGET_I686_UNKNOWN_LINUX_MUSL_RUSTFLAGS="$rustflags_self_contained" MUSL_SYSROOT_DIR="$HOME/.musl-cross/i686-unknown-linux-musl/i686-unknown-linux-musl/sysroot" + rustflags_self_contained="$rustflags_self_contained -Clink-arg=--sysroot=$MUSL_SYSROOT_DIR -Clink-arg=-L${MUSL_SYSROOT_DIR}/usr/lib" + export CARGO_TARGET_I686_UNKNOWN_LINUX_MUSL_RUSTFLAGS="$rustflags_self_contained" export CFLAGS_i686_unknown_linux_musl="--sysroot=$MUSL_SYSROOT_DIR" export BINDGEN_EXTRA_CLANG_ARGS_i686_unknown_linux_musl="-I${MUSL_SYSROOT_DIR}/usr/include" ;; @@ -215,9 +221,10 @@ case $target in ;; riscv64gc-unknown-linux-musl) use_clang=1 + MUSL_SYSROOT_DIR="$HOME/.musl-cross/riscv64-unknown-linux-musl/riscv64-unknown-linux-musl/sysroot" + rustflags_self_contained="$rustflags_self_contained -Clink-arg=--sysroot=$MUSL_SYSROOT_DIR -Clink-arg=-L${MUSL_SYSROOT_DIR}/usr/lib" export CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_MUSL_RUSTFLAGS="$rustflags_self_contained" export CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_MUSL_RUNNER="$qemu_riscv64" - MUSL_SYSROOT_DIR="$HOME/.musl-cross/riscv64-unknown-linux-musl/riscv64-unknown-linux-musl/sysroot" export CFLAGS_riscv64gc_unknown_linux_musl="--sysroot=$MUSL_SYSROOT_DIR" export BINDGEN_EXTRA_CLANG_ARGS="--target=riscv64-unknown-linux-musl --sysroot=$MUSL_SYSROOT_DIR" ;; @@ -232,13 +239,14 @@ case $target in ;; x86_64-unknown-linux-musl) use_clang=1 + MUSL_SYSROOT_DIR="$HOME/.musl-cross/x86_64-unknown-linux-musl/x86_64-unknown-linux-musl/sysroot" + rustflags_self_contained="$rustflags_self_contained -Clink-arg=--sysroot=$MUSL_SYSROOT_DIR -Clink-arg=-L${MUSL_SYSROOT_DIR}/usr/lib" # XXX: Work around https://github.com/rust-lang/rust/issues/79555. if [ -n "${RING_COVERAGE-}" ]; then export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=clang-$llvm_version else export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="$rustflags_self_contained" fi - MUSL_SYSROOT_DIR="$HOME/.musl-cross/x86_64-unknown-linux-musl/x86_64-unknown-linux-musl/sysroot" export CFLAGS_x86_64_unknown_linux_musl="--sysroot=$MUSL_SYSROOT_DIR" export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=$MUSL_SYSROOT_DIR" ;;