about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2023-03-08 21:26:52 +0100
committerGitHub <noreply@github.com>2023-03-08 21:26:52 +0100
commit2ebb5b1ddc65fb71c0dd5a0f3dd0dddfe8d4a1b3 (patch)
treecb39f5b84f13256a49e0e1c4e866869033a5f3b5 /src/bootstrap
parente6e82db307ebe6860025ee4f417a835b72953832 (diff)
parentead8b96281334c58fdec64362d9d03b82e85f788 (diff)
downloadrust-2ebb5b1ddc65fb71c0dd5a0f3dd0dddfe8d4a1b3.tar.gz
rust-2ebb5b1ddc65fb71c0dd5a0f3dd0dddfe8d4a1b3.zip
Rollup merge of #108898 - ferrocene:pa-libc-check-cfg, r=Mark-Simulacrum
Set `LIBC_CHECK_CFG=1` when building Rust code in bootstrap

Downstream forks of the Rust compiler might want to use a custom `libc` to add support for targets that are not yet available upstream. Adding a patch to replace `libc` with a custom one would cause compilation errors though, because Cargo would interpret the custom `libc` as part of the workspace, and apply the check-cfg lints on it.

Since https://github.com/rust-lang/libc/pull/3037, the `libc` build script emits check-cfg flags only when the `LIBC_CHECK_CFG` environment variable is set, so this PR allows the use of custom `libc`s.
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/builder.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
index 9b5e116aa5c..47d742ef796 100644
--- a/src/bootstrap/builder.rs
+++ b/src/bootstrap/builder.rs
@@ -1721,6 +1721,15 @@ impl<'a> Builder<'a> {
 
         cargo.env("RUSTC_VERBOSE", self.verbosity.to_string());
 
+        // Downstream forks of the Rust compiler might want to use a custom libc to add support for
+        // targets that are not yet available upstream. Adding a patch to replace libc with a
+        // custom one would cause compilation errors though, because Cargo would interpret the
+        // custom libc as part of the workspace, and apply the check-cfg lints on it.
+        //
+        // The libc build script emits check-cfg flags only when this environment variable is set,
+        // so this line allows the use of custom libcs.
+        cargo.env("LIBC_CHECK_CFG", "1");
+
         if source_type == SourceType::InTree {
             let mut lint_flags = Vec::new();
             // When extending this list, add the new lints to the RUSTFLAGS of the