From f6bb2099bf0f982bd3d43fe479b8272d5bf18a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Fri, 6 Aug 2021 01:06:34 -0700 Subject: build: update detect-compiler for newer Xcode version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1da1580e4c (Makefile: detect compiler and enable more warnings in DEVELOPER=1, 2018-04-14) uses the output of the compiler banner to detect the compiler family. Apple had since changed the wording used to refer to its compiler as clang instead of LLVM as shown by: $ cc --version Apple clang version 12.0.5 (clang-1205.0.22.9) Target: x86_64-apple-darwin20.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin so update the script to match, and allow DEVELOPER=1 to work as expected again in macOS. Signed-off-by: Carlo Marcelo Arenas Belón Signed-off-by: Junio C Hamano --- detect-compiler | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/detect-compiler b/detect-compiler index 70b754481c..c85be83c64 100755 --- a/detect-compiler +++ b/detect-compiler @@ -44,7 +44,7 @@ clang) "FreeBSD clang") print_flags clang ;; -"Apple LLVM") +"Apple LLVM"|"Apple clang") print_flags clang ;; *) -- cgit v1.2.3 From 33f13ad7c5cfffdcd446a02dd8ef4b77bc70affe Mon Sep 17 00:00:00 2001 From: Jeff King Date: Fri, 6 Aug 2021 15:20:22 -0400 Subject: build: clang version may not be followed by extra words The get_family and get_version helpers of detect-compiler assume that the line to identify the version from the compilers have a token "version", followed by the version number, followed by some other string, e.g. $ CC=gcc get_version_line gcc version 10.2.1 20210110 (Debian 10.2.1-6) But that is not necessarily true, e.g. $ CC=clang get_version_line Debian clang version 11.0.1-2 Tweak the script not to require extra string after the version. Signed-off-by: Junio C Hamano --- detect-compiler | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/detect-compiler b/detect-compiler index c85be83c64..955be1c906 100755 --- a/detect-compiler +++ b/detect-compiler @@ -13,11 +13,11 @@ get_version_line() { } get_family() { - get_version_line | sed 's/^\(.*\) version [0-9][^ ]* .*/\1/' + get_version_line | sed 's/^\(.*\) version [0-9].*/\1/' } get_version() { - get_version_line | sed 's/^.* version \([0-9][^ ]*\) .*/\1/' + get_version_line | sed 's/^.* version \([0-9][^ ]*\).*/\1/' } print_flags() { -- cgit v1.2.3 From f32c5d37161f8444afe016e20be2c6ce6479d793 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 6 Aug 2021 13:35:37 -0700 Subject: build: catch clang that identifies itself as "$VENDOR clang" The case statement in detect-compiler notices 'clang', 'FreeBSD clang' and 'Apple clang', but there are other platforms that follow the '$VENDOR clang' pattern (e.g. Debian). Generalize the pattern to catch them. Signed-off-by: Junio C Hamano --- detect-compiler | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/detect-compiler b/detect-compiler index 955be1c906..11d60da5b7 100755 --- a/detect-compiler +++ b/detect-compiler @@ -38,13 +38,10 @@ case "$(get_family)" in gcc) print_flags gcc ;; -clang) +clang | *" clang") print_flags clang ;; -"FreeBSD clang") - print_flags clang - ;; -"Apple LLVM"|"Apple clang") +"Apple LLVM") print_flags clang ;; *) -- cgit v1.2.3