cpython: 48de792747dc (original) (raw)
Mercurial > cpython
changeset 80687:48de792747dc 3.3
Issue 10052: merge fix from 3.2.
Mark Dickinson dickinsm@gmail.com | |
---|---|
date | Sun, 02 Dec 2012 13:21:37 +0000 |
parents | 21ceee08a375(current diff)d82b73366227(diff) |
children | 22d891a2d533 b1db531736a3 |
files | Include/pyport.h configure configure.ac pyconfig.h.in |
diffstat | 4 files changed, 93 insertions(+), 8 deletions(-)[+] [-] Include/pyport.h 29 configure 40 configure.ac 20 pyconfig.h.in 12 |
line wrap: on
line diff
--- a/Include/pyport.h +++ b/Include/pyport.h @@ -87,9 +87,12 @@ Used in: PY_LONG_LONG
- uint32_t to be such a type unless stdint.h or inttypes.h defines uint32_t.
- However, it doesn't set HAVE_UINT32_T, so we do that here. */ -#if (defined UINT32_MAX || defined uint32_t) +#ifdef uint32_t +#define HAVE_UINT32_T 1 +#endif +
+#ifdef HAVE_UINT32_T #ifndef PY_UINT32_T -#define HAVE_UINT32_T 1 #define PY_UINT32_T uint32_t #endif #endif @@ -97,23 +100,33 @@ Used in: PY_LONG_LONG /* Macros for a 64-bit unsigned integer type; used for type 'twodigits' in the
- long integer implementation, when 30-bit digits are enabled. */ -#if (defined UINT64_MAX || defined uint64_t) +#ifdef uint64_t +#define HAVE_UINT64_T 1 +#endif +
+#ifdef HAVE_UINT64_T #ifndef PY_UINT64_T -#define HAVE_UINT64_T 1 #define PY_UINT64_T uint64_t #endif #endif /* Signed variants of the above */ -#if (defined INT32_MAX || defined int32_t) +#ifdef int32_t +#define HAVE_INT32_T 1 +#endif + +#ifdef HAVE_INT32_T #ifndef PY_INT32_T -#define HAVE_INT32_T 1 #define PY_INT32_T int32_t #endif #endif -#if (defined INT64_MAX || defined int64_t) + +#ifdef int64_t +#define HAVE_INT64_T 1 +#endif + +#ifdef HAVE_INT64_T #ifndef PY_INT64_T -#define HAVE_INT64_T 1 #define PY_INT64_T int64_t #endif #endif
--- a/configure +++ b/configure @@ -7433,6 +7433,21 @@ if test $ac_cv_type_uid_t = no; then fi + +# There are two separate checks for each of the exact-width integer types we +# need. First we check whether the type is available using the usual +# AC_CHECK_TYPE macro with the default includes (which includes <inttypes.h> +# and <stdint.h> where available). We then also use the special type checks of +# the form AC_TYPE_UINT32_T, which in the case that uint32_t is not available +# directly, #define's uint32_t to be a suitable type. + +ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default" +if test "x$ac_cv_type_uint32_t" = xyes; then : + +$as_echo "#define HAVE_UINT32_T 1" >>confdefs.h + +fi + ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" case $ac_cv_c_uint32_t in #( no|yes) ;; #( @@ -7447,6 +7462,14 @@ cat >>confdefs.h <<_ACEOF ;; esac + +ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default" +if test "x$ac_cv_type_uint64_t" = xyes; then : + +$as_echo "#define HAVE_UINT64_T 1" >>confdefs.h + +fi + ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" case $ac_cv_c_uint64_t in #( no|yes) ;; #( @@ -7461,6 +7484,14 @@ cat >>confdefs.h <<_ACEOF ;; esac + +ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default" +if test "x$ac_cv_type_int32_t" = xyes; then : + +$as_echo "#define HAVE_INT32_T 1" >>confdefs.h + +fi + ac_fn_c_find_intX_t "$LINENO" "32" "ac_cv_c_int32_t" case $ac_cv_c_int32_t in #( no|yes) ;; #( @@ -7472,6 +7503,14 @@ cat >>confdefs.h <<_ACEOF ;; esac + +ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default" +if test "x$ac_cv_type_int64_t" = xyes; then : + +$as_echo "#define HAVE_INT64_T 1" >>confdefs.h + +fi + ac_fn_c_find_intX_t "$LINENO" "64" "ac_cv_c_int64_t" case $ac_cv_c_int64_t in #( no|yes) ;; #( @@ -7483,6 +7522,7 @@ cat >>confdefs.h <<_ACEOF ;; esac + ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" if test "x$ac_cv_type_ssize_t" = xyes; then :
--- a/configure.ac +++ b/configure.ac @@ -1638,10 +1638,30 @@ AC_TYPE_PID_T AC_DEFINE_UNQUOTED([RETSIGTYPE],[void],[assume C89 semantics that RETSIGTYPE is always void]) AC_TYPE_SIZE_T AC_TYPE_UID_T + +# There are two separate checks for each of the exact-width integer types we +# need. First we check whether the type is available using the usual +# AC_CHECK_TYPE macro with the default includes (which includes <inttypes.h> +# and <stdint.h> where available). We then also use the special type checks of +# the form AC_TYPE_UINT32_T, which in the case that uint32_t is not available +# directly, #define's uint32_t to be a suitable type. + +AC_CHECK_TYPE(uint32_t,
- AC_DEFINE(HAVE_UINT32_T, 1, [Define if your compiler provides uint32_t.]),,) AC_TYPE_UINT32_T + +AC_CHECK_TYPE(uint64_t,
- AC_DEFINE(HAVE_UINT64_T, 1, [Define if your compiler provides uint64_t.]),,) AC_TYPE_UINT64_T + +AC_CHECK_TYPE(int32_t,
- AC_DEFINE(HAVE_INT32_T, 1, [Define if your compiler provides int32_t.]),,) AC_TYPE_INT32_T + +AC_CHECK_TYPE(int64_t,
- AC_DEFINE(HAVE_INT64_T, 1, [Define if your compiler provides int64_t.]),,) AC_TYPE_INT64_T + AC_CHECK_TYPE(ssize_t, AC_DEFINE(HAVE_SSIZE_T, 1, [Define if your compiler provides ssize_t]),,) AC_CHECK_TYPE(__uint128_t,
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -426,6 +426,12 @@
/* Define to 1 if you have the initgroups' function. */[](#l4.4) #undef HAVE_INITGROUPS[](#l4.5) [](#l4.6) +/* Define if your compiler provides int32_t. */[](#l4.7) +#undef HAVE_INT32_T[](#l4.8) +[](#l4.9) +/* Define if your compiler provides int64_t. */[](#l4.10) +#undef HAVE_INT64_T[](#l4.11) +[](#l4.12) /* Define to 1 if you have the <inttypes.h> header file. */[](#l4.13) #undef HAVE_INTTYPES_H[](#l4.14) [](#l4.15) @@ -1047,6 +1053,12 @@[](#l4.16) /* Define this if you have tcl and TCL_UTF_MAX==6 */[](#l4.17) #undef HAVE_UCS4_TCL[](#l4.18) [](#l4.19) +/* Define if your compiler provides uint32_t. */[](#l4.20) +#undef HAVE_UINT32_T[](#l4.21) +[](#l4.22) +/* Define if your compiler provides uint64_t. */[](#l4.23) +#undef HAVE_UINT64_T[](#l4.24) +[](#l4.25) /* Define to 1 if the system has the type
uintptr_t'. */
#undef HAVE_UINTPTR_T