Opened 13 years ago
Closed 12 years ago
#481 closed defect (wontfix)
GEOS 3.3.1 doesn't compile with GCC 4.3.2 on parisc64
Reported by: | rouault | Owned by: | pramsey |
---|---|---|---|
Priority: | major | Milestone: | 3.3.2 |
Component: | Build/Install | Version: | 3.3.1 |
Severity: | Unassigned | Keywords: | |
Cc: |
Description
Hopefully all in the title, with following details :
make[1]: Entering directory `/home/rouault/gdal/trunk/gdal/geos-3.3.1/doc' /bin/sh ../libtool --tag=CXX --mode=link g++ -DGEOS_INLINE -pedantic -Wall -ansi -Wno-long-long -ffloat-store -g -O2 -o example example.o ../src/libgeos.la ../src/libgeos.la libtool: link: g++ -DGEOS_INLINE -pedantic -Wall -ansi -Wno-long-long -ffloat-store -g -O2 -o .libs/example example.o ../src/.libs/libgeos.so -Wl,-rpath -Wl,/home/rouault/gdal/trunk/gdal/install-geos-3.1.1/lib ../src/.libs/libgeos.so: undefined reference to `std::auto_ptr<geos::geom::Envelope>::auto_ptr(std::auto_ptr_ref<geos::geom::Envelope>)' ../src/.libs/libgeos.so: undefined reference to `_ZNSt8auto_ptrIN4geos4geom8EnvelopeEEcvSt12auto_ptr_refIT_EIS2_EEv' collect2: ld returned 1 exit status $ g++ --version g++ (Debian 4.3.2-1.1) 4.3.2 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ uname -a Linux lebesgue 2.6.26-2-parisc64-smp #1 SMP Mon Jun 13 21:02:47 UTC 2011 parisc64 GNU/Linux
The error message is the same as the one reported in #463 with llvm-gcc, but the fix doesn't work
Change History (8)
comment:1 by , 13 years ago
Milestone: | → 3.3.2 |
---|
comment:2 by , 12 years ago
comment:3 by , 12 years ago
Hum, troubling, it looks like if I did a typo when ./configure 'ing. It should be /home/rouault/gdal/trunk/gdal/install-geos-3.3.1. I'll try to check again when I have access to that machine.
comment:4 by , 12 years ago
The typo had no real consequence. I re-tried with svn head, and still gets the same issue.
comment:5 by , 12 years ago
Do you get the same failure when building the testsuite ? ie: make check under the tests/ dir
Also, do you get any warning at compile (ratehr than link) time ?
comment:6 by , 12 years ago
yep, same error in tests/
rouault@lebesgue:~/gdal/trunk/gdal/geos-3.3.1/tests$ make check Making check in bigtest make[1]: Entering directory `/home/rouault/gdal/trunk/gdal/geos-3.3.1/tests/bigtest' make bug234 TestSweepLineSpeed make[2]: Entering directory `/home/rouault/gdal/trunk/gdal/geos-3.3.1/tests/bigtest' g++ -DHAVE_CONFIG_H -I. -I../../include -I../../include/geos -I../../include -I../../src/io/markup -DGEOS_INLINE -pedantic -Wall -ansi -Wno-long-long -ffloat-store -g -O2 -MT bug234.o -MD -MP -MF .deps/bug234.Tpo -c -o bug234.o bug234.cpp mv -f .deps/bug234.Tpo .deps/bug234.Po /bin/sh ../../libtool --tag=CXX --mode=link g++ -DGEOS_INLINE -pedantic -Wall -ansi -Wno-long-long -ffloat-store -g -O2 -o bug234 bug234.o ../../src/libgeos.la ../../src/libgeos.la libtool: link: g++ -DGEOS_INLINE -pedantic -Wall -ansi -Wno-long-long -ffloat-store -g -O2 -o .libs/bug234 bug234.o ../../src/.libs/libgeos.so -Wl,-rpath -Wl,/home/rouault/gdal/trunk/gdal/install-geos-3.3.1/lib ../../src/.libs/libgeos.so: undefined reference to `std::auto_ptr<geos::geom::Envelope>::auto_ptr(std::auto_ptr_ref<geos::geom::Envelope>)' ../../src/.libs/libgeos.so: undefined reference to `_ZNSt8auto_ptrIN4geos4geom8EnvelopeEEcvSt12auto_ptr_refIT_EIS2_EEv' collect2: ld returned 1 exit status make[2]: *** [bug234] Error 1 make[2]: Leaving directory `/home/rouault/gdal/trunk/gdal/geos-3.3.1/tests/bigtest' make[1]: *** [check-am] Error 2 make[1]: Leaving directory `/home/rouault/gdal/trunk/gdal/geos-3.3.1/tests/bigtest' make: *** [check-recursive] Error 1
I thought that GCC 4.3.2 was broken, but on a x86_64 linux, I managed to compile without any problem. Wondering if there's not something broken with the linker on that HW platform. Note: I don't care too much about it. I just use it from time to time to check if GDAL is still big-endian friendly. My plan was to test with spatialite, but spatialite requires geos ...
Launching a new compile to check for compile-time warnings, but this machine is horribly slow, so results for later...
comment:7 by , 12 years ago
Compilation warnings don't bring anything particularly exciting :
rouault@lebesgue:~/gdal/trunk/gdal/geos-3.3.1$ make > /dev/null ../../../include/geos/index/sweepline/SweepLineIndex.h: In constructor 'geos::index::sweepline::SweepLineIndex::SweepLineIndex()': ../../../include/geos/index/sweepline/SweepLineIndex.h:68: warning: 'geos::index::sweepline::SweepLineIndex::nOverlaps' will be initialized after ../../../include/geos/index/sweepline/SweepLineIndex.h:65: warning: 'bool geos::index::sweepline::SweepLineIndex::indexBuilt' SweepLineIndex.cpp:30: warning: when initialized here ../src/.libs/libgeos.so: undefined reference to `std::auto_ptr<geos::geom::Envelope>::auto_ptr(std::auto_ptr_ref<geos::geom::Envelope>)' ../src/.libs/libgeos.so: undefined reference to `_ZNSt8auto_ptrIN4geos4geom8EnvelopeEEcvSt12auto_ptr_refIT_EIS2_EEv' collect2: ld returned 1 exit status make[1]: *** [example] Error 1 make: *** [all-recursive] Error 1
Isn't your -rpath pointing to a directory containing GEOS 3.1.1 ? -Wl,/home/rouault/gdal/trunk/gdal/install-geos-3.1.1/lib