Re: [PATCH v2 0/3] detect-compiler: clang updates
- From
Jeff King <peff@peff.net>
- Date
- Aug 7, 2021, 14:40 UTC
- Message-ID
- <YQ6bTm6DxeJLhmeA@coredump.intra.peff.net>
- In-Reply-To
- <8735rlz5r2.fsf@evledraar.gmail.com>
On Sat, Aug 07, 2021 at 04:26:33PM +0200, Ævar Arnfjörð Bjarmason wrote:
Show 40 quoted lines
> > 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. ;)
-Peff