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 strk, 13 years ago

Milestone: 3.3.2

comment:2 by strk, 12 years ago

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

comment:3 by rouault, 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 rouault, 12 years ago

The typo had no real consequence. I re-tried with svn head, and still gets the same issue.

comment:5 by strk, 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 rouault, 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 rouault, 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

comment:8 by strk, 12 years ago

Resolution: wontfix
Status: newclosed

Seems a linker bug to me

Note: See TracTickets for help on using tickets.