-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't pass -stdlib=libc++
when building C files on macOS
#116017
Conversation
(rustbot has picked a reviewer for you, use r? to override) |
It's possible that this flag is no longer needed at all (since some sources claim that |
The warning started appearing after I accepted a system update of Command Line Tools for Xcode from version 14.3 to 15.0. Presumably the older compiler was accepting the argument and silently doing nothing with it, whereas the newer compiler now correctly identifies that the flag has no effect on C code. But since I no longer have the older compiler on my system, I can't test that hypothesis directly. |
@rustbot ping macos |
Hey MacOS Group! This issue or PR could use some MacOS-specific guidance. Could one |
What's a configuration where I can reproduce the issue? |
This is my profile = "codegen"
changelog-seen = 2
[build]
profiler = true
low-priority = true
[rust]
llvm-tools = true
deny-warnings = false I'm on macOS Ventura 13.5.2, using Apple's Command Line Tools for Xcode version 15.0:
If I just do When I started investigating the warnings, I switched to |
This is what I see before applying this PR:
Each warning corresponds to one of the (The number of warnings doesn't quite match the number of files because one of the listed files is a |
After applying this PR:
|
Is there any difference if you have gcc and libstdc++ in search path? |
I don't have GCC installed on my system, so I don't know what the difference would be. |
This is what happens when I ask clang to compile simple C and C++ files, with and without the flag:
|
☔ The latest upstream changes (presumably #116196) made this pull request unmergeable. Please resolve the merge conflicts. |
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.
50c8309
to
9eb70d6
Compare
Thanks for the PR! |
…iaskrgr Rollup of 4 pull requests Successful merges: - rust-lang#116017 (Don't pass `-stdlib=libc++` when building C files on macOS) - rust-lang#117524 (bootstrap/setup: create hooks directory if non-existing) - rust-lang#117588 (Remove unused LoadResult::DecodeIncrCache variant) - rust-lang#117596 (Add diagnostic items for a few of core's builtin macros) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#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)
84: Automated pull from upstream `master` r=Dajamante a=github-actions[bot] This PR pulls the following changes from the upstream repository: * rust-lang/rust#117585 * rust-lang/rust#117576 * rust-lang/rust#96979 * rust-lang/rust#117191 * rust-lang/rust#117179 * rust-lang/rust#117574 * rust-lang/rust#117537 * rust-lang/rust#117608 * rust-lang/rust#117596 * rust-lang/rust#117588 * rust-lang/rust#117524 * rust-lang/rust#116017 * rust-lang/rust#117504 * rust-lang/rust#117469 * rust-lang/rust#116218 * rust-lang/rust#117589 * rust-lang/rust#117581 * rust-lang/rust#117503 * rust-lang/rust#117590 * rust-lang/rust#117583 * rust-lang/rust#117570 * rust-lang/rust#117562 * rust-lang/rust#117534 * rust-lang/rust#116894 * rust-lang/rust#110340 * rust-lang/rust#113343 * rust-lang/rust#117579 * rust-lang/rust#117094 * rust-lang/rust#117566 * rust-lang/rust#117564 * rust-lang/rust#117554 * rust-lang/rust#117550 * rust-lang/rust#117343 * rust-lang/rust#115274 * rust-lang/rust#117540 * rust-lang/rust#116412 * rust-lang/rust#115333 * rust-lang/rust#117507 * rust-lang/rust#117538 * rust-lang/rust#117533 * rust-lang/rust#117523 * rust-lang/rust#117520 * rust-lang/rust#117505 * rust-lang/rust#117434 * rust-lang/rust#117535 * rust-lang/rust#117510 * rust-lang/rust#116439 * rust-lang/rust#117508 Co-authored-by: Ben Wiederhake <[email protected]> Co-authored-by: SabrinaJewson <[email protected]> Co-authored-by: J-ZhengLi <[email protected]> Co-authored-by: koka <[email protected]> Co-authored-by: bjorn3 <[email protected]> Co-authored-by: Joshua Liebow-Feeser <[email protected]> Co-authored-by: lengyijun <[email protected]> Co-authored-by: Zalathar <[email protected]> Co-authored-by: Oli Scherer <[email protected]> Co-authored-by: Philipp Krones <[email protected]> Co-authored-by: y21 <[email protected]> Co-authored-by: bors <[email protected]> Co-authored-by: bohan <[email protected]>
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