Hi, this patch fixes for targets with sys/types.h the issue that wrong assumptions about pointer-sizes are used. Instead it uses uintptr_t/intptr_t.
ChangeLog /include 2013-01-30 Kai Tietz <kti...@redhat.com> PR other/54620 PR target/39064 * md5.h: Include sys/types.h if HAVE_SYS_TYPES_H is defined. * sha1.h: Likewise. Tested for x86_64-unknown-linux-gnu, x86_64-w64-mingw32, and i686-w64-mingw32. Ok for apply? Regards, Kai Index: md5.h =================================================================== --- md5.h (Revision 195288) +++ md5.h (Arbeitskopie) @@ -36,7 +36,7 @@ the resulting executable. Locally running cross-compiled executables is usually not possible. */ -#ifdef _LIBC +#if defined (_LIBC) || defined (HAVE_SYS_TYPES_H) # include <sys/types.h> typedef u_int32_t md5_uint32; typedef uintptr_t md5_uintptr; Index: sha1.h =================================================================== --- sha1.h (Revision 195288) +++ sha1.h (Arbeitskopie) @@ -35,7 +35,7 @@ the resulting executable. Locally running cross-compiled executables is usually not possible. */ -#ifdef _LIBC +#if defined (_LIBC) || defined (HAVE_SYS_TYPES_H) # include <sys/types.h> typedef u_int32_t sha1_uint32; typedef uintptr_t sha1_uintptr;