From 9cacbfb49d32940ff3830d131c657e291e32b755 Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Fri, 2 Oct 2020 00:03:12 +0200
Subject: [PATCH 16/25] cross compile darwin
By Isuru Fernando.
---
Lib/platform.py | 7 ++++++-
configure | 5 ++++-
configure.ac | 5 ++++-
setup.py | 6 +++---
4 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/Lib/platform.py b/Lib/platform.py
index e32f9c11cd..5f7e46fb6c 100755
--- a/Lib/platform.py
+++ b/Lib/platform.py
@@ -411,7 +411,12 @@ def win32_ver(release='', version='', csd='', ptype=''):
def _mac_ver_xml():
fn = '/System/Library/CoreServices/SystemVersion.plist'
if not os.path.exists(fn):
- return None
+ if 'SDKROOT' in os.environ:
+ fn = os.environ['SDKROOT'] + fn
+ if not os.path.exists(fn):
+ return None
+ else:
+ return None
try:
import plistlib
diff --git a/configure b/configure
index 5075304e93..9399fe6cd8 100755
--- a/configure
+++ b/configure
@@ -3393,6 +3393,9 @@ if test "$cross_compiling" = yes; then
_host_cpu=$host_cpu
esac
;;
+ *-*-darwin*)
+ _host_cpu=$host_cpu
+ ;;
*-*-cygwin*)
_host_cpu=
;;
@@ -6250,7 +6253,7 @@ esac
fi
fi
-if test "$cross_compiling" = yes; then
+if test "$cross_compiling" = yes -a "$ac_sys_system" != "Darwin"; then
case "$READELF" in
readelf|:)
as_fn_error $? "readelf for the host is required for cross builds" "$LINENO" 5
diff --git a/configure.ac b/configure.ac
index 4e026c2a0f..3b76442881 100644
--- a/configure.ac
+++ b/configure.ac
@@ -448,6 +448,9 @@ if test "$cross_compiling" = yes; then
_host_cpu=$host_cpu
esac
;;
+ *-*-darwin*)
+ _host_cpu=$host_cpu
+ ;;
*-*-cygwin*)
_host_cpu=
;;
@@ -1211,7 +1214,7 @@ then
fi
AC_CHECK_TOOLS([READELF], [readelf], [:])
-if test "$cross_compiling" = yes; then
+if test "$cross_compiling" = yes -a "$ac_sys_system" != "Darwin"; then
case "$READELF" in
readelf|:)
AC_MSG_ERROR([readelf for the host is required for cross builds])
diff --git a/setup.py b/setup.py
index 9c3dd04989..0001e40a32 100644
--- a/setup.py
+++ b/setup.py
@@ -83,7 +83,7 @@ def get_platform():
HOST_PLATFORM = get_platform()
MS_WINDOWS = (HOST_PLATFORM == 'win32')
CYGWIN = (HOST_PLATFORM == 'cygwin')
-MACOS = (HOST_PLATFORM == 'darwin')
+MACOS = (HOST_PLATFORM.startswith('darwin'))
AIX = (HOST_PLATFORM.startswith('aix'))
VXWORKS = ('vxworks' in HOST_PLATFORM)
CC = os.environ.get("CC")
@@ -1099,11 +1099,11 @@ def detect_readline_curses(self):
readline_lib = 'readline'
do_readline = self.compiler.find_library_file(self.lib_dirs,
readline_lib)
- if CROSS_COMPILING:
+ if CROSS_COMPILING and not MACOS:
ret = run_command("%s -d %s | grep '(NEEDED)' > %s"
% (sysconfig.get_config_var('READELF'),
do_readline, tmpfile))
- elif find_executable('ldd'):
+ elif find_executable('ldd') and not MACOS:
ret = run_command("ldd %s > %s" % (do_readline, tmpfile))
else:
ret = 1
--
2.32.1 (Apple Git-133)