about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2023-11-05 12:41:46 +0100
committerGitHub <noreply@github.com>2023-11-05 12:41:46 +0100
commitdb665980e9379b89a87ac074aa20d5658a4e0f10 (patch)
tree5e7d40bb36bab300ded9967ff580c57e2483e981
parent8acf40bd546258a70953187c950ea56d1a8f5bf2 (diff)
parent9eb70d63357606ab3e70337aee7606b4fa185f60 (diff)
downloadrust-db665980e9379b89a87ac074aa20d5658a4e0f10.tar.gz
rust-db665980e9379b89a87ac074aa20d5658a4e0f10.zip
Rollup merge of #116017 - Zalathar:darwin-stdlib, r=albertlarsan68
Don't pass `-stdlib=libc++` when building C files on macOS

When using *Command Line Tools for Xcode* version 15.0, clang will warn about `argument unused during compilation: '-stdlib=libc++'` if this flag is present when compiling C files only (i.e. no C++ files).

To avoid this warning, we can add the flag only to CXXFLAGS and not to CFLAGS.

---

[Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/clang.20warning.3A.20argument.20unused.20during.20compilation.20.28libc.2B.2B.29)
-rw-r--r--src/bootstrap/src/lib.rs7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs
index d7f49a6d11b..303c910d49f 100644
--- a/src/bootstrap/src/lib.rs
+++ b/src/bootstrap/src/lib.rs
@@ -1197,11 +1197,10 @@ impl Build {
             .filter(|s| !s.starts_with("-O") && !s.starts_with("/O"))
             .collect::<Vec<String>>();
 
-        // If we're compiling on macOS then we add a few unconditional flags
-        // indicating that we want libc++ (more filled out than libstdc++) and
-        // we want to compile for 10.7. This way we can ensure that
+        // If we're compiling C++ on macOS then we add a flag indicating that
+        // we want libc++ (more filled out than libstdc++), ensuring that
         // LLVM/etc are all properly compiled.
-        if target.contains("apple-darwin") {
+        if matches!(c, CLang::Cxx) && target.contains("apple-darwin") {
             base.push("-stdlib=libc++".into());
         }