git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 18 of 22 in “makefile: update detect-compiler for newer Xcode version”
  1. makefile: update detect-compiler for newer Xcode versionCarlo Marcelo Arenas Belón, Aug 6, 2021
  2. Bagas SanjayaAug 6, 2021
  3. Carlo ArenasAug 6, 2021
  4. Eric SunshineAug 6, 2021
  5. Atharva RaykarAug 6, 2021
  6. Junio C HamanoAug 6, 2021
  7. Jeff KingAug 6, 2021
  8. 0/3 detect-compiler: clang updatesJunio C Hamano, Aug 6, 2021
  9. 1/3 build: update detect-compiler for newer Xcode versionJunio C Hamano, Aug 6, 2021
  10. 2/3 build: clang version may not be followed by extra wordsJunio C Hamano, Aug 6, 2021
  11. 3/3 build: catch clang that identifies itself as "$VENDOR clang"Junio C Hamano, Aug 6, 2021
  12. Jeff KingAug 7, 2021
  13. Ævar Arnfjörð BjarmasonAug 7, 2021
  14. Jeff KingAug 7, 2021
  15. Ævar Arnfjörð BjarmasonAug 7, 2021
  16. Jeff KingAug 7, 2021
  17. Ævar Arnfjörð BjarmasonAug 7, 2021
  18. Jeff KingAug 7, 2021
  19. Ævar Arnfjörð BjarmasonAug 7, 2021
  20. Jeff KingAug 9, 2021
  21. Carlo ArenasAug 8, 2021
  22. Jeff KingAug 9, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.