I checked out the latest version in CVS and tried to compile it on my amd64 box running debian unstable
I'm using gcc version 4.1.1
make[2]: Entering directory `/home/grahame/VisualBoyAdvance/src/prof'
if g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"VisualBoyAdvance\" -DVERSION=\"1.8.0\" -DYYTEXT_POINTER=1 -DHAVE_LIBZ=1 -DHAVE_LIBPTHREAD=1 -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 -DHAVE_MALLOC_H=1 -DHAVE_STRINGS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_NETINET_IN_H=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBINTL_H=1 -I. -I. -DPNG_NO_MMX_CODE -I/usr/include/libpng12 -g -O2 -DC_CORE -DPROFILING -DDEV_VERSION -MT prof.o -MD -MP -MF ".deps/prof.Tpo" -c -o prof.o prof.cpp; \
then mv -f ".deps/prof.Tpo" ".deps/prof.Po"; else rm -f ".deps/prof.Tpo"; exit 1; fi
prof.cpp: In function 'void profCleanup()':
prof.cpp:269: error: cast from 'char*' to 'u32' loses precision
make[2]: *** [prof.o] Error 1
make[2]: Leaving directory `/home/grahame/VisualBoyAdvance/src/prof'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/grahame/VisualBoyAdvance/src'
make: *** [all-recursive] Error 1
Logged In: YES
user_id=382959
Originator: NO
it's casting from a car pointer to an unsigned 32 bit int, which is fine on 32 bit systems, but you have a 64 bit system. either turn off 64 bit extensions in the compiler so it generates 32 bit code, or make changes to the code to accommodate 64 bit pointers.