From 18600043537d956c58e1d5a6f045eb160d6ef6e8 Mon Sep 17 00:00:00 2001 From: Nick Spinale Date: Mon, 6 May 2024 13:53:05 -0400 Subject: [PATCH] Remove supplementary definitions of __bswapsi2 Build compiler-builtins with the "c" feature by default Signed-off-by: Nick Spinale --- .../root-task/ring-test-harness/src/lib.rs | 9 ------ .../utils/src/compiler_builtins_supplement.rs | 12 -------- .../network/rustls/utils/src/lib.rs | 1 - hacking/nix/rust-utils/build-sysroot.nix | 28 ++++++++++++++++--- 4 files changed, 24 insertions(+), 26 deletions(-) delete mode 100644 crates/sel4-async/network/rustls/utils/src/compiler_builtins_supplement.rs diff --git a/crates/private/tests/root-task/ring-test-harness/src/lib.rs b/crates/private/tests/root-task/ring-test-harness/src/lib.rs index 79d86123d..a41404141 100644 --- a/crates/private/tests/root-task/ring-test-harness/src/lib.rs +++ b/crates/private/tests/root-task/ring-test-harness/src/lib.rs @@ -51,12 +51,3 @@ mod dummy_custom_getrandom { getrandom::register_custom_getrandom!(dummy_custom_getrandom); } - -mod compiler_builtins_supplement { - // https://github.com/rust-lang/compiler-builtins/pull/563 - #[cfg(any(target_arch = "riscv32", target_arch = "riscv64"))] - #[no_mangle] - pub extern "C" fn __bswapsi2(u: u32) -> u32 { - u.swap_bytes() - } -} diff --git a/crates/sel4-async/network/rustls/utils/src/compiler_builtins_supplement.rs b/crates/sel4-async/network/rustls/utils/src/compiler_builtins_supplement.rs deleted file mode 100644 index 61eef79d6..000000000 --- a/crates/sel4-async/network/rustls/utils/src/compiler_builtins_supplement.rs +++ /dev/null @@ -1,12 +0,0 @@ -// -// Copyright 2023, Colias Group, LLC -// -// SPDX-License-Identifier: BSD-2-Clause -// - -// https://github.com/rust-lang/compiler-builtins/pull/563 -#[cfg(any(target_arch = "riscv32", target_arch = "riscv64"))] -#[no_mangle] -pub extern "C" fn __bswapsi2(u: u32) -> u32 { - u.swap_bytes() -} diff --git a/crates/sel4-async/network/rustls/utils/src/lib.rs b/crates/sel4-async/network/rustls/utils/src/lib.rs index 57836621c..16633f827 100644 --- a/crates/sel4-async/network/rustls/utils/src/lib.rs +++ b/crates/sel4-async/network/rustls/utils/src/lib.rs @@ -10,7 +10,6 @@ extern crate alloc; -mod compiler_builtins_supplement; mod dummy_custom_getrandom; mod no_server_cert_verifier; mod time_provider_impl; diff --git a/hacking/nix/rust-utils/build-sysroot.nix b/hacking/nix/rust-utils/build-sysroot.nix index c815329c9..ae8772c5a 100644 --- a/hacking/nix/rust-utils/build-sysroot.nix +++ b/hacking/nix/rust-utils/build-sysroot.nix @@ -5,7 +5,8 @@ # { lib, stdenv, buildPlatform, hostPlatform, buildPackages -, runCommand, linkFarm +, runCommand, runCommandCC, linkFarm +, fetchurl , vendorLockfile, crateUtils, symlinkToRegularFile , defaultRustToolchain, defaultRustTargetInfo , rustToolchain ? defaultRustToolchain @@ -27,6 +28,7 @@ in , rustTargetInfo ? defaultRustTargetInfo , alloc ? true , compilerBuiltinsMem ? true +, compilerBuiltinsC ? true }: let @@ -80,15 +82,33 @@ let features = lib.concatStringsSep "," (lib.optionals compilerBuiltinsMem [ "compiler-builtins-mem" + ] ++ lib.optionals compilerBuiltinsC [ + "compiler-builtins-c" ]); + compilerRTSource = let + v = "18.0-2024-02-13"; + name = "compiler-rt"; + llvmSourceTarball = fetchurl { + name = "llvm-project.tar.gz"; + url = "https://github.com/rust-lang/llvm-project/archive/rustc/${v}.tar.gz"; + sha256 = "sha256-fMc84lCWfNy0Xiq1X7nrT53MQPlfRqGEb4qBAmqehAA="; + }; + in + runCommand name {} '' + tar xzf ${llvmSourceTarball} --strip-components 1 llvm-project-rustc-${v}/${name} + mv ${name} $out + ''; + in -runCommand "sysroot" { +(if compilerBuiltinsC then runCommandCC else runCommand) "sysroot" ({ depsBuildBuild = [ buildPackages.stdenv.cc ]; nativeBuildInputs = [ rustToolchain ]; - RUST_TARGET_PATH = rustTargetInfo.path; -} '' +} // lib.optionalAttrs compilerBuiltinsC { + "CC_${rustTargetInfo.name}" = "${stdenv.cc.targetPrefix}gcc"; + RUST_COMPILER_RT_ROOT = compilerRTSource; +}) '' cargo build \ -Z unstable-options \ --offline \