summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Stutzbach <daniel@stutzbachenterprises.com>2010-08-31 19:51:07 (GMT)
committerDaniel Stutzbach <daniel@stutzbachenterprises.com>2010-08-31 19:51:07 (GMT)
commita606faa491af05b99dba6ebafa57662cf6b451fe (patch)
tree240a19fb31ddaadd3742ea85df0b0cb4ff81badd
parent061b14a4a1f64532bfb4d716849ae662c09da62a (diff)
downloadcpython-a606faa491af05b99dba6ebafa57662cf6b451fe.zip
cpython-a606faa491af05b99dba6ebafa57662cf6b451fe.tar.gz
cpython-a606faa491af05b99dba6ebafa57662cf6b451fe.tar.bz2
Issue 5553: Improved Py_LOCAL_INLINE to actually inline under compilers other than MSC
-rw-r--r--Include/pyport.h2
-rw-r--r--Misc/NEWS4
-rw-r--r--Modules/_sre.c3
-rwxr-xr-xconfigure50
-rw-r--r--configure.in7
-rw-r--r--pyconfig.h.in3
6 files changed, 64 insertions, 5 deletions
diff --git a/Include/pyport.h b/Include/pyport.h
index 3932dc6..799e6cf 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -266,8 +266,6 @@ typedef Py_intptr_t Py_ssize_t;
* should keep using static.
*/
-#undef USE_INLINE /* XXX - set via configure? */
-
#if defined(_MSC_VER)
#if defined(PY_LOCAL_AGGRESSIVE)
/* enable more aggressive optimization for visual studio */
diff --git a/Misc/NEWS b/Misc/NEWS
index 32d26ff..e32d61e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,10 @@ What's New in Python 3.2 Alpha 2?
Core and Builtins
-----------------
+- Issue #5553: The Py_LOCAL_INLINE macro now results in inlining on
+ most platforms. Previously, it online inlined when using Microsoft
+ Visual C.
+
- Issue #9712: Fix tokenize on identifiers that start with non-ascii names.
- Issue #9688: __basicsize__ and __itemsize__ must be accessed as Py_ssize_t.
diff --git a/Modules/_sre.c b/Modules/_sre.c
index 7ac17bf..2b764b1 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -67,9 +67,6 @@ static char copyright[] =
/* enables fast searching */
#define USE_FAST_SEARCH
-/* enables aggressive inlining (always on for Visual C) */
-#undef USE_INLINE
-
/* enables copy/deepcopy handling (work in progress) */
#undef USE_BUILTIN_COPY
diff --git a/configure b/configure
index 4dd2332..f94b125 100755
--- a/configure
+++ b/configure
@@ -638,6 +638,7 @@ SVNVERSION
ARFLAGS
AR
RANLIB
+USE_INLINE
GNULD
LINKCC
RUNSHARED
@@ -4754,6 +4755,55 @@ esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNULD" >&5
$as_echo "$GNULD" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+$as_echo_n "checking for inline... " >&6; }
+if test "${ac_cv_c_inline+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_inline=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+$as_echo "$ac_cv_c_inline" >&6; }
+
+case $ac_cv_c_inline in
+ inline | yes) ;;
+ *)
+ case $ac_cv_c_inline in
+ no) ac_val=;;
+ *) ac_val=$ac_cv_c_inline;;
+ esac
+ cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+ ;;
+esac
+
+if test "$ac_cv_c_inline" != no ; then
+ $as_echo "#define USE_INLINE 1" >>confdefs.h
+
+
+fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-shared" >&5
$as_echo_n "checking for --enable-shared... " >&6; }
# Check whether --enable-shared was given.
diff --git a/configure.in b/configure.in
index f36b28c..df8dc9a 100644
--- a/configure.in
+++ b/configure.in
@@ -660,6 +660,13 @@ case `"$ac_prog" -V 2>&1 < /dev/null` in
esac
AC_MSG_RESULT($GNULD)
+AC_C_INLINE
+if test "$ac_cv_c_inline" != no ; then
+ AC_DEFINE(USE_INLINE,1)
+ AC_SUBST(USE_INLINE)
+fi
+
+
AC_MSG_CHECKING(for --enable-shared)
AC_ARG_ENABLE(shared,
AS_HELP_STRING([--enable-shared], [disable/enable building shared python library]))
diff --git a/pyconfig.h.in b/pyconfig.h.in
index ae3f6e4..27e77b6 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -1043,6 +1043,9 @@
/* Define to 0 if you don't want to use computed gotos in ceval.c. */
#undef USE_COMPUTED_GOTOS
+/* Define if the compiler supports the inline keyword */
+#undef USE_INLINE
+
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE