CMake merge requestshttps://gitlab.kitware.com/cmake/cmake/-/merge_requests2022-03-04T12:36:09-05:00https://gitlab.kitware.com/cmake/cmake/-/merge_requests/6966Help: Add MSVC_TOOLSET_VERSION value for v143 toolset2022-03-04T12:36:09-05:00SunBlackHelp: Add MSVC_TOOLSET_VERSION value for v143 toolsetThis change was missed in !6497.
Backport: release
Topic-rename: doc-MSVC_TOOLSET_VERSION-v143This change was missed in !6497.
Backport: release
Topic-rename: doc-MSVC_TOOLSET_VERSION-v1433.21.6Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6964IntelLLVM: Add dependencies on system header files on Windows2022-03-04T12:36:45-05:00William R. DieterIntelLLVM: Add dependencies on system header files on WindowsIn !5594 the IntelLLVM depfile generation flags were taken from `Platform/Windows-Intel-C`. Those flags were added by !2893, which forgot to account for commit 6d74e7870b8804a5af0bc395a9fbb45c1b3d26a4 (Ninja: Add dependencies on system-...In !5594 the IntelLLVM depfile generation flags were taken from `Platform/Windows-Intel-C`. Those flags were added by !2893, which forgot to account for commit 6d74e7870b8804a5af0bc395a9fbb45c1b3d26a4 (Ninja: Add dependencies on system-provided header files).
The `-QMD` option generates Makefile dependencies. The `-QMMD` option
generates Makefile dependencies, but excludes system header files.
Part of the BuildDepends test includes a header, cmake_pch.hxx, that
includes a second header, zot_pch.hxx. The test builds a pch file for
cmake_pch.hxx, touches zot_pch.hxx, then verifes that cmake_pch.hxx.pch
is regenerated based on the dependencies.
The cmake_pch.hxx contains `#pragma system_header` before it includes
zot_pch.hxx. `#pragma system_header` indicates that the portion of the
file following the pragma is to be treated as a system header.
When `-QMMD` is used to generate dependencies, the `#include` of
zot_pch.hxx is ignored because it `-QMMD` says to ignore system headers.
Using `-QMD` instead uses all headers when generating dependencies
and causes this test to pass. The Clang configuration in
Platform/Windows-Clang.cmake also uses the `-MD` option for generating
pre-compiled headers, instead of `-MMD`.
Backport: release
Topic-rename: IntelLLVM-depfile-flags3.21.6Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/7025FindThreads: Revert "Honor THREADS_PREFER_PTHREAD_FLAG when ... in libc"2022-03-04T12:37:45-05:00Brad KingFindThreads: Revert "Honor THREADS_PREFER_PTHREAD_FLAG when ... in libc"Revert !6693/!6906. The check for
the `-pthread` flag can pass on compilers like XL, that interprets it as
`-p -t hread` and returns zero. Prior to that commit, we did not use
the check in the `CMAKE_HAVE_LIBC_PTHREAD` code path. Now ...Revert !6693/!6906. The check for
the `-pthread` flag can pass on compilers like XL, that interprets it as
`-p -t hread` and returns zero. Prior to that commit, we did not use
the check in the `CMAKE_HAVE_LIBC_PTHREAD` code path. Now we do, it
succeeds, and we incorrectly add the `-pthread` flag for XL.
This change was backported to the 3.21 and 3.22 release series long
after they initially came out. Since there may be more cases where we
now add `-pthread` incorrectly, it is simplest to revert the change in
all release series pending further investigation.
Fixes: #23270
Backport: release3.21.6Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/7039BinUtils: Avoid llvm-ar on Apple platforms2023-11-28T17:21:54-05:00Brad KingBinUtils: Avoid llvm-ar on Apple platformsSince !6164 we correctly prefer the
more-specific name `llvm-ar` over `ar` when using Clang. However, on
Apple platforms, `llvm-ar` does not generate a symbol table that the
Apple linker accepts. Fall back to `ar` on Apple platforms.
...Since !6164 we correctly prefer the
more-specific name `llvm-ar` over `ar` when using Clang. However, on
Apple platforms, `llvm-ar` does not generate a symbol table that the
Apple linker accepts. Fall back to `ar` on Apple platforms.
Fixes: #23269
Backport: release3.21.6Brad KingBrad King