On Sat, Aug 07 2021, Jeff King wrote: > On Sat, Aug 07, 2021 at 04:26:33PM +0200, Ævar Arnfjörð Bjarmason wrote: > >> > That would probably be better. I would be curious to hear from somebody >> > with a mac if this technique gives more sensible version numbers for the >> > Apple-clang compiler. >> >> It does, on the gcc304 box on the gccfarm (recent apple M1 Mac Mini): >> >> avar@minimac ~ % uname -a >> Darwin minimac.moose.housegordon.com 20.4.0 Darwin Kernel >> Version 20.4.0: Thu Apr 22 21:46:41 PDT 2021; >> root:xnu-7195.101.2~1/RELEASE_ARM64_T8101 arm64 >> avar@minimac ~ % clang --version >> Apple clang version 12.0.5 (clang-1205.0.22.9) >> Target: arm64-apple-darwin20.4.0 >> Thread model: posix >> InstalledDir: /Library/Developer/CommandLineTools/usr/bin >> >> avar@minimac ~ % cat >f >> GNUC=__GNUC__ >> GNUC_MINOR=__GNUC_MINOR__ >> GNUC_PATCHLEVEL=__GNUC_PATCHLEVEL__ >> clang=__clang__ >> clang_major=__clang_major__ >> clang_minor=__clang_minor__ >> clang_patchlevel=__clang_patchlevel__ >> >> ^C >> >> avar@minimac ~ % clang -E - <f >> # 1 "<stdin>" >> # 1 "<built-in>" 1 >> # 1 "<built-in>" 3 >> # 384 "<built-in>" 3 >> # 1 "<command line>" 1 >> # 1 "<built-in>" 2 >> # 1 "<stdin>" 2 >> GNUC=4 >> GNUC_MINOR=2 >> GNUC_PATCHLEVEL=1 >> clang=1 >> clang_major=12 >> clang_minor=0 >> clang_patchlevel=5 > > Hmm, now I'm really confused, though. Is that really clang 12 (for which > there is no 12.0.5; 12.0.1 is the latest version, shipped in July)? Or > is it XCode 12, shipping with LLVM 11, according to the table in: > > https://en.wikipedia.org/wiki/Xcode#Xcode_11.x_-_13.x_(since_SwiftUI_framework) > > (sorry, there are actually _two_ tables with that same anchor on the > page; the one you want is the second one, under "Toolchain versions"). > > The distinction does not matter for our script (where we only care about > "clang4" and up). I guess the most relevant test would be to get XCode > 8.x and see what it says. I expect it to claim "clang 8.1.0" or similar, > but actually be clang-3. And therefore not support > -Wtautological-constant-out-of-range-compare. > > If we can't get easily get hold of such a platform, then maybe that is a > good indication that this conversation is too academic for now, and we > should wait until somebody wants to add a more recent version-specifier > to config.mak.dev. ;) I think it's clang 12.0.5, and Apple just takes upstream versions and increments them, e.g. I found this: https://gist.github.com/yamaya/2924292 So you can presumably rely on it for having clang 12 features, and we'd only ever care about the clang_major...