CMake build fails when building a universal binary on MacOS
Summary
This line introduces -mrtm and -mwaitpkg to the compiler flags even when building a universal binary, and this line tries to use the waitpkg functionality, resulting in build errors (see below).
Version
2022.2.0
Environment
- Hardware: Mac Mini Apple M2
- OS name and version: Sequoia 15.4.1
- Compiler version arm64-apple-darwin24.4.0
- CMake generator used: Xcode (Xcode version 16.3)
Observed Behavior
My builds fail due to the introduction of -mrtm and -mwaitpkg (xcode build invocation log):
cd /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm
write-file /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/tbb.LinkFileList
WriteAuxiliaryFile /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/82b82416624d2658e5098eb0a28c15c5-common-args.resp (in target 'tbb' from project 'zrythm')
cd /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm
write-file /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/82b82416624d2658e5098eb0a28c15c5-common-args.resp
-target arm64-apple-macos11.0 '-std=c++23' -fpascal-strings -O3 '-flto=thin' '-DCMAKE_INTDIR="Release"' -D__TBB_BUILD '-D__TBB_DYNAMIC_LOAD_ENABLED=0' '-D__TBB_SOURCE_DIRECTLY_INCLUDED=1' '-D__TBB_SKIP_DEPENDENCY_SIGNATURE_VERIFICATION=1' -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/appleclang_17.0_cxx23_64_release/include -I/Users/alex/.cache/CPM/tbb/1281/include -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/DerivedSources-normal/arm64 -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/DerivedSources/arm64 -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/DerivedSources -F/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/appleclang_17.0_cxx23_64_release -DNDEBUG '-std=c++2b' '-flto=thin' -fPIC '-fvisibility=hidden' -fvisibility-inlines-hidden -D_XOPEN_SOURCE -mrtm -mwaitpkg '-ffile-prefix-map=/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/=' '-ffile-prefix-map=../../..//='
(more build instructions...)
clang: error: unsupported option '-mrtm' for target 'arm64-apple-macos11.0'
clang: error: unsupported option '-mwaitpkg' for target 'arm64-apple-macos11.0'
Expected Behavior
No build failures in MacOS universal builds.
Steps To Reproduce
Try to build with set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64") in the project's CMakeLists.txt. For reference, here is my full CMakeLists.txt. Apparently this was intended to be fixed in https://github.com/uxlfoundation/oneTBB/issues/910, but the following if-statement passes due to x86_64 being part of CMAKE_OSX_ARCHITECTURES:
if ("${TARGET_ARCHITECTURES}" MATCHES "(x86_64|amd64|AMD64)") # OSX systems are 64-bit only
Note that I have tried commenting out that CMake part that adds the flags, but the build still fails due to this code getting enabled. Manually #undef-ing and #define-ing that macro as 0 fixes the issue, so that check probably needs modification too.
cmake:
phprus@mbp uni % cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DTBB_DISABLE_HWLOC_AUTOMATIC_SEARCH=ON ../..
-- The CXX compiler identification is AppleClang 17.0.0.17000013
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_BUILD_TYPE is not specified. Using default: RelWithDebInfo
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Looking for getcontext
-- Looking for getcontext - found
-- IPO enabled
-- The C compiler identification is AppleClang 17.0.0.17000013
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- HWLOC target HWLOC::hwloc_static doesn't exist. The tbbbind target cannot be created
-- HWLOC target HWLOC::hwloc_2 doesn't exist. The tbbbind_2_0 target cannot be created
-- HWLOC target HWLOC::hwloc_2_5 doesn't exist. The tbbbind_2_5 target cannot be created
-- Performing Test LINKER_HAS_NO_AS_NEEDED
-- Performing Test LINKER_HAS_NO_AS_NEEDED - Failed
-- Configuring done (1.1s)
-- Generating done (0.3s)
-- Build files have been written to: /Users/phprus/Devel/oneapi-src/oneTBB/build/uni
Build (-arch x86_64 -arch arm64 and -mrtm -mwaitpkg is present):
phprus@mbp uni % make
/opt/homebrew/bin/cmake -S/Users/phprus/Devel/oneapi-src/oneTBB -B/Users/phprus/Devel/oneapi-src/oneTBB/build/uni --check-build-system CMakeFiles/Makefile.cmake 0
/opt/homebrew/bin/cmake -E cmake_progress_start /Users/phprus/Devel/oneapi-src/oneTBB/build/uni/CMakeFiles /Users/phprus/Devel/oneapi-src/oneTBB/build/uni//CMakeFiles/progress.marks
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/Makefile2 all
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f src/tbb/CMakeFiles/tbb.dir/build.make src/tbb/CMakeFiles/tbb.dir/depend
cd /Users/phprus/Devel/oneapi-src/oneTBB/build/uni && /opt/homebrew/bin/cmake -E cmake_depends "Unix Makefiles" /Users/phprus/Devel/oneapi-src/oneTBB /Users/phprus/Devel/oneapi-src/oneTBB/src/tbb /Users/phprus/Devel/oneapi-src/oneTBB/build/uni /Users/phprus/Devel/oneapi-src/oneTBB/build/uni/src/tbb /Users/phprus/Devel/oneapi-src/oneTBB/build/uni/src/tbb/CMakeFiles/tbb.dir/DependInfo.cmake "--color="
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f src/tbb/CMakeFiles/tbb.dir/build.make src/tbb/CMakeFiles/tbb.dir/build
[ 1%] Building CXX object src/tbb/CMakeFiles/tbb.dir/address_waiter.cpp.o
cd /Users/phprus/Devel/oneapi-src/oneTBB/build/uni/src/tbb && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -D__TBB_BUILD -D__TBB_SKIP_DEPENDENCY_SIGNATURE_VERIFICATION=1 -I/Users/phprus/Devel/oneapi-src/oneTBB/src/tbb/../../include -O2 -g -DNDEBUG -std=c++11 -flto=thin -arch x86_64 -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Werror -Wno-parentheses -Wno-non-virtual-dtor -Wno-dangling-else -D_XOPEN_SOURCE -mrtm -mwaitpkg -ffile-prefix-map=/Users/phprus/Devel/oneapi-src/oneTBB/= -ffile-prefix-map=../..//= -MD -MT src/tbb/CMakeFiles/tbb.dir/address_waiter.cpp.o -MF CMakeFiles/tbb.dir/address_waiter.cpp.o.d -o CMakeFiles/tbb.dir/address_waiter.cpp.o -c /Users/phprus/Devel/oneapi-src/oneTBB/src/tbb/address_waiter.cpp
...
[100%] Linking CXX executable ../appleclang_17.0_cxx11_64_relwithdebinfo/test_malloc_new_handler
cd /Users/phprus/Devel/oneapi-src/oneTBB/build/uni/test && /opt/homebrew/bin/cmake -E cmake_link_script CMakeFiles/test_malloc_new_handler.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -O2 -g -DNDEBUG -arch x86_64 -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/test_malloc_new_handler.dir/tbbmalloc/test_malloc_new_handler.cpp.o -o ../appleclang_17.0_cxx11_64_relwithdebinfo/test_malloc_new_handler -Wl,-rpath,/Users/phprus/Devel/oneapi-src/oneTBB/build/uni/appleclang_17.0_cxx11_64_relwithdebinfo ../appleclang_17.0_cxx11_64_relwithdebinfo/libtbbmalloc_proxy.2.16.dylib
[100%] Built target test_malloc_new_handler
/opt/homebrew/bin/cmake -E cmake_progress_start /Users/phprus/Devel/oneapi-src/oneTBB/build/uni/CMakeFiles 0
universal binary with 2 architectures:
phprus@mbp uni % file appleclang_17.0_cxx11_64_relwithdebinfo/libtbb.12.16.dylib
appleclang_17.0_cxx11_64_relwithdebinfo/libtbb.12.16.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64:Mach-O 64-bit dynamically linked shared library arm64]
appleclang_17.0_cxx11_64_relwithdebinfo/libtbb.12.16.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
appleclang_17.0_cxx11_64_relwithdebinfo/libtbb.12.16.dylib (for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64
No build failures in MacOS universal builds.
Please provide more info about your build environment and cmake options.
I use the Xcode generator (-G Xcode) and I think it's the Xcode generator acting this way. I see that it creates separate build commands for x86_64 and arm64, and they both include -mrtm -mwaitpkg, but only the arm64 version fails, as opposed to your compiler invocation being done once for both architectures.
I use the following CMake options on MacOS:
if(APPLE)
# 10.15 -> std::filesystem::path
# 11.0 -> semaphore.try_acquire
# must be specified before project()
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "Minimum OS X deployment version")
# this might be needed for homebrew
if(NOT DEFINED CMAKE_OSX_SYSROOT)
execute_process(COMMAND xcrun --show-sdk-path OUTPUT_VARIABLE CMAKE_OSX_SYSROOT OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
message(STATUS "Using SDK: ${CMAKE_OSX_SYSROOT}")
# universal build
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++23")
set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")
endif()
Here is my configuration step:
$ cmake -B ${BUILDDIR}-${BUILD_TYPE} ${COMMON_CMAKE_OPTIONS} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -G "Xcode" "-DCMAKE_PREFIX_PATH=/opt/Qt6.9" -DZRYTHM_UNITY_BUILD=ON -DAPPLE_APP_CODESIGN_IDENTITY="Developer ID Application: Alexandros Theodotou ($APPLE_NOTARIZATION_TEAM_ID)"
-- Using SDK: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
-- Found Git: /usr/bin/git (found version "2.39.5 (Apple Git-154)")
-- The C compiler identification is AppleClang 17.0.0.17000013
-- The CXX compiler identification is AppleClang 17.0.0.17000013
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- The OBJC compiler identification is AppleClang 17.0.0.17000013
-- Detecting OBJC compiler ABI info
-- Detecting OBJC compiler ABI info - done
-- Check for working OBJC compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - skipped
-- The OBJCXX compiler identification is AppleClang 17.0.0.17000013
-- Detecting OBJCXX compiler ABI info
-- Detecting OBJCXX compiler ABI info - done
-- Check for working OBJCXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Project version: 2.0.0 (v2.0.0-DEV)
(other libs...)
-- CPM: Adding package [email protected] (56dab5ce071c4ca17d3e0dbbda9a94bd5a1cbca1 at /Users/alex/.cache/CPM/gsl-lite/1f8f)
CMake Warning at /Users/alex/.cache/CPM/tbb/1281/CMakeLists.txt:160 (message):
You are building oneTBB as a static library. This is highly discouraged
and such configuration is not supported. Consider building a dynamic
library to avoid unforeseen issues.
-- Checking for one of the modules 'hwloc'
-- Looking for getcontext
-- Looking for getcontext - found
-- TBBBind build targets are disabled due to unsupported environment
-- CPM: Adding package [email protected] (06ce6212da6710f4bb2d20a1904b018aa44069bf at /Users/alex/.cache/CPM/tbb/1281)
(...)
-- Configuring done (142.6s)
-- Generating done (1.0s)
-- Build files have been written to: /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release
Then the build invocation looks like this:
$ cmake --build ${BUILDDIR}-${BUILD_TYPE} --config ${BUILD_TYPE} --parallel
Command line invocation:
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project zrythm.xcodeproj build -target ALL_BUILD -parallelizeTargets -configuration Release -hideShellScriptEnvironment
ComputePackagePrebuildTargetDependencyGraph
CreateBuildRequest
SendProjectDescription
CreateBuildOperation
ComputeTargetDependencyGraph
note: Building targets in dependency order
note: Target dependency graph (101 targets)
(...)
WriteAuxiliaryFile /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/x86_64/82b82416624d2658e5098eb0a28c15c5-common-args.resp (in target 'tbb' from project 'zrythm')
cd /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm
write-file /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/x86_64/82b82416624d2658e5098eb0a28c15c5-common-args.resp
-target x86_64-apple-macos11.0 '-std=c++23' -fpascal-strings -O3 '-flto=thin' '-DCMAKE_INTDIR="Release"' -D__TBB_BUILD '-D__TBB_DYNAMIC_LOAD_ENABLED=0' '-D__TBB_SOURCE_DIRECTLY_INCLUDED=1' '-D__TBB_SKIP_DEPENDENCY_SIGNATURE_VERIFICATION=1' -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk -fasm-blocks -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/appleclang_17.0_cxx23_64_release/include -I/Users/alex/.cache/CPM/tbb/1281/include -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/DerivedSources-normal/x86_64 -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/DerivedSources/x86_64 -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/DerivedSources -F/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/appleclang_17.0_cxx23_64_release -DNDEBUG '-std=c++2b' '-flto=thin' -fPIC '-fvisibility=hidden' -fvisibility-inlines-hidden -D_XOPEN_SOURCE -mrtm -mwaitpkg '-ffile-prefix-map=/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/=' '-ffile-prefix-map=../../..//='
WriteAuxiliaryFile /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/tbb.LinkFileList (in target 'tbb' from project 'zrythm')
cd /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm
write-file /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/tbb.LinkFileList
WriteAuxiliaryFile /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/82b82416624d2658e5098eb0a28c15c5-common-args.resp (in target 'tbb' from project 'zrythm')
cd /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm
write-file /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/82b82416624d2658e5098eb0a28c15c5-common-args.resp
-target arm64-apple-macos11.0 '-std=c++23' -fpascal-strings -O3 '-flto=thin' '-DCMAKE_INTDIR="Release"' -D__TBB_BUILD '-D__TBB_DYNAMIC_LOAD_ENABLED=0' '-D__TBB_SOURCE_DIRECTLY_INCLUDED=1' '-D__TBB_SKIP_DEPENDENCY_SIGNATURE_VERIFICATION=1' -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/appleclang_17.0_cxx23_64_release/include -I/Users/alex/.cache/CPM/tbb/1281/include -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/DerivedSources-normal/arm64 -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/DerivedSources/arm64 -I/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/DerivedSources -F/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/appleclang_17.0_cxx23_64_release -DNDEBUG '-std=c++2b' '-flto=thin' -fPIC '-fvisibility=hidden' -fvisibility-inlines-hidden -D_XOPEN_SOURCE -mrtm -mwaitpkg '-ffile-prefix-map=/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/=' '-ffile-prefix-map=../../..//='
(...)
CompileC /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/version.o /Users/alex/.cache/CPM/tbb/1281/src/tbb/version.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'tbb' from project 'zrythm')
cd /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm
Using response file: /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/82b82416624d2658e5098eb0a28c15c5-common-args.resp
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -ivfsstatcache /var/folders/yh/z9ply7ds43z9gx75pn61x53h0000gn/C/com.apple.DeveloperTools/16.3-16E140/Xcode/SDKStatCaches.noindex/macosx15.4-24E241-88b860576fb364319593bd8fb30666b0.sdkstatcache -fmessage-length\=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit\=0 -fno-color-diagnostics -Wno-trigraphs -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -Wno-implicit-fallthrough -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -Wno-sign-conversion -Wno-infinite-recursion -Wno-move -Wno-comma -Wno-block-capture-autoreleasing -Wno-strict-prototypes -Wno-range-loop-analysis -Wno-semicolon-before-method-body -MMD -Wall -Wextra -Wno-parentheses -Wno-non-virtual-dtor -Wno-dangling-else @/Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/82b82416624d2658e5098eb0a28c15c5-common-args.resp -MMD -MT dependencies -MF /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/version.d --serialize-diagnostics /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/version.dia -c /Users/alex/.cache/CPM/tbb/1281/src/tbb/version.cpp -o /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/version.o
clang: error: unsupported option '-mrtm' for target 'arm64-apple-macos11.0'
clang: error: unsupported option '-mwaitpkg' for target 'arm64-apple-macos11.0'
(...)
** BUILD FAILED **
The following build commands failed:
CompileC /Users/alex/builds/KydKbRm4x/0/zrythm/zrythm/build_mac_arm-Release/build/tbb.build/Release/Objects-normal/arm64/version.o /Users/alex/.cache/CPM/tbb/1281/src/tbb/version.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'tbb' from project 'zrythm')
(1 failure)
As you can see the compiler invocations for x86_64 and arm64 are separated in the Xcode build. The issue seems to be that the compiler is being separately invoked for arm64 only, and it doesn't seem to support the -mrtm -mwaitpkg flags in that case.