blob: 60f11671c64008dfd6fae6f9b32bfe9f922d2fc8 [file] [log] [blame]
From 025cefb3dca7317d7476fa2a40938206e65eaa80 Mon Sep 17 00:00:00 2001
From: jeremyd2019 <4524874+jeremyd2019@users.noreply.github.com>
Date: Thu, 17 Jun 2021 18:52:36 +0530
Subject: [PATCH 093/N] clang arm64
---
Lib/distutils/cygwinccompiler.py | 2 +-
Python/getcompiler.c | 11 ++++++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py
index fcba43a..0c063a8 100644
--- a/Lib/distutils/cygwinccompiler.py
+++ b/Lib/distutils/cygwinccompiler.py
@@ -394,7 +394,7 @@ def check_config_h():
return (CONFIG_H_UNCERTAIN,
"couldn't read '%s': %s" % (fn, exc.strerror))
-RE_VERSION = re.compile(br'[\D\s]*(\d+\.\d+(\.\d+)*)[\D\s]*$')
+RE_VERSION = re.compile(br'[\D\s]*(\d+\.\d+(\.\d+)*)[\D\s]*')
def _find_exe_version(cmd):
"""Find the version of an executable by running `cmd` in the shell.
diff --git a/Python/getcompiler.c b/Python/getcompiler.c
index adccaa7..b529e29 100644
--- a/Python/getcompiler.c
+++ b/Python/getcompiler.c
@@ -7,7 +7,7 @@
// Note the __clang__ conditional has to come before the __GNUC__ one because
// clang pretends to be GCC.
-#if defined(__clang__)
+#if defined(__clang__) && !defined(_WIN32)
#define COMPILER "\n[Clang " __clang_version__ "]"
#elif defined(__GNUC__)
/* To not break compatibility with things that determine
@@ -18,6 +18,8 @@
#define COMP_SEP " "
#if defined(__x86_64__)
#define ARCH_SUFFIX " 64 bit (AMD64)"
+#elif defined(__aarch64__)
+#define ARCH_SUFFIX " 64 bit (ARM64)"
#else
#define ARCH_SUFFIX " 32 bit"
#endif
@@ -25,7 +27,14 @@
#define COMP_SEP "\n"
#define ARCH_SUFFIX ""
#endif
+#if defined(__clang__)
+#define str(x) #x
+#define xstr(x) str(x)
+#define COMPILER COMP_SEP "[GCC Clang " xstr(__clang_major__) "." \
+ xstr(__clang_minor__) "." xstr(__clang_patchlevel__) ARCH_SUFFIX "]"
+#else
#define COMPILER COMP_SEP "[GCC " __VERSION__ ARCH_SUFFIX "]"
+#endif
// Generic fallbacks.
#elif defined(__cplusplus)
#define COMPILER "[C++]"
--
2.32.0