attached is a patch to fix gambit compilation for 64bits archs against
last release.

  for upstream: please not that casting pointers into (int) is ugly, and
that printf formats have a %p format especially designed for pointers
(that is equivalent to the right %x format).

thanks

-- 
·O·  Pierre Habouzit
··O                                                [EMAIL PROTECTED]
OOO                                                http://www.madism.org
diff -ru gambit-0.2006.01.20/sources/tools/enumpoly/pelqhull.cc 
../gambit-0.2006.01.20/sources/tools/enumpoly/pelqhull.cc
--- gambit-0.2006.01.20/sources/tools/enumpoly/pelqhull.cc      2006-01-07 
07:36:53.000000000 +0100
+++ ../gambit-0.2006.01.20/sources/tools/enumpoly/pelqhull.cc   2006-04-10 
21:43:09.000000000 +0200
@@ -121,7 +121,7 @@
     if (!(object= malloc(outsize))) qhull_fatal(3);
 
     if (qhmem.IStracing >= 5)
-      fprintf (qhmem.ferr, "qh_memalloc long: %d bytes at %x\n", outsize, 
(int)object);
+      fprintf (qhmem.ferr, "qh_memalloc long: %d bytes at %p\n", outsize, 
object);
   }
   return (object);
 } /* memalloc */
@@ -148,7 +148,7 @@
     qhmem .totlong -= size;
     free (object);
     if (qhmem.IStracing >= 5)
-      fprintf (qhmem.ferr, "qh_memfree long: %d bytes at %x\n", size, 
(int)object);
+      fprintf (qhmem.ferr, "qh_memfree long: %d bytes at %p\n", size, object);
   }
 } /* memfree */
 
@@ -519,10 +519,10 @@
   
   if (!set || !(set->e[0]))
     return NULL;
-  if ((setsize= (int)*(last= &(set->e[set->maxsize])))) {
+  if ((setsize= (long)*(last= &(set->e[set->maxsize])))) {
     returnvalue= set->e[setsize - 2];
     set->e[setsize - 2]= NULL;
-    *last= (void *)((int)*last - 1);
+    *last= (void *)((long)*last - 1);
   }else {
     returnvalue= set->e[set->maxsize - 1];
     set->e[set->maxsize - 1]= NULL;
@@ -939,11 +939,11 @@
   else {
     SETreturnsize_(set, size);
     fprintf (fp, "%s set=%x maxsize=%d size=%d elems=",
-            string, (unsigned int)set, set->maxsize, size);
+            string, (unsigned long)set, set->maxsize, size);
     if (size > (int)set->maxsize)
       size= set->maxsize+1;
     for (k=0; k<size; k++)
-      fprintf(fp, " %x", (unsigned int)(set->e[k]));
+      fprintf(fp, " %p", set->e[k]);
     fprintf(fp, "\n");
   }
 } /* setprint */
@@ -998,8 +998,8 @@
   newset= qh_setnew (setsize);
   qh_setappend ((setT **)&qhmem.tempstack, newset);
   if (qhmem.IStracing >= 5)
-    fprintf (qhmem.ferr, "qh_settemp: temp set %x of %d elements, depth %d\n",
-       (int)newset, newset->maxsize, qh_setsize ((setT *)qhmem.tempstack));
+    fprintf (qhmem.ferr, "qh_settemp: temp set %p of %d elements, depth %d\n",
+       newset, newset->maxsize, qh_setsize ((setT *)qhmem.tempstack));
   return newset;
 } /* settemp */
 
@@ -1043,8 +1043,8 @@
   if (!stackedset) qhull_fatal(18);
 
   if (qhmem.IStracing >= 5)
-    fprintf (qhmem.ferr, "qh_settemppop: depth %d temp set %x of %d 
elements\n",
-       qh_setsize((setT *)qhmem.tempstack)+1, (int)stackedset, 
qh_setsize(stackedset));
+    fprintf (qhmem.ferr, "qh_settemppop: depth %d temp set %p of %d 
elements\n",
+       qh_setsize((setT *)qhmem.tempstack)+1, stackedset, 
qh_setsize(stackedset));
   return stackedset;
 } /* settemppop */
 
@@ -1056,8 +1056,8 @@
   
   qh_setappend ((setT**)&qhmem.tempstack, set);
   if (qhmem.IStracing >= 5)
-    fprintf (qhmem.ferr, "qh_settemppush: depth %d temp set %x of %d 
elements\n",
-    qh_setsize((setT *)qhmem.tempstack), (int)set, qh_setsize(set));
+    fprintf (qhmem.ferr, "qh_settemppush: depth %d temp set %p of %d 
elements\n",
+    qh_setsize((setT *)qhmem.tempstack), set, qh_setsize(set));
 } /* settemppush */
 
  
@@ -4088,8 +4088,8 @@
        vertex->seen= True;
        numvertices++;
        if (qh_pointid (vertex->point) == -1) {
-         fprintf (qh ferr, "qhull internal error (checkpolygon): unknown point 
%x for vertex v%d first_point %x\n",
-                  (int) vertex->point, vertex->id, (int) qh first_point);
+         fprintf (qh ferr, "qhull internal error (checkpolygon): unknown point 
%p for vertex v%d first_point %p\n",
+                  vertex->point, vertex->id, qh first_point);
          waserror= True;
        }
       }
@@ -4152,7 +4152,7 @@
   facetT *neighbor, **neighborp, *errfacet=NULL;
 
   if (qh_pointid (vertex->point) == -1) {
-    fprintf (qh ferr, "qhull internal error (checkvertex): unknown point id 
%x\n", (int) vertex->point);
+    fprintf (qh ferr, "qhull internal error (checkvertex): unknown point id 
%p\n", vertex->point);
     waserror= True;
   }
   if (vertex->id >= qh vertex_id) {
@@ -4461,33 +4461,33 @@
 
   switch (size-firstindex) {
   case 1:
-    hash= (unsigned)(*elemp) - (unsigned) skipelem;
+    hash= (unsigned long)(*elemp) - (unsigned long) skipelem;
     break;
   case 2:
-    hash= (unsigned)(*elemp) + (unsigned)elemp[1] - (unsigned) skipelem;
+    hash= (unsigned long)(*elemp) + (unsigned long)elemp[1] - (unsigned long) 
skipelem;
     break;
   case 3:
-    hash= (unsigned)(*elemp) + (unsigned)elemp[1] + (unsigned)elemp[2]
-      - (unsigned) skipelem;
+    hash= (unsigned long)(*elemp) + (unsigned long)elemp[1] + (unsigned 
long)elemp[2]
+      - (unsigned long) skipelem;
     break;
   case 4:
-    hash= (unsigned)(*elemp) + (unsigned)elemp[1] + (unsigned)elemp[2]
-      + (unsigned)elemp[3] - (unsigned) skipelem;
+    hash= (unsigned long)(*elemp) + (unsigned long)elemp[1] + (unsigned 
long)elemp[2]
+      + (unsigned long)elemp[3] - (unsigned long) skipelem;
     break;
   case 5:
-    hash= (unsigned)(*elemp) + (unsigned)elemp[1] + (unsigned)elemp[2]
-      + (unsigned)elemp[3] + (unsigned)elemp[4] - (unsigned) skipelem;
+    hash= (unsigned long)(*elemp) + (unsigned long)elemp[1] + (unsigned 
long)elemp[2]
+      + (unsigned long)elemp[3] + (unsigned long)elemp[4] - (unsigned long) 
skipelem;
     break;
   case 6:
-    hash= (unsigned)(*elemp) + (unsigned)elemp[1] + (unsigned)elemp[2]
-      + (unsigned)elemp[3] + (unsigned)elemp[4]+ (unsigned)elemp[5]
-      - (unsigned) skipelem;
+    hash= (unsigned long)(*elemp) + (unsigned long)elemp[1] + (unsigned 
long)elemp[2]
+      + (unsigned long)elemp[3] + (unsigned long)elemp[4]+ (unsigned 
long)elemp[5]
+      - (unsigned long) skipelem;
     break;
   default:
     hash= 0;
     i= 3;
     do {     /* this is about 10% in 10-d */
-      if ((elem= (unsigned)*elemp++) != (unsigned)skipelem) {
+      if ((elem= (unsigned long)*elemp++) != (unsigned long)skipelem) {
         hash ^= (elem << i) + (elem >> (32-i));
        i += 3;
        if (i >= 32)
@@ -5218,7 +5218,7 @@
   if (id < 0)
     return NULL;
   if (id < qh num_points)
-    return ((pointT *)((unsigned)qh first_point+(unsigned)((id)*qh 
normal_size)));
+    return ((pointT *)((unsigned long)qh first_point+(unsigned long)((id)*qh 
normal_size)));
   id -= qh num_points;
   if (id < qh_setsize (qh other_points))
     return (pointT *)SETelem_(qh other_points, id);
@@ -5232,8 +5232,8 @@
   int id;
   
   if ((id= qh_pointid(point)) == -1)
-    fprintf (qh ferr, "qhull internal warning (pointfacet,pointvertex): 
unknown point %ux\n", 
-      (unsigned) point);
+    fprintf (qh ferr, "qhull internal warning (pointfacet,pointvertex): 
unknown point %p\n", 
+      point);
   else 
     SETelem_(set, id)= elem;
 } /* point_add */
@@ -5279,7 +5279,7 @@
 
   if (!point)
     return -3;
-  id= ((unsigned) point - (unsigned) qh first_point)/qh normal_size;
+  id= ((unsigned long) point - (unsigned long) qh first_point)/qh normal_size;
   if ((int)id >= qh num_points) {
     if (point == qh interior_point)
       id= (unsigned int) -2;
@@ -6774,8 +6774,8 @@
   trace4((qh ferr, "qh_mergevertex_neighbors: merge vertex neighbors of f%d 
and f%d\n",
          facet1->id, facet2->id));
   if (qh tracevertex) {
-    fprintf (qh ferr, "qh_mergevertex_neighbors: of f%d and f%d at furthest 
p%d f0= %x\n",
-            facet1->id, facet2->id, qh furthest_id, (int)qh 
tracevertex->neighbors->e[0]);
+    fprintf (qh ferr, "qh_mergevertex_neighbors: of f%d and f%d at furthest 
p%d f0= %p\n",
+            facet1->id, facet2->id, qh furthest_id, qh 
tracevertex->neighbors->e[0]);
 
     /*
     qh_errprint ("TRACE", NULL, NULL, NULL, qh tracevertex);
diff -ru gambit-0.2006.01.20/sources/tools/enumpoly/pelqhull.h 
../gambit-0.2006.01.20/sources/tools/enumpoly/pelqhull.h
--- gambit-0.2006.01.20/sources/tools/enumpoly/pelqhull.h       2006-01-07 
07:36:53.000000000 +0100
+++ ../gambit-0.2006.01.20/sources/tools/enumpoly/pelqhull.h    2006-04-10 
21:36:18.000000000 +0200
@@ -942,7 +942,7 @@
 -SETempty_(set) - return true (1) if set is empty
       set may be NULL
 */
-#define SETreturnsize_(set, size) (((size)= 
(int)((set)->e[(set)->maxsize]))?(--(size)):((size)= (set)->maxsize))
+#define SETreturnsize_(set, size) (((size)= 
(long)((set)->e[(set)->maxsize]))?(--(size)):((size)= (set)->maxsize))
 #define SETempty_(set)                   (!set || (SETfirst_(set) ? 0:1))
 
 /* ======= -functions =========== 
diff -ru gambit-0.2006.01.20/sources/tools/enumpoly/pelutils.cc 
../gambit-0.2006.01.20/sources/tools/enumpoly/pelutils.cc
--- gambit-0.2006.01.20/sources/tools/enumpoly/pelutils.cc      2006-01-07 
07:36:53.000000000 +0100
+++ ../gambit-0.2006.01.20/sources/tools/enumpoly/pelutils.cc   2006-04-10 
21:43:28.000000000 +0200
@@ -3215,7 +3215,7 @@
         }
         level--;
        break;
-    case PROC: printf("%d",(int)node_get_ptr(N,LEFT));
+    case PROC: printf("%ld",(long)node_get_ptr(N,LEFT));
         break;
     default:
        printf("Unknown type %d in Node_Print\n",

Attachment: signature.asc
Description: Digital signature

Reply via email to