Many places check for the string 'GCC' in sys.version to identify a 'posix' build. Remove anchor from regex for extracting version number from -v/--version output. The presence of a git commit hash in LLD's ld -v output was confusing it. This doesn't seem entirely save, but solves the immediate problem. set CC to clang on clang prefix, to fix LTO/PGO Remove mktime workaround now that mingw-w64 exports that symbol.
47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
--- 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.
|