[gdal-dev] GDAL python bindings build error (gcc command replaced by bash)
Even Rouault
even.rouault at spatialys.com
Wed Nov 2 04:50:24 PDT 2016
Le mercredi 02 novembre 2016 12:19:23, Kai Muehlbauer a écrit :
> Am 02.11.2016 um 11:00 schrieb Even Rouault:
> > 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++".
>
> Even,
>
> I applied your workaround to setup.py, but some calls differ (eg.
> -pthread is missing). I'll attach gdal-working.txt (no CC, CXX set in
> env), gdal-breaking.txt (CC, CXX set in env) and gdal-workaround.txt
> (CC, CXX set in env, with applied workaround) which contain the python
> build logs.
>
> Is the missing -pthread problematic?
I don't think so. We could also apply the same logic for CC as the one I added
for CXX if it proved to be needed.
>
> - Kai
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the gdal-dev
mailing list