summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/_osx_support.py4
-rw-r--r--Lib/distutils/spawn.py14
-rw-r--r--Lib/test/test_posix.py2
-rw-r--r--Misc/NEWS.d/next/macOS/2021-05-02-19-50-52.bpo-43568.AeLNBd.rst1
-rwxr-xr-xconfigure14
-rw-r--r--configure.ac14
6 files changed, 15 insertions, 34 deletions
diff --git a/Lib/_osx_support.py b/Lib/_osx_support.py
index 72f4819..b7145ee 100644
--- a/Lib/_osx_support.py
+++ b/Lib/_osx_support.py
@@ -525,10 +525,10 @@ def get_platform_osx(_config_vars, osname, release, machine):
try:
macrelease = tuple(int(i) for i in macrelease.split('.')[0:2])
except ValueError:
- macrelease = (10, 0)
+ macrelease = (10, 3)
else:
# assume no universal support
- macrelease = (10, 0)
+ macrelease = (10, 3)
if (macrelease >= (10, 4)) and '-arch' in cflags.strip():
# The universal build will build fat binaries, but not on
diff --git a/Lib/distutils/spawn.py b/Lib/distutils/spawn.py
index 0d1bd03..31df3f7 100644
--- a/Lib/distutils/spawn.py
+++ b/Lib/distutils/spawn.py
@@ -59,13 +59,17 @@ def spawn(cmd, search_path=1, verbose=0, dry_run=0):
if _cfg_target:
_cfg_target_split = [int(x) for x in _cfg_target.split('.')]
if _cfg_target:
- # ensure that the deployment target of build process is not less
- # than that used when the interpreter was built. This ensures
- # extension modules are built with correct compatibility values
+ # Ensure that the deployment target of the build process is not
+ # less than 10.3 if the interpreter was built for 10.3 or later.
+ # This ensures extension modules are built with correct
+ # compatibility values, specifically LDSHARED which can use
+ # '-undefined dynamic_lookup' which only works on >= 10.3.
cur_target = os.environ.get('MACOSX_DEPLOYMENT_TARGET', _cfg_target)
- if _cfg_target_split > [int(x) for x in cur_target.split('.')]:
+ cur_target_split = [int(x) for x in cur_target.split('.')]
+ if _cfg_target_split[:2] >= [10, 3] and cur_target_split[:2] < [10, 3]:
my_msg = ('$MACOSX_DEPLOYMENT_TARGET mismatch: '
- 'now "%s" but "%s" during configure'
+ 'now "%s" but "%s" during configure;'
+ 'must use 10.3 or later'
% (cur_target, _cfg_target))
raise DistutilsPlatformError(my_msg)
env = dict(os.environ,
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
index 93611f0..e466688 100644
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -1070,7 +1070,7 @@ class PosixTester(unittest.TestCase):
# Issues 16698: OS X ABIs prior to 10.6 have limits on getgroups()
if sys.platform == 'darwin':
import sysconfig
- dt = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') or '10.0'
+ dt = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') or '10.3'
if tuple(int(n) for n in dt.split('.')[0:2]) < (10, 6):
raise unittest.SkipTest("getgroups(2) is broken prior to 10.6")
diff --git a/Misc/NEWS.d/next/macOS/2021-05-02-19-50-52.bpo-43568.AeLNBd.rst b/Misc/NEWS.d/next/macOS/2021-05-02-19-50-52.bpo-43568.AeLNBd.rst
new file mode 100644
index 0000000..3bc9b0b
--- /dev/null
+++ b/Misc/NEWS.d/next/macOS/2021-05-02-19-50-52.bpo-43568.AeLNBd.rst
@@ -0,0 +1 @@
+Drop support for MACOSX_DEPLOYMENT_TARGET < 10.3
diff --git a/configure b/configure
index 86591e2..e3e6dad 100755
--- a/configure
+++ b/configure
@@ -9656,19 +9656,7 @@ then
test ${dep_target_minor} -le 2
then
# building for OS X 10.0 through 10.2
- LDSHARED='$(CC) -bundle'
- LDCXXSHARED='$(CXX) -bundle'
- if test "$enable_framework" ; then
- # Link against the framework. All externals should be defined.
- BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
- LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
- LDCXXSHARED="$LDCXXSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
- else
- # No framework, use the Python app as bundle-loader
- BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
- LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
- LDCXXSHARED="$LDCXXSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
- fi
+ as_fn_error $? "MACOSX_DEPLOYMENT_TARGET too old ($MACOSX_DEPLOYMENT_TARGET), only 10.3 or later is supported" "$LINENO" 5
else
# building for OS X 10.3 and later
LDSHARED='$(CC) -bundle -undefined dynamic_lookup'
diff --git a/configure.ac b/configure.ac
index 0ea9ecf..366ab2c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2651,19 +2651,7 @@ then
test ${dep_target_minor} -le 2
then
# building for OS X 10.0 through 10.2
- LDSHARED='$(CC) -bundle'
- LDCXXSHARED='$(CXX) -bundle'
- if test "$enable_framework" ; then
- # Link against the framework. All externals should be defined.
- BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
- LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
- LDCXXSHARED="$LDCXXSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
- else
- # No framework, use the Python app as bundle-loader
- BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
- LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
- LDCXXSHARED="$LDCXXSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
- fi
+ AC_MSG_ERROR([MACOSX_DEPLOYMENT_TARGET too old ($MACOSX_DEPLOYMENT_TARGET), only 10.3 or later is supported])
else
# building for OS X 10.3 and later
LDSHARED='$(CC) -bundle -undefined dynamic_lookup'