summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-04-26 18:56:19 +0200
committerGitHub <noreply@github.com>2019-04-26 18:56:19 +0200
commit6d13e5b35ba7165db3f38fccdd6e1e5283f96a74 (patch)
tree2ce1c2c8427548f0f018afd3b680447d3bd144a9
parent404606974051c5ec093312aa57cf1bcbc52e1d85 (diff)
downloadcpython-git-6d13e5b35ba7165db3f38fccdd6e1e5283f96a74.tar.gz
bpo-36722: Don't define ALT_SOABI for Py_TRACE_REFS build (GH-12973)
Py_TRACE_REFS ABI is incompatible with release and debug (Py_DEBUG) ABI.
-rw-r--r--Include/pyport.h14
-rwxr-xr-xconfigure3
-rw-r--r--configure.ac3
3 files changed, 14 insertions, 6 deletions
diff --git a/Include/pyport.h b/Include/pyport.h
index acbae5bafe..568ab8f757 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -797,9 +797,9 @@ extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler;
#endif /* Py_BUILD_CORE */
#ifdef __ANDROID__
-/* The Android langinfo.h header is not used. */
-#undef HAVE_LANGINFO_H
-#undef CODESET
+ /* The Android langinfo.h header is not used. */
+# undef HAVE_LANGINFO_H
+# undef CODESET
#endif
/* Maximum value of the Windows DWORD type */
@@ -810,7 +810,13 @@ extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler;
* for compatibility.
*/
#ifndef WITH_THREAD
-#define WITH_THREAD
+# define WITH_THREAD
+#endif
+
+/* Check that ALT_SOABI is consistent with Py_TRACE_REFS:
+ ./configure --with-trace-refs should must be used to define Py_TRACE_REFS */
+#if defined(ALT_SOABI) && defined(Py_TRACE_REFS)
+# error "Py_TRACE_REFS ABI is not compatible with release and debug ABI"
#endif
#endif /* Py_PYPORT_H */
diff --git a/configure b/configure
index b2775cf040..7f26fab81f 100755
--- a/configure
+++ b/configure
@@ -15128,7 +15128,8 @@ SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFO
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5
$as_echo "$SOABI" >&6; }
-if test "$Py_DEBUG" = 'true'; then
+# Release and debug (Py_DEBUG) ABI are compatible, but not Py_TRACE_REFS ABI
+if test "$Py_DEBUG" = 'true' -a "$with_trace_refs" != "yes"; 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}
diff --git a/configure.ac b/configure.ac
index 312758788e..157e9bf406 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4627,7 +4627,8 @@ AC_MSG_CHECKING(SOABI)
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
AC_MSG_RESULT($SOABI)
-if test "$Py_DEBUG" = 'true'; then
+# Release and debug (Py_DEBUG) ABI are compatible, but not Py_TRACE_REFS ABI
+if test "$Py_DEBUG" = 'true' -a "$with_trace_refs" != "yes"; 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}