I was trying to compile paragui (the stable cvs version) on x86_64
architecture and got the following message from make:
make[2]: Entering directory
`/usr/src/packages/SOURCES/paragui/src/core'
if /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I.
-I../../include -I/usr/include/SDL -D_REENTRANT -I./../physfs
-I../../include
-g -O2 -Wall -I/usr/include/freetype2 -fno-exceptions -MT
pgtimerobject.lo
-MD -MP -MF ".deps/pgtimerobject.Tpo" -c -o pgtimerobject.lo
pgtimerobject.cpp; \
then mv -f ".deps/pgtimerobject.Tpo" ".deps/pgtimerobject.Plo"; else
rm -f
".deps/pgtimerobject.Tpo"; exit 1; fi
g++ -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/SDL
-D_REENTRANT
-I./../physfs -I../../include -g -O2 -Wall -I/usr/include/freetype2
-fno-exceptions -MT pgtimerobject.lo -MD -MP -MF
.deps/pgtimerobject.Tpo -c
pgtimerobject.cpp -fPIC -DPIC -o .libs/pgtimerobject.o
pgtimerobject.cpp: In member function `PG_TimerID
PG_TimerObject::AddTimer(unsigned int)':
pgtimerobject.cpp:37: warning: cast to pointer from integer of
different size
pgtimerobject.cpp: In static member function `static Uint32
PG_TimerObject::callbackTimer(unsigned int, void*)':
pgtimerobject.cpp:67: error: reinterpret_cast from `void*' to
`PG_TimerID'
loses precision
make[2]: *** [pgtimerobject.lo] Error 1
make[2]: Leaving directory
`/usr/src/packages/SOURCES/paragui/src/core'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/packages/SOURCES/paragui/src'
make: *** [all-recursive] Error 1
I think the problem is the cast from a pointer to UInt32 and back
--while
x86_64 bit machines have 64 bit pointers (?).
Any idea how to fix this?