Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
ce31f66a
Commit
ce31f66a
authored
Dec 02, 2012
by
Mark Dickinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue 10052: fix failed uint32_t / uint64_t / int32_t / int64_t detection on some platforms.
parent
43fb54cd
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
93 additions
and
8 deletions
+93
-8
Include/pyport.h
Include/pyport.h
+21
-8
configure
configure
+40
-0
configure.ac
configure.ac
+20
-0
pyconfig.h.in
pyconfig.h.in
+12
-0
No files found.
Include/pyport.h
View file @
ce31f66a
...
...
@@ -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)
#ifndef PY_UINT32_T
#ifdef uint32_t
#define HAVE_UINT32_T 1
#endif
#ifdef HAVE_UINT32_T
#ifndef PY_UINT32_T
#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)
#ifndef PY_UINT64_T
#ifdef uint64_t
#define HAVE_UINT64_T 1
#endif
#ifdef HAVE_UINT64_T
#ifndef PY_UINT64_T
#define PY_UINT64_T uint64_t
#endif
#endif
/* Signed variants of the above */
#if (defined INT32_MAX || defined int32_t)
#ifndef PY_INT32_T
#ifdef int32_t
#define HAVE_INT32_T 1
#endif
#ifdef HAVE_INT32_T
#ifndef PY_INT32_T
#define PY_INT32_T int32_t
#endif
#endif
#if (defined INT64_MAX || defined int64_t)
#if
ndef PY_INT64_T
#if
def int64_t
#define HAVE_INT64_T 1
#endif
#ifdef HAVE_INT64_T
#ifndef PY_INT64_T
#define PY_INT64_T int64_t
#endif
#endif
...
...
configure
View file @
ce31f66a
...
...
@@ -6755,6 +6755,21 @@ $as_echo "#define gid_t int" >>confdefs.h
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
)
;;
#(
...
...
@@ -6769,6 +6784,14 @@ _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
)
;;
#(
...
...
@@ -6783,6 +6806,14 @@ _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
)
;;
#(
...
...
@@ -6794,6 +6825,14 @@ _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
)
;;
#(
...
...
@@ -6805,6 +6844,7 @@ _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
:
...
...
configure.ac
View file @
ce31f66a
...
...
@@ -1469,10 +1469,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]),,)
...
...
pyconfig.h.in
View file @
ce31f66a
...
...
@@ -377,6 +377,12 @@
/* Define to 1 if you have the `initgroups' function. */
#undef HAVE_INITGROUPS
/* Define if your compiler provides int32_t. */
#undef HAVE_INT32_T
/* Define if your compiler provides int64_t. */
#undef HAVE_INT64_T
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
...
...
@@ -863,6 +869,12 @@
/* Define this if you have tcl and TCL_UTF_MAX==6 */
#undef HAVE_UCS4_TCL
/* Define if your compiler provides uint32_t. */
#undef HAVE_UINT32_T
/* Define if your compiler provides uint64_t. */
#undef HAVE_UINT64_T
/* Define to 1 if the system has the type `uintptr_t'. */
#undef HAVE_UINTPTR_T
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment