Issues #22980, 23969: For OS X, use PEP 3149-style file names for extension

module binaries, with a platform triple of just "darwin", resulting in
file names like:

    _ssl.cpython-35m-darwin.so

rather than just _ssl.so as previously.

Instead of attempting to encode differences in CPU architecture and OS X
deployment targets in the file name as is done on other platforms,
these continue to be managed by the use of Apple multi-architecture
("fat") files, by the system dynamic loader, and by logic in higher-levels
like sysconfig.get_platform() and pip.
This commit is contained in:
Ned Deily 2015-04-15 17:11:47 -07:00
parent 20416f7994
commit 3b8124884c
4 changed files with 12 additions and 3 deletions

View File

@ -404,6 +404,10 @@ class TestSysConfig(unittest.TestCase):
else: # 8 byte pointer size
self.assertTrue(suffix.endswith('x86_64-linux-gnu.so'), suffix)
@unittest.skipUnless(sys.platform == 'darwin', 'OS X-specific test')
def test_osx_ext_suffix(self):
suffix = sysconfig.get_config_var('EXT_SUFFIX')
self.assertTrue(suffix.endswith('-darwin.so'), suffix)
class MakefileTests(unittest.TestCase):

View File

@ -12,7 +12,8 @@ Core and Builtins
- Issue #22980: Under Linux, GNU/KFreeBSD and the Hurd, C extensions now include
the architecture triplet in the extension name, to make it easy to test builds
for different ABIs in the same working tree.
for different ABIs in the same working tree. Under OS X, the extension name
now includes PEP 3149-style information.
- Issue #22631: Added Linux-specific socket constant CAN_RAW_FD_FRAMES.
Patch courtesy of Joe Jevnik.

4
configure vendored
View File

@ -5167,6 +5167,8 @@ cat >> conftest.c <<EOF
# endif
#elif defined(__gnu_hurd__)
i386-gnu
#elif defined(__APPLE__)
darwin
#else
# error unknown platform triplet
#endif
@ -14359,7 +14361,7 @@ $as_echo "$SOABI" >&6; }
case $ac_sys_system in
Linux*|GNU*)
Linux*|GNU*|Darwin)
EXT_SUFFIX=.${SOABI}${SHLIB_SUFFIX};;
*)
EXT_SUFFIX=${SHLIB_SUFFIX};;

View File

@ -826,6 +826,8 @@ cat >> conftest.c <<EOF
# endif
#elif defined(__gnu_hurd__)
i386-gnu
#elif defined(__APPLE__)
darwin
#else
# error unknown platform triplet
#endif
@ -4310,7 +4312,7 @@ AC_MSG_RESULT($SOABI)
AC_SUBST(EXT_SUFFIX)
case $ac_sys_system in
Linux*|GNU*)
Linux*|GNU*|Darwin)
EXT_SUFFIX=.${SOABI}${SHLIB_SUFFIX};;
*)
EXT_SUFFIX=${SHLIB_SUFFIX};;