don't assume long to be 64 bits on all 64 bit systems.

apply to gdb (and whoever else uses gnulib.)

--- gdb/gdb/gnulib/memcmp.c~	2009-01-03 07:57:57.000000000 +0200
+++ gdb/gdb/gnulib/memcmp.c	2009-02-01 12:07:56.000000000 +0200
@@ -88,10 +88,10 @@ typedef unsigned char byte;
 __inline
 # endif
 static int
-memcmp_bytes (long unsigned int a, long unsigned int b)
+memcmp_bytes (uintptr_t a, uintptr_t b)
 {
-  long int srcp1 = (long int) &a;
-  long int srcp2 = (long int) &b;
+  intptr_t srcp1 = (intptr_t) &a;
+  intptr_t srcp2 = (intptr_t) &b;
   op_t a0, b0;
 
   do
@@ -113,7 +113,7 @@ memcmp_bytes (long unsigned int a, long 
 __inline
 #endif
 static int
-memcmp_common_alignment (long int srcp1, long int srcp2, size_t len)
+memcmp_common_alignment (intptr_t srcp1, intptr_t srcp2, size_t len)
 {
   op_t a0, a1;
   op_t b0, b1;
@@ -198,7 +198,7 @@ memcmp_common_alignment (long int srcp1,
 __inline
 #endif
 static int
-memcmp_not_common_alignment (long int srcp1, long int srcp2, size_t len)
+memcmp_not_common_alignment (intptr_t srcp1, intptr_t srcp2, size_t len)
 {
   op_t a0, a1, a2, a3;
   op_t b0, b1, b2, b3;
@@ -302,8 +302,8 @@ rpl_memcmp (const void *s1, const void *
 {
   op_t a0;
   op_t b0;
-  long int srcp1 = (long int) s1;
-  long int srcp2 = (long int) s2;
+  intptr_t srcp1 = (intptr_t) s1;
+  intptr_t srcp2 = (intptr_t) s2;
   op_t res;
 
   if (len >= OP_T_THRES)
