Xcode 26 beta 3 - Metal toolchain installed but not working

Under Xcode 26 beta 3 I'm trying to build a project which uses Metal. I've installed the Metal Toolchain 26.0 under Settings -> Components, but when I start a build it fails during the "Prepare build" step with the following error (repeated many times):

stat(/var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.1.5276.7.Pb9SLL/Metal.xctoolchain/usr/bin/clang): No such file or directory (2) 

I've confirmed that there is in fact no 'clang' binary in that directory. I've tried using xcode-select to set the Xcode 26 Beta app as the active developer directory, and xcodebuild -version shows:

Xcode 26.0
Build version 17A5276g

Any ideas on other things to try?

Answered by TheObstacle in 857492022

I believe I've tracked this down. Some of our internal build configuration within the project was using the Xcode variable TOOLCHAIN_DIR to reference the clang compiler. Apparently TOOLCHAIN_DIR is now pointed at the Metal toolchain directory, and we need to be using DT_TOOLCHAIN_DIR (which points at the default Xcode toolchain directory) instead.

Hi, could you send us a feedback report with: a sample project, a sudo sysdiagnose, and the results from xcrun -f clang to help us diagnose this issue?

Generally, clang should be looked up in the $(xcode-select -p)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang, so it is curious why it is not.

xcrun -f clang gives a reasonable result:

/Applications/Xcode-26-beta-3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang

I've attached the requested sysdiagnose to feedback request ID FB18864396.

I just noticed there are a couple other sections of the build log containing failures, which could be relevant:

ExecuteExternalTool /var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.1.5276.7.Pb9SLL/Metal.xctoolchain/usr/bin/clang -v -E -dM -isysroot /Applications/Xcode-26-beta-3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS26.0.sdk -x c -c /dev/null

Command ExecuteExternalTool failed with a nonzero exit code
ExecuteExternalTool /var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.1.5276.7.Pb9SLL/Metal.xctoolchain/usr/bin/clang -v -E -dM -arch arm64 -isysroot /Applications/Xcode-26-beta-3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS26.0.sdk -x c++ -c /dev/null

Command ExecuteExternalTool failed with a nonzero exit code
Build description signature: 30b31cde5cf1e21881d40077c4e3bf06
Build description path: /Users/<redacted>/Library/Developer/Xcode/DerivedData/Mobile-grpqdtycanuwrdavwfqbqzxsgmxo/Build/Intermediates.noindex/XCBuildData/30b31cde5cf1e21881d40077c4e3bf06.xcbuilddata
Command CreateBuildDescription emitted errors but did not return a nonzero exit code to indicate failure

I've also tried deleting ~/Library/Developer/Xcode/DerivedData and attempting the build again, with no change.

Thanks!

I haven't yet created an isolated sample project that demonstrates the issue. This is on an active commercial product that builds cleanly under Xcode 16.3.

The two log sections that start with ExecuteExternalTool were under actions labelled Discovering version info for clang. There are other, additional actions with the same name that completed successfully, and have the correct toolchain directory in the Xcode app in their arguments.

The other log section was under the Create build description action.

We're still seeing this issue with the Xcode 26 RC build as of today (September 10). It is currently blocking us from switching to the new tools.

Accepted Answer

I believe I've tracked this down. Some of our internal build configuration within the project was using the Xcode variable TOOLCHAIN_DIR to reference the clang compiler. Apparently TOOLCHAIN_DIR is now pointed at the Metal toolchain directory, and we need to be using DT_TOOLCHAIN_DIR (which points at the default Xcode toolchain directory) instead.

Xcode 26 beta 3 - Metal toolchain installed but not working
 
 
Q