Index: configure.in =================================================================== RCS file: /cvs/src/src/newlib/configure.in,v retrieving revision 1.58 diff -u -r1.58 configure.in --- configure.in 7 Jul 2014 13:15:55 -0000 1.58 +++ configure.in 18 Sep 2014 19:41:49 -0000 @@ -617,6 +617,47 @@ AC_DEFINE_UNQUOTED(_LDBL_EQ_DBL) fi +#### Determine if uintptr_t is unsigned long long +AC_CACHE_CHECK(whether uintptr_t equals unsigned long long, + newlib_cv_uintptr_eq_ulonglong, [dnl +cat > conftest.c < +extern int foo(uintptr_t); +extern int foo(unsigned long long); +EOF +if AC_TRY_COMMAND([${CC} $CFLAGS $CPPFLAGS -c -o conftest.o conftest.c + 1>&AS_MESSAGE_LOG_FD]) +then + newlib_cv_uintptr_eq_ulonglong=yes; +else + newlib_cv_uintptr_eq_ulonglong=no; +fi +rm -f conftest*]) +if test $newlib_cv_uintptr_eq_ulonglong = yes; then + AC_DEFINE_UNQUOTED(_UINTPTR_EQ_ULONGLONG) +fi + +#### Determine if uintptr_t is unsigned long +AC_CACHE_CHECK(whether uintptr_t equals unsigned long, + newlib_cv_uintptr_eq_ulong, [dnl +cat > conftest.c < +extern int foo(uintptr_t); +extern int foo(unsigned long); +EOF +if AC_TRY_COMMAND([${CC} $CFLAGS $CPPFLAGS -c -o conftest.o conftest.c + 1>&AS_MESSAGE_LOG_FD]) +then + newlib_cv_uintptr_eq_ulong=yes; +else + newlib_cv_uintptr_eq_ulong=no; +fi +rm -f conftest*]) +if test $newlib_cv_uintptr_eq_ulong = yes; then + AC_DEFINE_UNQUOTED(_UINTPTR_EQ_ULONG) +fi + + AC_SUBST(CFLAGS) AC_CONFIG_FILES([Makefile], Index: newlib.hin =================================================================== RCS file: /cvs/src/src/newlib/newlib.hin,v retrieving revision 1.29 diff -u -r1.29 newlib.hin --- newlib.hin 4 Jul 2014 17:21:42 -0000 1.29 +++ newlib.hin 18 Sep 2014 19:41:49 -0000 @@ -61,6 +61,12 @@ /* True if long double supported and it is equal to double. */ #undef _LDBL_EQ_DBL +/* Define if uintptr_t is unsigned long on this architecture */ +#undef _UINTPTR_EQ_ULONG + +/* Define if uintptr_t is unsigned long long on this architecture */ +#undef _UINTPTR_EQ_ULONGLONG + /* Define if ivo supported in streamio. */ #undef _FVWRITE_IN_STREAMIO Index: libc/include/inttypes.h =================================================================== RCS file: /cvs/src/src/newlib/libc/include/inttypes.h,v retrieving revision 1.6 diff -u -r1.6 inttypes.h --- libc/include/inttypes.h 26 Nov 2012 16:26:06 -0000 1.6 +++ libc/include/inttypes.h 18 Sep 2014 19:41:49 -0000 @@ -252,15 +252,15 @@ #define SCNxMAX __SCNMAX(x) /* ptr types */ -#if PTRDIFF_MAX <= __INTTYPES_EXP(INT_MAX) -# define __PRIPTR(x) __STRINGIFY(x) -# define __SCNPTR(x) __STRINGIFY(x) -#elif PTRDIFF_MAX <= __INTTYPES_EXP(LONG_MAX) || !defined(__have_longlong64) +#if defined(_UINTPTR_EQ_ULONGLONG) +# define __PRIPTR(x) __STRINGIFY(ll##x) +# define __SCNPTR(x) __STRINGIFY(ll##x) +#elif defined(_UINTPTR_EQ_ULONG) # define __PRIPTR(x) __STRINGIFY(l##x) # define __SCNPTR(x) __STRINGIFY(l##x) #else -# define __PRIPTR(x) __STRINGIFY(ll##x) -# define __SCNPTR(x) __STRINGIFY(ll##x) +# define __PRIPTR(x) __STRINGIFY(x) +# define __SCNPTR(x) __STRINGIFY(x) #endif #define PRIdPTR __PRIPTR(d)