summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2015-03-08 19:43:10 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2015-03-08 19:43:10 (GMT)
commit5bd7bf5bab3a961a3952e36b053eb93818553e13 (patch)
treec6df9941bf61e2de5917b788bf59436a8495b49b
parentaf098a221aba15dfd121250e590c8ff72c81665b (diff)
downloadcpython-5bd7bf5bab3a961a3952e36b053eb93818553e13.zip
cpython-5bd7bf5bab3a961a3952e36b053eb93818553e13.tar.gz
cpython-5bd7bf5bab3a961a3952e36b053eb93818553e13.tar.bz2
Issue #22980: Under Linux, C extensions now include bitness in the file name,
to make it easy to test 32-bit and 64-bit builds in the same working tree.
-rw-r--r--Lib/test/test_sysconfig.py6
-rw-r--r--Misc/NEWS4
-rwxr-xr-xconfigure10
-rw-r--r--configure.ac10
4 files changed, 28 insertions, 2 deletions
diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py
index 804c446..3711784 100644
--- a/Lib/test/test_sysconfig.py
+++ b/Lib/test/test_sysconfig.py
@@ -389,6 +389,12 @@ class TestSysConfig(unittest.TestCase):
self.assertIsNotNone(vars['SO'])
self.assertEqual(vars['SO'], vars['EXT_SUFFIX'])
+ @unittest.skipUnless(sys.platform == 'linux', 'Linux-specific test')
+ def test_bitness_in_ext_suffix(self):
+ suffix = sysconfig.get_config_var('EXT_SUFFIX')
+ bitness = '-32b' if sys.maxsize < 2**32 else '-64b'
+ self.assertTrue(suffix.endswith(bitness + '.so'), suffix)
+
class MakefileTests(unittest.TestCase):
diff --git a/Misc/NEWS b/Misc/NEWS
index 343cf8f..aa8237d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,10 @@ Release date: 2015-03-08
Core and Builtins
-----------------
+- Issue #22980: Under Linux, C extensions now include bitness in the file
+ name, to make it easy to test 32-bit and 64-bit builds in the same
+ working tree.
+
- Issue #23571: PyObject_Call() and PyCFunction_Call() now raise a SystemError
if a function returns a result and raises an exception. The SystemError is
chained to the previous exception.
diff --git a/configure b/configure
index 799c6c4..d91a9c7 100755
--- a/configure
+++ b/configure
@@ -14200,7 +14200,15 @@ $as_echo_n "checking ABIFLAGS... " >&6; }
$as_echo "$ABIFLAGS" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5
$as_echo_n "checking SOABI... " >&6; }
-SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}
+
+case $ac_sys_system in
+ Linux*|GNU*)
+ BITNESS_SUFFIX=-$(($ac_cv_sizeof_void_p * 8))b;;
+ *)
+ BITNESS_SUFFIX=;;
+esac
+SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${BITNESS_SUFFIX}
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5
$as_echo "$SOABI" >&6; }
diff --git a/configure.ac b/configure.ac
index 263ae15..c9bb90b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4175,7 +4175,15 @@ AC_SUBST(SOABI)
AC_MSG_CHECKING(ABIFLAGS)
AC_MSG_RESULT($ABIFLAGS)
AC_MSG_CHECKING(SOABI)
-SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}
+
+case $ac_sys_system in
+ Linux*|GNU*)
+ BITNESS_SUFFIX=-$(($ac_cv_sizeof_void_p * 8))b;;
+ *)
+ BITNESS_SUFFIX=;;
+esac
+SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${BITNESS_SUFFIX}
+
AC_MSG_RESULT($SOABI)
AC_SUBST(EXT_SUFFIX)