Opened 14 years ago

Last modified 14 years ago

#3460 closed defect

cpl_hash_set.cpp:382: error: cast from 'const void*' to 'long unsigned int' loses precision — at Version 1

Reported by: jctilton Owned by: Even Rouault
Priority: normal Milestone: 1.7.2
Component: ConfigBuild Version: unspecified
Severity: normal Keywords: hash
Cc: Even Rouault

Description (last modified by warmerdam)

Using the MinGW_w64 gcc compiler (based on gcc version 4.4.4), I get the following when I try to build GDAL:

...
libtool: compile:  x86_64-w64-mingw32-g++ -g -O2 -Wall -DOGR_ENABLED 
-I/home/JamesCTilton/Downloads/gdal-1.7.1/port -I/usr/local/include 
-I/usr/local/include/include -I/usr/local/include -I/usr/local/include/include 
-I../frmts/zlib -DHAVE_LIBZ -c cpl_hash_set.cpp  -DDLL_EXPORT -DPIC -o .libs/cpl_hash_set.o
cpl_hash_set.cpp: In function 'long unsigned int CPLHashSetHashPointer(const void*)':
cpl_hash_set.cpp:382: error: cast from 'const void*' to 'long unsigned int' loses precision
make[1]: *** [cpl_hash_set.lo] Error 1
make[1]: Leaving directory `/home/JamesCTilton/Downloads/gdal-1.7.1/port'
make: *** [port-target] Error 2

How can I get around this problem? Thanks!

I configured with the following command:

./configure CC=x86_64-w64-mingw32-gcc CPP=x86_64-w64-mingw32-cpp \ CXX=x86_64-w64-mingw32-g++ F77=x86_64-w64-mingw32-gfortran \ AR=x86_64-w64-mingw32-ar RANLIB=x86_64-w64-mingw32-ranlib \ STRIP=x86_64-w64-mingw32-strip AS=x86_64-w64-mingw32-as \ DLLTOOL=x86_64-w64-mingw32-dlltool LD=x86_64-w64-mingw32-ld \ NM=x86_64-w64-mingw32-nm OBJDUMP=x86_64-w64-mingw32-objdump \ LDFLAGS="-L /usr/local" --prefix=/usr/local \ --with-expat=/usr/local/include --with-libtiff=internal \ --with-jpeg=/usr/local/include --with-libz=/usr/local/include \ --with-png=/usr/local/include

Change History (1)

comment:1 by warmerdam, 14 years ago

Component: defaultConfigBuild
Description: modified (diff)
Keywords: hash added
Owner: changed from warmerdam to Even Rouault

Even,

I think you implemented the hash set? I do not believe it is a safe assumption that a long and a pointer are the same size. It would be somewhat safer to assume a GIntBig is big enough to hold a pointer.

Note: See TracTickets for help on using tickets.