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",
signature.asc
Description: Digital signature

