diff -Nur gnutls13-1.4.0-2/configure.in gnutls13-1.4.0/configure.in --- gnutls13-1.4.0-2/configure.in 2006-05-11 13:20:09.000000000 +0200 +++ gnutls13-1.4.0/configure.in 2006-06-24 14:08:42.914407736 +0200 @@ -182,6 +182,21 @@ AC_CHECK_SIZEOF(unsigned long, 4) AC_CHECK_SIZEOF(unsigned int, 4) +# for strong ints in pointers without warnings +AC_CHECK_SIZEOF(long) +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(void *) + +AC_SUBST(CAST_INT_AND_POINTER) +case $ac_cv_sizeof_void_p in + $ac_cv_sizeof_int) + CAST_INT_AND_POINTER='' + ;; + $ac_cv_sizeof_long) + CAST_INT_AND_POINTER='(long)' + ;; +esac + # For some systems we know that we have ld_version scripts. # Use it then as default. have_ld_version_script=no diff -Nur gnutls13-1.4.0-2/includes/gnutls/gnutls.h.in gnutls13-1.4.0/includes/gnutls/gnutls.h.in --- gnutls13-1.4.0-2/includes/gnutls/gnutls.h.in 2006-05-05 11:07:42.000000000 +0200 +++ gnutls13-1.4.0/includes/gnutls/gnutls.h.in 2006-06-24 14:08:10.124392576 +0200 @@ -1161,6 +1161,10 @@ #define GNUTLS_E_UNIMPLEMENTED_FEATURE -1250 +/* helper macros */ +#define GNUTLS_POINTER_TO_INT(p) ((int) @CAST_INT_AND_POINTER@ (p)) +#define GNUTLS_INT_TO_POINTER(i) ((void*) @CAST_INT_AND_POINTER@ (i)) + #ifdef __cplusplus } #endif diff -Nur gnutls13-1.4.0-2/lib/gnutls_buffers.c gnutls13-1.4.0/lib/gnutls_buffers.c --- gnutls13-1.4.0-2/lib/gnutls_buffers.c 2006-03-08 11:44:59.000000000 +0100 +++ gnutls13-1.4.0/lib/gnutls_buffers.c 2006-06-24 14:08:10.131391512 +0200 @@ -265,7 +265,7 @@ { if (session->internals._gnutls_pull_func == NULL) - i = recv ((int) fd, &ptr[sizeOfPtr - left], left, flags); + i = recv (GNUTLS_POINTER_TO_INT(fd), &ptr[sizeOfPtr - left], left, flags); else i = session->internals._gnutls_pull_func (fd, &ptr[sizeOfPtr - @@ -701,7 +701,7 @@ { if (session->internals._gnutls_push_func == NULL) - i = send ((int) fd, &ptr[n - left], left, 0); + i = send (GNUTLS_POINTER_TO_INT(fd), &ptr[n - left], left, 0); else i = session->internals._gnutls_push_func (fd, &ptr[n - left], left);