[gdal-dev] Cannot build for iOS due to GUInt64 error
Nik Sands
nik at nixanz.com
Sun Nov 12 00:50:47 PST 2017
Hi Even,
Thanks for your reply. You are correct as usual. Your ‘cc’ test produced no errors, and your mention of ‘HAVE_LONG_LONG’ reminded me that I had have issues with that when compiling older versions of GDAL as well. So I went back to my old build script and checked and found that I always used to do the following:
—————————————————————————
curl -O http://download.osgeo.org/gdal/$gdal_ver/gdal-$gdal_ver.tar.gz
tar -xzf gdal-$gdal_ver.tar.gz
sed 's/#undef HAVE_LONG_LONG/\/\* #undef HAVE_LONG_LONG \*\/\'$'\n#define HAVE_LONG_LONG 1/' gdal-$gdal_ver/port/cpl_config.h.in > gdal-$gdal_ver/port/cpl_config.h.in.NEW
mv gdal-$gdal_ver/port/cpl_config.h.in gdal-$gdal_ver/port/cpl_config.h.in.ORIG
mv gdal-$gdal_ver/port/cpl_config.h.in.NEW gdal-$gdal_ver/port/cpl_config.h.in
—————————————————————————
I’ve now done this again with GDAL 2.2.2 and this old work around gets it to compile OK (the same way the work around always did for older versions - I had just forgotten it).
Is there some way this could be changed in the config/source so that it has the correct HAVE_LONG_LONG value for iOS/arm64 without requiring this work around?
Cheers,
Nik.
> On 11 Nov 2017, at 11:44 pm, Even Rouault <even.rouault at spatialys.com> wrote:
>
> On samedi 11 novembre 2017 11:09:48 CET Nik Sands wrote:
> > Hi,
> >
> > I’m attempting to build GDAL for the first time in a while, and this is the
> > first time for GDAL 2.2.2. I’ve getting the following error when building
> > for iOS arm64 on Mac OS X:
> >
> > ------------------------
> > geotiff.cpp:7653:13: error: unknown type name 'GUInt64'
> > typedef GUInt64 WordType;
> > ^
> > 1 error generated.
> > make[2]: *** [../o/geotiff.lo] Error 1
> > make[1]: *** [gtiff-install-obj] Error 2
> > make: *** [frmts-target] Error 2
> > ------------------------
> >
> > The relevant part of geotiff.cpp is:
> >
> > ------------------------
> > #if SIZEOF_VOIDP == 8 || defined(__x86_64__)
> > // We test __x86_64__ for x32 arch where SIZEOF_VOIDP == 4
> > typedef GUInt64 WordType;
> > #else
> > typedef unsigned int WordType;
> > #endif
> > ------------------------
> >
> > Should I be adding some exception condition into the ‘if’ part in order to
> > get it to use unsigned int instead of GUInt64? Or is there some other way
> > that this should be handled for iOS arm64 when building on Mac OS X?
>
> Nik,
>
> This is the sign of a serious configuration error. Patching it there will just hide many other problems elsewhere where 64bit integer is needed.
>
> This likely occurs because HAVE_LONG_LONG is not set for some reason when configure runs.
> If you run configure, I guess the "Checking for 64bit integer type" returns no.
>
> Can you try the following (replace cc by the appropriate (cross)compiler binary) ?
> echo 'int main() { long long off=0; }' > conftest.c
> cc -o conftest conftest.c
>
> Even
>
> --
> Spatialys - Geospatial professional services
> http://www.spatialys.com <http://www.spatialys.com/>
========================================================
NIK SANDS
Line Tamer | Time Traveller | Space Cadet
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20171112/3e816f27/attachment-0001.html>
More information about the gdal-dev
mailing list