summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Gross <colesbury@gmail.com>2023-08-21 17:50:35 (GMT)
committerGitHub <noreply@github.com>2023-08-21 17:50:35 (GMT)
commitb16ecb88e70d696a93ce993661973330baeafee1 (patch)
tree50a6771f0db3d522314a47d3de3136b9f84a2dc1
parent21c0844742cf15db8e56e8848ecbb2e25f314aed (diff)
downloadcpython-b16ecb88e70d696a93ce993661973330baeafee1.zip
cpython-b16ecb88e70d696a93ce993661973330baeafee1.tar.gz
cpython-b16ecb88e70d696a93ce993661973330baeafee1.tar.bz2
gh-108223: Add --disable-gil to configure (gh-108227)
The `--disable-gil` flags does not do anything yet other than define the Py_NOGIL macro. This is intended to support setting up additional buildbots.
-rwxr-xr-xconfigure31
-rw-r--r--configure.ac15
-rw-r--r--pyconfig.h.in3
3 files changed, 49 insertions, 0 deletions
diff --git a/configure b/configure
index aaacf8d..f78b45a 100755
--- a/configure
+++ b/configure
@@ -1103,6 +1103,7 @@ with_openssl_rpath
with_ssl_default_suites
with_builtin_hashlib_hashes
enable_test_modules
+enable_gil
'
ac_precious_vars='build_alias
host_alias
@@ -1803,6 +1804,8 @@ Optional Features:
use big digits (30 or 15 bits) for Python longs
(default is 30)]
--disable-test-modules don't build nor install test modules
+ --disable-gil enable experimental support for running without the
+ GIL (default is no)
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -27904,6 +27907,34 @@ fi
printf "%s\n" "$TEST_MODULES" >&6; }
+# Check for --disable-gil
+# --disable-gil
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --disable-gil" >&5
+printf %s "checking for --disable-gil... " >&6; }
+# Check whether --enable-gil was given.
+if test ${enable_gil+y}
+then :
+ enableval=$enable_gil; if test "x$enable_gil" = xyes
+then :
+ disable_gil=no
+else $as_nop
+ disable_gil=yes
+fi
+else $as_nop
+ disable_gil=no
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $disable_gil" >&5
+printf "%s\n" "$disable_gil" >&6; }
+
+if test "$disable_gil" = "yes"
+then
+
+printf "%s\n" "#define Py_NOGIL 1" >>confdefs.h
+
+fi
+
# stdlib not available
diff --git a/configure.ac b/configure.ac
index ddf6da0..fd18a45 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7126,6 +7126,21 @@ AC_ARG_ENABLE([test-modules],
AC_MSG_RESULT([$TEST_MODULES])
AC_SUBST([TEST_MODULES])
+# Check for --disable-gil
+# --disable-gil
+AC_MSG_CHECKING([for --disable-gil])
+AC_ARG_ENABLE([gil],
+ [AS_HELP_STRING([--disable-gil], [enable experimental support for running without the GIL (default is no)])],
+ [AS_VAR_IF([enable_gil], [yes], [disable_gil=no], [disable_gil=yes])], [disable_gil=no]
+)
+AC_MSG_RESULT([$disable_gil])
+
+if test "$disable_gil" = "yes"
+then
+ AC_DEFINE([Py_NOGIL], [1],
+ [Define if you want to disable the GIL])
+fi
+
AC_DEFUN([PY_STDLIB_MOD_SET_NA], [
m4_foreach([mod], [$@], [
AS_VAR_SET([py_cv_module_]mod, [n/a])])
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 181dc3d..418ccad 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -1609,6 +1609,9 @@
SipHash13: 3, externally defined: 0 */
#undef Py_HASH_ALGORITHM
+/* Define if you want to disable the GIL */
+#undef Py_NOGIL
+
/* Define if you want to enable internal statistics gathering. */
#undef Py_STATS