--- Begin Message ---
Package: gambit
Version: 0.97.0.7-1
Severity: normal
Tags: patch
When building 'gambit' on amd64/unstable with gcc-4.0,
I get the following error:
if x86_64-linux-g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\"
-DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\"
-DPACKAGE=\"gambit\" -DVERSION=\"0.97.0.7\" -DSTDC_HEADERS=1
-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
-DHAVE_UNISTD_H=1 -DRETSIGTYPE=void -I. -I. -I../../sources
-DNEWSTYLE_TEMPLATES -g -O2 -I/usr/lib/wx/include/gtk-2.4 -DGTK_NO_CHECK_CASTS
-D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -MT gnulib.o -MD -MP -MF
".deps/gnulib.Tpo" -c -o gnulib.o gnulib.cc; \
then mv -f ".deps/gnulib.Tpo" ".deps/gnulib.Po"; else rm -f ".deps/gnulib.Tpo";
exit 1; fi
gnulib.cc: In member function 'void* Obstack::finish()':
gnulib.cc:89: error: cast from 'char*' to 'int' loses precision
gnulib.cc: In member function 'void AllocRing::clear()':
gnulib.cc:151: warning: deleting 'void*' is undefined
gnulib.cc: In member function 'void AllocRing::free(void*)':
gnulib.cc:165: warning: deleting 'void*' is undefined
gnulib.cc: In member function 'void* AllocRing::alloc(int)':
gnulib.cc:199: warning: deleting 'void*' is undefined
make[3]: *** [gnulib.o] Error 1
make[3]: Leaving directory `/gambit-0.97.0.7/sources/math'
With the attached patch 'gambit' can be compiled
on amd64 using gcc-4.0.
Regards
Andreas Jochens
diff -urN ../tmp-orig/gambit-0.97.0.7/sources/game/nfplayer.h
./sources/game/nfplayer.h
--- ../tmp-orig/gambit-0.97.0.7/sources/game/nfplayer.h 2002-08-26
07:50:10.000000000 +0200
+++ ./sources/game/nfplayer.h 2005-06-21 09:01:09.000000000 +0200
@@ -28,6 +28,7 @@
#define NFPLAYER_H
class Strategy;
+class Nfg;
class NFPlayer {
friend class Nfg;
diff -urN ../tmp-orig/gambit-0.97.0.7/sources/game/sfstrat.h
./sources/game/sfstrat.h
--- ../tmp-orig/gambit-0.97.0.7/sources/game/sfstrat.h 2004-05-25
20:53:58.000000000 +0200
+++ ./sources/game/sfstrat.h 2005-06-21 09:02:20.000000000 +0200
@@ -33,10 +33,10 @@
/*
class EFPlayer;
class Efg;
-class Sfg;
class Action;
class Infoset;
*/
+class Sfg;
struct Sequence {
friend class Sfg;
diff -urN ../tmp-orig/gambit-0.97.0.7/sources/gcl/gsmhash.cc
./sources/gcl/gsmhash.cc
--- ../tmp-orig/gambit-0.97.0.7/sources/gcl/gsmhash.cc 2004-10-05
17:13:33.000000000 +0200
+++ ./sources/gcl/gsmhash.cc 2005-06-21 09:12:38.000000000 +0200
@@ -84,7 +84,7 @@
template <class T> int RefCountHashTable<T>::Hash( const T& ptr ) const
-{ return ( (unsigned int) ptr / 4 ) % 10; }
+{ return ( (unsigned long) ptr / 4 ) % 10; }
template <class T> void RefCountHashTable<T>::DeleteAction( int /*value*/ )
{ }
diff -urN ../tmp-orig/gambit-0.97.0.7/sources/math/gnulib.cc
./sources/math/gnulib.cc
--- ../tmp-orig/gambit-0.97.0.7/sources/math/gnulib.cc 2003-09-01
02:28:28.000000000 +0200
+++ ./sources/math/gnulib.cc 2005-06-21 08:59:27.000000000 +0200
@@ -86,7 +86,7 @@
void* Obstack::finish()
{
void* value = (void*) objectbase;
- nextfree = (char*)((int)(nextfree + alignmentmask) & ~(alignmentmask));
+ nextfree = (char*)((long)(nextfree + alignmentmask) & ~(alignmentmask));
if (nextfree - (char*)chunk > chunklimit - (char*)chunk)
nextfree = chunklimit;
objectbase = nextfree;
diff -urN ../tmp-orig/gambit-0.97.0.7/sources/pelican/pelqhull.cc
./sources/pelican/pelqhull.cc
--- ../tmp-orig/gambit-0.97.0.7/sources/pelican/pelqhull.cc 2004-05-25
20:54:10.000000000 +0200
+++ ./sources/pelican/pelqhull.cc 2005-06-21 09:08:46.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 %lx\n", outsize,
(long)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 %lx\n", size,
(long)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;
@@ -938,12 +938,12 @@
fprintf (fp, "%s set is null\n", string);
else {
SETreturnsize_(set, size);
- fprintf (fp, "%s set=%x maxsize=%d size=%d elems=",
- string, (unsigned int)set, set->maxsize, size);
+ fprintf (fp, "%s set=%lx maxsize=%d size=%d elems=",
+ 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, " %lx", (unsigned long)(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 %lx of %d elements, depth %d\n",
+ (long)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 %lx of %d
elements\n",
+ qh_setsize((setT *)qhmem.tempstack)+1, (long)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 %lx of %d
elements\n",
+ qh_setsize((setT *)qhmem.tempstack), (long)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
%lx for vertex v%d first_point %lx\n",
+ (long) vertex->point, vertex->id, (long) 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
%lx\n", (long) 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 %ulx\n",
+ (unsigned long) 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= -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= %lx\n",
+ facet1->id, facet2->id, qh furthest_id, (long)qh
tracevertex->neighbors->e[0]);
/*
qh_errprint ("TRACE", NULL, NULL, NULL, qh tracevertex);
diff -urN ../tmp-orig/gambit-0.97.0.7/sources/pelican/pelqhull.h
./sources/pelican/pelqhull.h
--- ../tmp-orig/gambit-0.97.0.7/sources/pelican/pelqhull.h 2004-05-25
20:54:10.000000000 +0200
+++ ./sources/pelican/pelqhull.h 2005-06-21 09:07:44.000000000 +0200
@@ -959,7 +959,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 -urN ../tmp-orig/gambit-0.97.0.7/sources/pelican/pelutils.cc
./sources/pelican/pelutils.cc
--- ../tmp-orig/gambit-0.97.0.7/sources/pelican/pelutils.cc 2004-05-25
20:54:10.000000000 +0200
+++ ./sources/pelican/pelutils.cc 2005-06-21 09:09:20.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",
--- End Message ---