Issue 5553: Improved Py_LOCAL_INLINE to actually inline under compilers other than MSC

This commit is contained in:
Daniel Stutzbach 2010-08-31 19:51:07 +00:00
parent 061b14a4a1
commit a606faa491
6 changed files with 64 additions and 5 deletions

View File

@ -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 */

View File

@ -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.

View File

@ -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

50
configure vendored
View File

@ -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.

View File

@ -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]))

View File

@ -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