[gdal-dev] GDAL python bindings build error (gcc command replaced by bash)

Even Rouault even.rouault at spatialys.com
Wed Nov 2 03:00:45 PDT 2016


Le mercredi 02 novembre 2016 10:48:32, Kai Muehlbauer a écrit :
> Hi Even,
> 
> Am 01.11.2016 um 16:32 schrieb Even Rouault:
> > Le vendredi 01 juillet 2016 13:17:54, Kai Muehlbauer a écrit :
> >> Hi James,
> >> 
> >> I did experience the same issue. See
> >> 
> >> https://lists.osgeo.org/pipermail/gdal-dev/2016-July/044678.html
> >> 
> >> Although I did not find the root cause of this, I found that in my use
> >> case, copying and unsetting CC and CXX environment variables did the
> >> trick.
> >> 
> >> So what I did is:
> >> 
> >> export CF_CC=$CC
> >> export CF_CXX=$CXX
> >> unset CC CXX
> >> ./configure CC=$CF_CC \
> >> 
> >>              CXX=$CF_CXX \
> >>              --prefix=$PREFIX
> >> 
> >> make
> >> 
> >> Hoping for more insight by gdal-devs.
> > 
> > I've just hit that issue too and pushed
> > https://trac.osgeo.org/gdal/changeset/36067 to fix/workaround it.
> > By instrumenting Python distutils code, I concluded that this is a bad
> > interaction between the CXX variable of the GDALmake.opt and Python
> > distutils when CXX is made of several "words" (that occurs only when CXX
> > is defined in the environment too, whatever its value ! Which is
> > probably a standard GNU make behaviour)
> > 
> > James, if you still have a tree with the configuration that hit the
> > issue, could you have a look at the value of the CXX variable in
> > GDALmake.opt ? From the error message, it would seem that there is
> > /bin/bash in it, which is a bit surprising.
> > 
> > Even
> 
> I took the chance to run the two builds I mentioned in my above linked
> list-email once again.
> 
> GDALmake.opt is identical in both working and breaking version.

Yes that depends if CXX is defined or not as environmenet variable.

> 
> Excerpt:
> 
> SHELL    =   /bin/sh
> LIBTOOL	=	$(SHELL) $(top_builddir)/libtool
> LIBTOOL_COMPILE_CC =	$(LIBTOOL) --mode=compile --tag=CC
> LIBTOOL_COMPILE_CXX =	$(LIBTOOL) --mode=compile --tag=CXX
> CC	=	$(LIBTOOL_COMPILE_CC) gcc
> CXX	=	$(LIBTOOL_COMPILE_CXX) g++
> 
> The only difference (for working and breaking) after running
> 
> $ ./configure --prefix=/usr/local --with-python
> 
> is within config.log and config.status.

ok, this is a libtool build, so CXX will expand to "/bin/sh libtool  --
mode=compile --tag=CXX g++".

> 
> 
> Cheers,
> Kai

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the gdal-dev mailing list