Repository navigation
devel/cmake: CMake 3.22 not able to detect properly compiler on macOS Monterey #103
Description
Activity
- changed the title
[-]cmake/devel: CMake 3.22 not able to detect properly compiler on macOS Monterey[/-][+]devel/cmake: CMake 3.22 not able to detect properly compiler on macOS Monterey[/+]on Mar 16, 2022 Certainly if there's a solution that avoids this that'd be preferable. Hard to see how removing
-archcausesld: library not found for -lSystemthough, it should just use the default.It's currently impossible to create arm64 chroots at all, so the only way to build arm64 packages is inside an x86_64 chroot.
The patch is causing the
sysrootandsyslibrootare not added.
With-archpatch:Linking C executable cmTC_32a5e /usr/local/pkg/bin/cmake -E cmake_link_script CMakeFiles/cmTC_32a5e.dir/link.txt --verbose=1 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -Wl,-search_paths_first -Wl,-headerpad_max_install_names -v -Wl,-v CMakeFiles/cmTC_32a5e.dir/CMakeCCompilerABI.c.o -o cmTC_32a5e Apple clang version 13.0.0 (clang-1300.0.29.30) Target: x86_64-apple-darwin21.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 12.0.0 12.0.0 -o cmTC_32a5e -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_32a5e.dir/CMakeCCompilerABI.c.o -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.0.0/lib/darwin/libclang_rt.osx.a @(#)PROGRAM:ld PROJECT:ld64-711 BUILD 21:57:11 Nov 17 2021 configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em Library search paths: /usr/lib /usr/local/lib Framework search paths: /Library/Frameworks/ /System/Library/Frameworks/ ld: library not found for -lSystemWithout
-archpatch (working with sysroot and syslibroot):Linking C executable cmTC_39687 /usr/local/Cellar/cmake/3.22.3/bin/cmake -E cmake_link_script CMakeFiles/cmTC_39687.dir/link.txt --verbose=1 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -v -Wl,-v CMakeFiles/cmTC_39687.dir/CMakeCCompilerABI.c.o -o cmTC_39687 Apple clang version 13.0.0 (clang-1300.0.29.30) Target: x86_64-apple-darwin21.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 12.0.0 12.1 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk -o cmTC_39687 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_39687.dir/CMakeCCompilerABI.c.o -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.0.0/lib/darwin/libclang_rt.osx.a @(#)PROGRAM:ld PROJECT:ld64-711 BUILD 21:57:11 Nov 17 2021 configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em Library search paths: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/lib Framework search paths: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/ Parsed C implicit include dir info from above output: rv=doneYeh I see this now, I'll figure something out.
Is this patch is needed to add macOS M1 (arm based) support:
https://en.wikipedia.org/wiki/Apple_M1
?I think such kind of patches should be submitted upstream in cmake:
https://gitlab.kitware.com/cmake/cmakeIt will allow to gather feedback about implementation and the new features will be available to everyone (not only in pkgsrc).
Could you please create ticket on CMake project?No, it's a workaround to resolve the problem that you cannot create an arm64 chroot on M1 systems, so you are forced to build inside an x86_64 chroot, and cmake misinterprets that as you wanting to build for x86_64 natively.
I have a fix that I'm about to commit that should resolve this.
Reacted by Bartosz Kosiorek@jperkin Can you also backport this patch to
pkgsrc-2021Q4branch:
https://github.com/NetBSD/pkgsrc/tree/pkgsrc-2021Q4/devel/cmakeHave you tried to use the
CMAKE_APPLE_SILICON_PROCESSOR
cmake variable, to choose which architecture has to be build: https://cmake.org/cmake/help/latest/variable/CMAKE_APPLE_SILICON_PROCESSOR.html- added a commit that references this issue
on Apr 18, 2022 - added 3 commits that reference this issue
on May 2, 2022 186 remaining items
Load more actions- added 8 commits that reference this issue
on May 15, 2026 - added 2 commits that reference this issue
on May 21, 2026 - added a commit that references this issue
on May 31, 2026 - added a commit that references this issue
on Jun 24, 2026 - added a commit that references this issue
on Jul 14, 2026 - added 2 commits that reference this issue
on Jul 27, 2026
devel/cmake(CMake 3.22.3) is not able to detect the compiler correctly on macOS 12.2.1 Monterey. A simple CMake project:Fails accordingly with:
After reverting patch from: b04d790
The cmake is working perfectly fine: