mull-project / mull

Practical mutation testing and fault injection for C and C++
https://mull.readthedocs.io
Apache License 2.0
731 stars 73 forks source link

No LLVM 15 support for MacOS #1040

Open sparist opened 7 months ago

sparist commented 7 months ago

The latest MacOS (14.2.1 (23C71)) and Xcode (15.2 (15C500b)) use LLVM 15:

Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Target: arm64-apple-darwin23.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

However, Release 0.21.1 does not contain an LLVM-15 variant for MacOS: https://github.com/mull-project/mull/releases/tag/0.21.1

The nightly builds don't include this variant either.

I tried to build Mull manually, but I use MacPorts vs. Homebrew and couldn't figure out how to produce the LLVM CMake configuration folders for CMAKE_PREFIX_PATH.

AlexDenisov commented 7 months ago

TL;DR: Mull doesn't work with clang from Xcode.

LLVM from Xcode is not really the same as the open-source version of LLVM and the version typically matches the version of Xcode, and not directly related to the official releases of LLVM. That is, Apple clang 15 != LLVM clang 15.

Since we cannot build Mull against Xcode's LLVM, we cannot guarantee binary compatibility (ABI) and we cannot support Clang/LLVM from Xcode*.

*we can probably give it a try by building a hermetic version of Mull, but then again there are no any compatibility guarantees, so I'm not sure if it's worth the effort.


Do you have a specific use-case that forces you into using Xcode'c clang?

sparist commented 6 months ago

I would prefer to just use Xcode's clang vs. having a separate clang install on my machine.

As mentioned: I stalled in trying to build it myself because I use MacPorts vs. Homebrew and couldn't figure out how to produce the LLVM CMake configuration folders for CMAKE_PREFIX_PATH.