From c950184e348d18fe72bdfe965045786875d89483 Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Wed, 11 Feb 2026 13:24:16 -0800 Subject: [PATCH] Revert "Support TARGET_CC and CC_{target}" This reverts commit a50a39fde7967a6c25ed6ee7ec2feabad69c30bf, which interferes with CMake's own support for these variables, at least how Signal has been using them. --- .github/workflows/ci.yml | 8 ++++---- boring-sys/build/config.rs | 17 +++++++---------- boring-sys/build/main.rs | 9 --------- 3 files changed, 11 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5a697cf64..c2756460f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -158,8 +158,8 @@ jobs: apt_packages: gcc-arm-linux-gnueabi g++-arm-linux-gnueabi check_only: true custom_env: - CC_arm-unknown-linux-gnueabi: arm-linux-gnueabi-gcc - CXX_arm-unknown-linux-gnueabi: arm-linux-gnueabi-g++ + CC: arm-linux-gnueabi-gcc + CXX: arm-linux-gnueabi-g++ CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_LINKER: arm-linux-gnueabi-g++ - thing: aarch64-linux target: aarch64-unknown-linux-gnu @@ -168,8 +168,8 @@ jobs: apt_packages: crossbuild-essential-arm64 check_only: true custom_env: - CC_aarch64_unknown_linux_gnu: aarch64-linux-gnu-gcc - CXX_aarch64_unknown_linux_gnu: aarch64-linux-gnu-g++ + CC: aarch64-linux-gnu-gcc + CXX: aarch64-linux-gnu-g++ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-g++ - thing: arm64-macos target: aarch64-apple-darwin diff --git a/boring-sys/build/config.rs b/boring-sys/build/config.rs index 5d93eda4a..bf9e29905 100644 --- a/boring-sys/build/config.rs +++ b/boring-sys/build/config.rs @@ -36,9 +36,6 @@ pub(crate) struct Env { pub(crate) android_ndk_home: Option, pub(crate) cmake_toolchain_file: Option, pub(crate) cpp_runtime_lib: Option, - /// C compiler (ignored if using FIPS) - pub(crate) cc: Option, - pub(crate) cxx: Option, pub(crate) docs_rs: bool, } @@ -149,15 +146,18 @@ impl Env { const NORMAL_PREFIX: &str = "BORING_BSSL"; const FIPS_PREFIX: &str = "BORING_BSSL_FIPS"; - let var_prefix = if host == target { "HOST" } else { "TARGET" }; let target_with_underscores = target.replace('-', "_"); - let target_only_var = |name: &str| { + // Logic stolen from cmake-rs. + let target_var = |name: &str| { + let kind = if host == target { "HOST" } else { "TARGET" }; + + // TODO(rmehra): look for just `name` first, as most people just set that var(&format!("{name}_{target}")) .or_else(|| var(&format!("{name}_{target_with_underscores}"))) - .or_else(|| var(&format!("{var_prefix}_{name}"))) + .or_else(|| var(&format!("{kind}_{name}"))) + .or_else(|| var(name)) }; - let target_var = |name: &str| target_only_var(name).or_else(|| var(name)); let boringssl_var = |name: &str| { // The passed name is the non-fips version of the environment variable, @@ -186,9 +186,6 @@ impl Env { android_ndk_home: target_var("ANDROID_NDK_HOME").map(Into::into), cmake_toolchain_file: target_var("CMAKE_TOOLCHAIN_FILE").map(Into::into), cpp_runtime_lib: target_var("BORING_BSSL_RUST_CPPLIB"), - // matches the `cc` crate - cc: target_only_var("CC"), - cxx: target_only_var("CXX"), docs_rs: var("DOCS_RS").is_some(), } } diff --git a/boring-sys/build/main.rs b/boring-sys/build/main.rs index 5879ede4b..dd8c4916c 100644 --- a/boring-sys/build/main.rs +++ b/boring-sys/build/main.rs @@ -216,15 +216,6 @@ fn get_boringssl_cmake_config(config: &Config) -> cmake::Config { .define("CMAKE_ASM_COMPILER_TARGET", &config.target); } - if !config.features.fips { - if let Some(cc) = &config.env.cc { - boringssl_cmake.define("CMAKE_C_COMPILER", cc); - } - if let Some(cxx) = &config.env.cxx { - boringssl_cmake.define("CMAKE_CXX_COMPILER", cxx); - } - } - if let Some(sysroot) = &config.env.sysroot { boringssl_cmake.define("CMAKE_SYSROOT", sysroot); }