#
edabb5c1 |
| 16-Jun-2024 |
Gábor Horváth <xazax.hun@gmail.com> |
[clang] Clean up macOS version flags (#95374)
The -mmacos-version-min flag is preferred over -mmacosx-version-min.
This patch updates the tests and documentation to make this clear and
also adds t
[clang] Clean up macOS version flags (#95374)
The -mmacos-version-min flag is preferred over -mmacosx-version-min.
This patch updates the tests and documentation to make this clear and
also adds the missing logic to scan build to handle the new flag.
Fixes #86376.
Co-authored-by: Gabor Horvath <gaborh@apple.com>
show more ...
|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
#
52aab0e4 |
| 20-Dec-2022 |
Louis Dionne <ldionne.2@gmail.com> |
[clang] Re-apply change to avoid passing -stdlib=libc++ spuriously to CC1 on Darwin
Previously, we would be passing down -stdlib=libc++ from the Driver to CC1 whenever the default standard library o
[clang] Re-apply change to avoid passing -stdlib=libc++ spuriously to CC1 on Darwin
Previously, we would be passing down -stdlib=libc++ from the Driver to CC1 whenever the default standard library on the platform was libc++, even if -stdlib= had not been passed to the Driver. This meant that we would pass -stdlib=libc++ in nonsensical circumstances, such as when compiling C code.
This logic had been added in b534ce46bd40 to make sure that header search paths were set up properly. However, since libc++ is now the default Standard Library on Darwin, passing this explicitly is not required anymore. Indeed, if no -stdlib= is specified, CC1 will end up using libc++ if it queries which standard library to use, without having to be told.
Not passing -stdlib= at all to CC1 on Darwin should become possible once CC1 stops relying on it to set up framework search paths.
Furthermore, this commit also removes a diagnostic checking whether the deployment target is too old to support libc++. Nowadays, all supported deployment targets use libc++ and compiling with libstdc++ is not supported anymore. The Driver was the wrong place to issue this diagnostic since it doesn't know whether libc++ will actually be linked against (e.g. C vs C++), which would lead to spurious diagnostics. Given that these targets are not supported anymore, we simply drop the diagnostic instead of trying to refactor it into CC1.
This is a re-application of 6540f32db09c which had been reverted in 49dd02bd0819 because it broke a compiler-rt test. The test had broken because we were compiling C code and passing -stdlib=libc++, which Clang will now warn about.
rdar://103198514
Differential Revision: https://reviews.llvm.org/D139938
show more ...
|
#
49dd02bd |
| 20-Dec-2022 |
Hans Wennborg <hans@chromium.org> |
Revert "[clang] Don't spuriously pass -stdlib=libc++ to CC1 on Darwin"
This broke the instrprof-darwin-exports.c test on mac, see e.g. https://green.lab.llvm.org/green/job/clang-stage1-RA/32351/
>
Revert "[clang] Don't spuriously pass -stdlib=libc++ to CC1 on Darwin"
This broke the instrprof-darwin-exports.c test on mac, see e.g. https://green.lab.llvm.org/green/job/clang-stage1-RA/32351/
> Previously, we would be passing down -stdlib=libc++ from the Driver > to CC1 whenever the default standard library on the platform was libc++, > even if -stdlib= had not been passed to the Driver. This meant that we > would pass -stdlib=libc++ in nonsensical circumstances, such as when > compiling C code. > > This logic had been added in b534ce46bd40 to make sure that header > search paths were set up properly. However, since libc++ is now the > default Standard Library on Darwin, passing this explicitly is not > required anymore. Indeed, if no -stdlib= is specified, CC1 will end > up using libc++ if it queries which standard library to use, without > having to be told. > > Not passing -stdlib= at all to CC1 on Darwin should become possible > once CC1 stops relying on it to set up framework search paths. > > Furthermore, this commit also removes a diagnostic checking whether the > deployment target is too old to support libc++. Nowadays, all supported > deployment targets use libc++ and compiling with libstdc++ is not > supported anymore. The Driver was the wrong place to issue this > diagnostic since it doesn't know whether libc++ will actually be linked > against (e.g. C vs C++), which would lead to spurious diagnostics. > Given that these targets are not supported anymore, we simply drop > the diagnostic instead of trying to refactor it into CC1. > > rdar://103198514 > > Differential Revision: https://reviews.llvm.org/D139938
This reverts commit 6540f32db09cf6b367812642fbd91d44cbb6638d.
show more ...
|
#
6540f32d |
| 13-Dec-2022 |
Louis Dionne <ldionne.2@gmail.com> |
[clang] Don't spuriously pass -stdlib=libc++ to CC1 on Darwin
Previously, we would be passing down -stdlib=libc++ from the Driver to CC1 whenever the default standard library on the platform was lib
[clang] Don't spuriously pass -stdlib=libc++ to CC1 on Darwin
Previously, we would be passing down -stdlib=libc++ from the Driver to CC1 whenever the default standard library on the platform was libc++, even if -stdlib= had not been passed to the Driver. This meant that we would pass -stdlib=libc++ in nonsensical circumstances, such as when compiling C code.
This logic had been added in b534ce46bd40 to make sure that header search paths were set up properly. However, since libc++ is now the default Standard Library on Darwin, passing this explicitly is not required anymore. Indeed, if no -stdlib= is specified, CC1 will end up using libc++ if it queries which standard library to use, without having to be told.
Not passing -stdlib= at all to CC1 on Darwin should become possible once CC1 stops relying on it to set up framework search paths.
Furthermore, this commit also removes a diagnostic checking whether the deployment target is too old to support libc++. Nowadays, all supported deployment targets use libc++ and compiling with libstdc++ is not supported anymore. The Driver was the wrong place to issue this diagnostic since it doesn't know whether libc++ will actually be linked against (e.g. C vs C++), which would lead to spurious diagnostics. Given that these targets are not supported anymore, we simply drop the diagnostic instead of trying to refactor it into CC1.
rdar://103198514
Differential Revision: https://reviews.llvm.org/D139938
show more ...
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2 |
|
#
65d83ba3 |
| 05-Aug-2022 |
Louis Dionne <ldionne.2@gmail.com> |
[clang][Darwin] Re-apply "Always set the default C++ Standard Library to libc++"
Newer SDKs don't even provide libstdc++ headers, so it's effectively never valid to build for libstdc++ unless the us
[clang][Darwin] Re-apply "Always set the default C++ Standard Library to libc++"
Newer SDKs don't even provide libstdc++ headers, so it's effectively never valid to build for libstdc++ unless the user explicitly asks for it (in which case they will need to provide include paths and more).
This is a re-application of c5ccb78ade81 which had been reverted in 33171df9cc7f because it broke the Fuchsia CI bots. The issue was that the test was XPASSing because it didn't fail anymore when the CLANG_DEFAULT_CXX_LIB was set to libc++, which seems to be done for Fuchsia. Instead, the test only fails if CLANG_DEFAULT_CXX_LIB is set to libstdc++.
As a fly-by fix, also adjust the triple used by various tests to something that is supported. Those tests were shown to fail on internal bots.
Differential Revision: https://reviews.llvm.org/D131274
show more ...
|
#
33171df9 |
| 04-Aug-2022 |
Leonard Chan <leonardchan@google.com> |
Revert "[clang][Darwin] Always set the default C++ Standard Library to libc++"
This reverts commit c5ccb78ade8136134e0ca9dde64de97f913f0f8c.
We're seeing darwin-stdlib.cpp fail on our linux, mac, a
Revert "[clang][Darwin] Always set the default C++ Standard Library to libc++"
This reverts commit c5ccb78ade8136134e0ca9dde64de97f913f0f8c.
We're seeing darwin-stdlib.cpp fail on our linux, mac, and windows builders: https://luci-milo.appspot.com/ui/p/fuchsia/builders/toolchain.ci/clang-linux-x64/b8806821020552676065/overview
show more ...
|
#
c5ccb78a |
| 03-Aug-2022 |
Louis Dionne <ldionne.2@gmail.com> |
[clang][Darwin] Always set the default C++ Standard Library to libc++
Newer SDKs don't even provide libstdc++ headers, so it's effectively never valid to build for libstdc++ unless the user explicit
[clang][Darwin] Always set the default C++ Standard Library to libc++
Newer SDKs don't even provide libstdc++ headers, so it's effectively never valid to build for libstdc++ unless the user explicitly asks for it (in which case they will need to provide include paths and more).
show more ...
|
Revision tags: llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1, llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2 |
|
#
e97b5f5c |
| 21-May-2019 |
Louis Dionne <ldionne@apple.com> |
[clang][Darwin] Refactor header search path logic into the driver
Summary: This commit moves the logic for determining system, resource and C++ header search paths from CC1 to the driver. This refac
[clang][Darwin] Refactor header search path logic into the driver
Summary: This commit moves the logic for determining system, resource and C++ header search paths from CC1 to the driver. This refactor has already been made for several platforms, but Darwin had been left behind.
This refactor tries to implement the previous search path logic with perfect accuracy. In particular, the order of all include paths inside CC1 and all paths that were skipped because nonexistent are conserved after the refactor. This change was also tested against a code base of significant size and revealed no problems.
Reviewers: jfb, arphaman
Subscribers: nemanjai, javed.absar, kbarton, christof, jkorous, dexonsmith, jsji, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D61963
llvm-svn: 361278
show more ...
|
Revision tags: llvmorg-8.0.1-rc1, llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2, llvmorg-8.0.0-rc1 |
|
#
87aaa56b |
| 09-Jan-2019 |
Ilya Biryukov <ibiryukov@google.com> |
[Driver] Fix libcxx detection on Darwin with clang run as ./clang
Summary: By using '..' instead of fs::parent_path.
The intention of the code was to go from 'path/to/clang/bin' to 'path/to/clang/i
[Driver] Fix libcxx detection on Darwin with clang run as ./clang
Summary: By using '..' instead of fs::parent_path.
The intention of the code was to go from 'path/to/clang/bin' to 'path/to/clang/include'. In most cases parent_path works, however it would fail when clang is run as './clang'.
This was noticed in Chromium's bug tracker, see https://bugs.chromium.org/p/chromium/issues/detail?id=919761
Reviewers: arphaman, thakis, EricWF
Reviewed By: arphaman, thakis
Subscribers: christof, cfe-commits
Differential Revision: https://reviews.llvm.org/D56446
llvm-svn: 350714
show more ...
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3 |
|
#
27d16370 |
| 05-Dec-2018 |
Douglas Yung <douglas.yung@sony.com> |
Fix test change from r348365 to deal with Windows paths correctly.
llvm-svn: 348425
|
#
44a40046 |
| 05-Dec-2018 |
Ilya Biryukov <ibiryukov@google.com> |
Move detection of libc++ include dirs to Driver on MacOS
Summary: The intention is to make the tools replaying compilations from 'compile_commands.json' (clang-tidy, clangd, etc.) find the same stan
Move detection of libc++ include dirs to Driver on MacOS
Summary: The intention is to make the tools replaying compilations from 'compile_commands.json' (clang-tidy, clangd, etc.) find the same standard library as the original compiler specified in 'compile_commands.json'.
Previously, the library detection logic was in the frontend (InitHeaderSearch.cpp) and relied on the value of resource dir as an approximation of the compiler install dir. The new logic uses the actual compiler install dir and is performed in the driver. This is consistent with the C++ standard library detection on other platforms and allows to override the resource dir in the tools using the compile_commands.json without altering the standard library detection mechanism. The tools have to override the resource dir to make sure they use a consistent version of the builtin headers.
There is still logic in InitHeaderSearch that attemps to add the absolute includes for the the C++ standard library, so we keep passing the -stdlib=libc++ from the driver to the frontend via cc1 args to avoid breaking that. In the long run, we should move this logic to the driver too, but it could potentially break the library detection on other systems, so we don't tackle it in this patch to keep its scope manageable.
This is a second attempt to fix the issue, first one was commited in r346652 and reverted in r346675. The original fix relied on an ad-hoc propagation (bypassing the cc1 flags) of the install dir from the driver to the frontend's HeaderSearchOptions. Unsurpisingly, the propagation was incomplete, it broke the libc++ detection in clang itself, which caused LLDB tests to break.
The LLDB tests pass with new fix.
Reviewers: JDevlieghere, arphaman, EricWF
Reviewed By: arphaman
Subscribers: mclow.lists, ldionne, dexonsmith, ioeric, christof, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D54630
llvm-svn: 348365
show more ...
|
Revision tags: llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1, llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1, llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2, llvmorg-6.0.1-rc1, llvmorg-5.0.2, llvmorg-5.0.2-rc2, llvmorg-5.0.2-rc1, llvmorg-6.0.0, llvmorg-6.0.0-rc3, llvmorg-6.0.0-rc2, llvmorg-6.0.0-rc1, llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2, llvmorg-5.0.1-rc1, llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2, llvmorg-5.0.0-rc1, llvmorg-4.0.1, llvmorg-4.0.1-rc3, llvmorg-4.0.1-rc2, llvmorg-4.0.1-rc1, llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3, llvmorg-4.0.0-rc2, llvmorg-4.0.0-rc1, llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1 |
|
#
fdaaca8a |
| 29-Sep-2016 |
Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de> |
XFAIL Driver/darwin-stdlib.cpp if CLANG_DEFAULT_CXX_STDLIB is set
Until someone rewrites the stdlib logic for Darwin so that we don't need to pass down the -stdlib argument to cc1. (see https://llvm
XFAIL Driver/darwin-stdlib.cpp if CLANG_DEFAULT_CXX_STDLIB is set
Until someone rewrites the stdlib logic for Darwin so that we don't need to pass down the -stdlib argument to cc1. (see https://llvm.org/bugs/show_bug.cgi?id=30548)
Differential Revision: https://reviews.llvm.org/D24601
llvm-svn: 282701
show more ...
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2, llvmorg-3.9.0-rc1, llvmorg-3.8.1, llvmorg-3.8.1-rc1, llvmorg-3.8.0, llvmorg-3.8.0-rc3 |
|
#
3a098c1b |
| 15-Feb-2016 |
Tim Northover <tnorthover@apple.com> |
Darwin: fix stdlib handling when CLANG_DEFAULT_STDLIB is set
I'd accidentally skipped the CMake check in a premature optimisation. I'd also put the original test in completely the wrong place.
Than
Darwin: fix stdlib handling when CLANG_DEFAULT_STDLIB is set
I'd accidentally skipped the CMake check in a premature optimisation. I'd also put the original test in completely the wrong place.
Thanks Jonas Hahnfeld!
llvm-svn: 260898
show more ...
|