I defined HAVE_LONG_LONG in cpl_config.h and indeed it worked.
Not sure why that macro does not get defined automatically by the configure script.

Thanks for your hint,
Calogero


Il 8/25/2016 3:10 PM, Calogero Mauceri ha scritto:
Thanks Even for your reply.

I had a look to port/cpl_config.h and in both cases (32 and 64 bit) the following line is commented

[...]

/* Define to 1, if your compiler supports long long data type */
/* #undef HAVE_LONG_LONG */

[...]

I tried --with-macosx-framework and "-arch i386 -arch x86_64" but unfortunately did not work: --with-macosx-framework is not recognized as a valid option and if I add -arch x86_64 flag I get the following configuration errors

[...]
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag... Running ld for i386 ...
Running ld for x86_64 ...
yes
checking for -exported_symbols_list linker flag... yes
checking for -force_load linker flag... Running ld for i386 ...
Running ld for x86_64 ...
yes
checking how to run the C preprocessor... /lib/cpp
configure: error: in `/Users/mauceri/work/dev/libs/gdal-2.1.1':
configure: error: C preprocessor "/lib/cpp" fails sanity check


To add more information, GDAL 1.11.5 and 2.0.3 properly build in 32 bits on the same machine.

Calogero


Il 8/25/2016 1:48 AM, Even Rouault ha scritto:
On Wednesday 24 August 2016 16:00:02 Calogero Mauceri wrote:
Hi all,
I'm trying to build GDAL 2.1.0 in 32 bit on Mac OS X.
I set the following environment variables

export CFLAGS="-arch i386"
export CXXFLAGS="-arch i386"
export CPPFLAGS="-arch i386"
export LDFLAGS="-arch i386"

and then execute

./configure

The build stops with the following error

/bin/sh /Users/mauceri/work/dev/libs/gdal-2.1.1/libtool --mode=compile
--tag=CXX g++ -I/Users/mauceri/work/dev/libs/gdal-2.1.1/port
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/gcore
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/alg
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/ogr
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/ogr/ogrsf_frmts
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/gnm
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/apps -arch i386 -Wall -Wextra
-Winit-self -Wunused-parameter -Wformat -Werror=format-security
-Wno-format-nonliteral -Wshorten-64-to-32 -Wshadow -Werror=vla
-Wnull-dereference -Wunused-private-field -Wmissing-prototypes
-Wmissing-declarations -Wnon-virtual-dtor -Woverloaded-virtual
-fno-operator-names  -I..  -I../jpeg -DHAVE_LIBJPEG -I../jpeg/libjpeg
-DINTERNAL_LIBGEOTIFF -Ilibgeotiff -DINTERNAL_LIBTIFF -Ilibtiff
-DBIGTIFF_SUPPORT -DOGR_ENABLED -arch i386
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/port -DGDAL_COMPILATION -c -o
../o/geotiff.lo geotiff.cpp
libtool: compile:  g++ -I/Users/mauceri/work/dev/libs/gdal-2.1.1/port
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/gcore
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/alg
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/ogr
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/ogr/ogrsf_frmts
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/gnm
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/apps -arch i386 -Wall -Wextra
-Winit-self -Wunused-parameter -Wformat -Werror=format-security
-Wno-format-nonliteral -Wshorten-64-to-32 -Wshadow -Werror=vla
-Wnull-dereference -Wunused-private-field -Wmissing-prototypes
-Wmissing-declarations -Wnon-virtual-dtor -Woverloaded-virtual
-fno-operator-names -I.. -I../jpeg -DHAVE_LIBJPEG -I../jpeg/libjpeg
-DINTERNAL_LIBGEOTIFF -Ilibgeotiff -DINTERNAL_LIBTIFF -Ilibtiff
-DBIGTIFF_SUPPORT -DOGR_ENABLED -arch i386
-I/Users/mauceri/work/dev/libs/gdal-2.1.1/port -DGDAL_COMPILATION -c
geotiff.cpp  -fno-common -DPIC -o ../o/.libs/geotiff.o
geotiff.cpp:9771:21: error: no member named 'my_function' in
'CPLStaticAssert<false>'; did you mean 'CPLStaticAssert<true>::my_function'?
if( bSwap ) CPL_SWAP64PTR(&nTmp);
                      ^~~~~~~~~~~~~~~~~~~~
/Users/mauceri/work/dev/libs/gdal-2.1.1/port/cpl_port.h:655:5: note:
expanded from macro 'CPL_SWAP64PTR'
CPL_STATIC_ASSERT_IF_AVAILABLE(sizeof(*(x)) == 1 || sizeof(*(x)) ==
8); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/mauceri/work/dev/libs/gdal-2.1.1/port/cpl_port.h:605:43: note:
expanded from macro 'CPL_STATIC_ASSERT_IF_AVAILABLE'
#define CPL_STATIC_ASSERT_IF_AVAILABLE(x) CPL_STATIC_ASSERT(x)
^~~~~~~~~~~~~~~~~~~~
/Users/mauceri/work/dev/libs/gdal-2.1.1/port/cpl_port.h:604:30: note:
expanded from macro 'CPL_STATIC_ASSERT'
#define CPL_STATIC_ASSERT(x) CPLStaticAssert<x>::my_function()
                               ^~~~~~~~~~~~~~~~~~~~
/Users/mauceri/work/dev/libs/gdal-2.1.1/port/cpl_port.h:599:17: note:
'CPLStaticAssert<true>::my_function' declared here
      static void my_function() {}

[...]

Do you have any idea on how to fix this?
One of the reason for which it would happen is that GUIntBig type doesn't resolve to a 64 bit integer but to a 32 bit one. And that could happen if the HAVE_LONG_LONG macro is not defined in the port/cpl_config.h file that is generated by ./configure. Now I'm not Mac savvy enough to tell you why that
would happen...

Quickly looking at https://trac.osgeo.org/gdal/wiki/BuildingOnMac , it seems you can/should specify --with-macosx-framework and possibly use "-arch i386 -
arch x86_64"

Even



--
Calogero Mauceri
Software Engineer

Applied Coherent Technology Corporation (ACT)
www.actgate.com


_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to