--- Python-3.8.7/Python/getcompiler.c.orig	2021-01-21 00:00:29.237009400 -0800
+++ Python-3.8.7/Python/getcompiler.c	2021-01-21 00:08:07.812256200 -0800
@@ -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++]"
--- Python-3.8.7/Lib/distutils/cygwinccompiler.py~	2021-01-21 00:32:02.844891200 -0800
+++ Python-3.8.7/Lib/distutils/cygwinccompiler.py	2021-01-21 10:58:17.540398500 -0800
@@ -396,7 +396,7 @@
         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.
