Skip to content

Commit

Permalink
bpo-45847: Port xxlimited and xxlimited_35 to PY_STDLIB_MOD (GH-29707)
Browse files Browse the repository at this point in the history
  • Loading branch information
Erlend Egeberg Aasland authored Nov 22, 2021
1 parent 1037ca5 commit 2dc7d3d
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 6 deletions.
5 changes: 5 additions & 0 deletions Modules/Setup.stdlib.in
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,14 @@
@MODULE__TESTBUFFER_TRUE@_testbuffer _testbuffer.c
@MODULE__TESTINTERNALCAPI_TRUE@_testinternalcapi _testinternalcapi.c


# Some testing modules MUST be built as shared libraries.
*shared*
@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c
@MODULE__TESTIMPORTMULTIPLE_TRUE@_testimportmultiple _testimportmultiple.c
@MODULE__TESTMULTIPHASE_TRUE@_testmultiphase _testmultiphase.c
@MODULE__CTYPES_TEST_TRUE@_ctypes_test _ctypes/_ctypes_test.c

# Limited API template modules; must be built as shared modules.
@MODULE_XXLIMITED_TRUE@xxlimited xxlimited.c
@MODULE_XXLIMITED_35_TRUE@xxlimited_35 xxlimited_35.c
85 changes: 85 additions & 0 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -624,6 +624,10 @@ ac_includes_default="\

ac_subst_vars='LTLIBOBJS
MODULE_BLOCK
MODULE_XXLIMITED_35_FALSE
MODULE_XXLIMITED_35_TRUE
MODULE_XXLIMITED_FALSE
MODULE_XXLIMITED_TRUE
MODULE__CTYPES_TEST_FALSE
MODULE__CTYPES_TEST_TRUE
MODULE__XXTESTFUZZ_FALSE
Expand Down Expand Up @@ -21838,6 +21842,79 @@ fi
$as_echo "$py_cv_module__ctypes_test" >&6; }



{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module xxlimited" >&5
$as_echo_n "checking for stdlib extension module xxlimited... " >&6; }
case $py_stdlib_not_available in #(
*xxlimited*) :
py_cv_module_xxlimited=n/a ;; #(
*) :
if test "$Py_TRACE_REFS" = no; then :
if true; then :
py_cv_module_xxlimited=yes
else
py_cv_module_xxlimited=missing
fi
else
py_cv_module_xxlimited=disabled
fi
;;
esac
as_fn_append MODULE_BLOCK "MODULE_XXLIMITED=$py_cv_module_xxlimited$as_nl"
if test "x$py_cv_module_xxlimited" = xyes; then :




fi
if test "$py_cv_module_xxlimited" = yes; then
MODULE_XXLIMITED_TRUE=
MODULE_XXLIMITED_FALSE='#'
else
MODULE_XXLIMITED_TRUE='#'
MODULE_XXLIMITED_FALSE=
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_xxlimited" >&5
$as_echo "$py_cv_module_xxlimited" >&6; }


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module xxlimited_35" >&5
$as_echo_n "checking for stdlib extension module xxlimited_35... " >&6; }
case $py_stdlib_not_available in #(
*xxlimited_35*) :
py_cv_module_xxlimited_35=n/a ;; #(
*) :
if test "$Py_TRACE_REFS" = no; then :
if true; then :
py_cv_module_xxlimited_35=yes
else
py_cv_module_xxlimited_35=missing
fi
else
py_cv_module_xxlimited_35=disabled
fi
;;
esac
as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_35=$py_cv_module_xxlimited_35$as_nl"
if test "x$py_cv_module_xxlimited_35" = xyes; then :




fi
if test "$py_cv_module_xxlimited_35" = yes; then
MODULE_XXLIMITED_35_TRUE=
MODULE_XXLIMITED_35_FALSE='#'
else
MODULE_XXLIMITED_35_TRUE='#'
MODULE_XXLIMITED_35_FALSE=
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_xxlimited_35" >&5
$as_echo "$py_cv_module_xxlimited_35" >&6; }


# substitute multiline block, must come after last PY_STDLIB_MOD()


Expand Down Expand Up @@ -22214,6 +22291,14 @@ if test -z "${MODULE__CTYPES_TEST_TRUE}" && test -z "${MODULE__CTYPES_TEST_FALSE
as_fn_error $? "conditional \"MODULE__CTYPES_TEST\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${MODULE_XXLIMITED_TRUE}" && test -z "${MODULE_XXLIMITED_FALSE}"; then
as_fn_error $? "conditional \"MODULE_XXLIMITED\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${MODULE_XXLIMITED_35_TRUE}" && test -z "${MODULE_XXLIMITED_35_FALSE}"; then
as_fn_error $? "conditional \"MODULE_XXLIMITED_35\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi

: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
Expand Down
5 changes: 5 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -6219,6 +6219,11 @@ PY_STDLIB_MOD([_testmultiphase], [test "$TEST_MODULES" = yes])
PY_STDLIB_MOD([_xxtestfuzz], [test "$TEST_MODULES" = yes])
PY_STDLIB_MOD([_ctypes_test], [test "$TEST_MODULES" = yes], [], [], [-lm])

dnl Limited API template modules.
dnl The limited C API is not compatible with the Py_TRACE_REFS macro.
PY_STDLIB_MOD([xxlimited], [test "$Py_TRACE_REFS" = no])
PY_STDLIB_MOD([xxlimited_35], [test "$Py_TRACE_REFS" = no])

# substitute multiline block, must come after last PY_STDLIB_MOD()
AC_SUBST([MODULE_BLOCK])

Expand Down
10 changes: 4 additions & 6 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -1477,13 +1477,11 @@ def detect_modules(self):
self.missing.append('_tkinter')
self.detect_uuid()

## # Uncomment these lines if you want to play with xxmodule.c
## self.add(Extension('xx', ['xxmodule.c']))
# Uncomment the next line if you want to play with xxmodule.c
# self.add(Extension('xx', ['xxmodule.c']))

# The limited C API is not compatible with the Py_TRACE_REFS macro.
if not sysconfig.get_config_var('Py_TRACE_REFS'):
self.add(Extension('xxlimited', ['xxlimited.c']))
self.add(Extension('xxlimited_35', ['xxlimited_35.c']))
self.addext(Extension('xxlimited', ['xxlimited.c']))
self.addext(Extension('xxlimited_35', ['xxlimited_35.c']))

def detect_tkinter_fromenv(self):
# Build _tkinter using the Tcl/Tk locations specified by
Expand Down

0 comments on commit 2dc7d3d

Please sign in to comment.