summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2015-05-28 12:45:31 -0500
committerBenjamin Peterson <benjamin@python.org>2015-05-28 12:45:31 -0500
commit2c992a0788536087bfd78da8f2c62b30a461d7e2 (patch)
tree5067a52fec2f27f77594b535cdc29672ee30d9f7 /configure
parent78ba242403841104d40c330c3900912727ca0501 (diff)
downloadcpython-git-2c992a0788536087bfd78da8f2c62b30a461d7e2.tar.gz
backport computed gotos (#4753)
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure83
1 files changed, 83 insertions, 0 deletions
diff --git a/configure b/configure
index 8cf777e19b..7ab0a46877 100755
--- a/configure
+++ b/configure
@@ -811,6 +811,7 @@ with_libm
with_libc
enable_big_digits
enable_unicode
+with_computed_gotos
with_ensurepip
'
ac_precious_vars='build_alias
@@ -1494,6 +1495,9 @@ Optional Packages:
--with-fpectl enable SIGFPE catching
--with-libm=STRING math library
--with-libc=STRING C library
+ --with(out)-computed-gotos
+ Use computed gotos in evaluation loop (enabled by
+ default on supported compilers)
--with(out)-ensurepip=[=OPTION]
"install" or "upgrade" using bundled pip, default is
"no"
@@ -14685,6 +14689,85 @@ for dir in $SRCDIRS; do
mkdir $dir
fi
done
+
+# BEGIN_COMPUTED_GOTO
+# Check for --with-computed-gotos
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-computed-gotos" >&5
+$as_echo_n "checking for --with-computed-gotos... " >&6; }
+
+# Check whether --with-computed-gotos was given.
+if test "${with_computed_gotos+set}" = set; then :
+ withval=$with_computed_gotos;
+if test "$withval" = yes
+then
+
+$as_echo "#define USE_COMPUTED_GOTOS 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+if test "$withval" = no
+then
+
+$as_echo "#define USE_COMPUTED_GOTOS 0" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5
+$as_echo "no value specified" >&6; }
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports computed gotos" >&5
+$as_echo_n "checking whether $CC supports computed gotos... " >&6; }
+if ${ac_cv_computed_gotos+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ if test "${with_computed_gotos+set}" = set; then
+ ac_cv_computed_gotos="$with_computed_gotos -- configured --with(out)-computed-gotos"
+ else
+ ac_cv_computed_gotos=no
+ fi
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int main(int argc, char **argv)
+{
+ static void *targets[1] = { &&LABEL1 };
+ goto LABEL2;
+LABEL1:
+ return 0;
+LABEL2:
+ goto *targets[0];
+ return 1;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_computed_gotos=yes
+else
+ ac_cv_computed_gotos=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_computed_gotos" >&5
+$as_echo "$ac_cv_computed_gotos" >&6; }
+case "$ac_cv_computed_gotos" in yes*)
+
+$as_echo "#define HAVE_COMPUTED_GOTOS 1" >>confdefs.h
+
+esac
+# END_COMPUTED_GOTO
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
$as_echo "done" >&6; }