bpo-36722: Debug build loads libraries built in release mode (GH-12952)
In debug build, import now also looks for C extensions compiled in release mode and for C extensions compiled in the stable ABI.
This commit is contained in:
parent
62dfd7d6fe
commit
5422e3cfb7
|
@ -0,0 +1,2 @@
|
||||||
|
In debug build, import now also looks for C extensions compiled in release
|
||||||
|
mode and for C extensions compiled in the stable ABI.
|
|
@ -38,9 +38,10 @@ const char *_PyImport_DynLoadFiletab[] = {
|
||||||
".dll",
|
".dll",
|
||||||
#else /* !__CYGWIN__ */
|
#else /* !__CYGWIN__ */
|
||||||
"." SOABI ".so",
|
"." SOABI ".so",
|
||||||
#ifndef Py_DEBUG
|
#ifdef ALT_SOABI
|
||||||
|
"." ALT_SOABI ".so",
|
||||||
|
#endif
|
||||||
".abi" PYTHON_ABI_STRING ".so",
|
".abi" PYTHON_ABI_STRING ".so",
|
||||||
#endif /* ! Py_DEBUG */
|
|
||||||
".so",
|
".so",
|
||||||
#endif /* __CYGWIN__ */
|
#endif /* __CYGWIN__ */
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
@ -632,6 +632,7 @@ THREADHEADERS
|
||||||
LIBPL
|
LIBPL
|
||||||
PY_ENABLE_SHARED
|
PY_ENABLE_SHARED
|
||||||
EXT_SUFFIX
|
EXT_SUFFIX
|
||||||
|
ALT_SOABI
|
||||||
SOABI
|
SOABI
|
||||||
LIBC
|
LIBC
|
||||||
LIBM
|
LIBM
|
||||||
|
@ -15127,6 +15128,17 @@ SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFO
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5
|
||||||
$as_echo "$SOABI" >&6; }
|
$as_echo "$SOABI" >&6; }
|
||||||
|
|
||||||
|
if test "$Py_DEBUG" = 'true'; then
|
||||||
|
# Similar to SOABI but remove "d" flag from ABIFLAGS
|
||||||
|
|
||||||
|
ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
|
||||||
|
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define ALT_SOABI "${ALT_SOABI}"
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
case $ac_sys_system in
|
case $ac_sys_system in
|
||||||
Linux*|GNU*|Darwin|VxWorks)
|
Linux*|GNU*|Darwin|VxWorks)
|
||||||
|
|
|
@ -4627,6 +4627,14 @@ AC_MSG_CHECKING(SOABI)
|
||||||
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
|
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
|
||||||
AC_MSG_RESULT($SOABI)
|
AC_MSG_RESULT($SOABI)
|
||||||
|
|
||||||
|
if test "$Py_DEBUG" = 'true'; then
|
||||||
|
# Similar to SOABI but remove "d" flag from ABIFLAGS
|
||||||
|
AC_SUBST(ALT_SOABI)
|
||||||
|
ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
|
||||||
|
AC_DEFINE_UNQUOTED(ALT_SOABI, "${ALT_SOABI}",
|
||||||
|
[Alternative SOABI used in debug build to load C extensions built in release mode])
|
||||||
|
fi
|
||||||
|
|
||||||
AC_SUBST(EXT_SUFFIX)
|
AC_SUBST(EXT_SUFFIX)
|
||||||
case $ac_sys_system in
|
case $ac_sys_system in
|
||||||
Linux*|GNU*|Darwin|VxWorks)
|
Linux*|GNU*|Darwin|VxWorks)
|
||||||
|
|
|
@ -12,6 +12,10 @@
|
||||||
support for AIX C++ shared extension modules. */
|
support for AIX C++ shared extension modules. */
|
||||||
#undef AIX_GENUINE_CPLUSPLUS
|
#undef AIX_GENUINE_CPLUSPLUS
|
||||||
|
|
||||||
|
/* Alternative SOABI used in debug build to load C extensions built in release
|
||||||
|
mode */
|
||||||
|
#undef ALT_SOABI
|
||||||
|
|
||||||
/* The Android API level. */
|
/* The Android API level. */
|
||||||
#undef ANDROID_API_LEVEL
|
#undef ANDROID_API_LEVEL
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue