Opened 10 years ago

Closed 10 years ago

#30309 closed defect (fixed)

geos @3.3.0: Undefined symbols __ZNSt8auto_ptrIN4geos4geom8EnvelopeEEcvSt12auto_ptr_refIT_EIS2_EEv

Reported by: pico303@… Owned by: opendarwin@…
Priority: Normal Milestone:
Component: ports Version: 2.0.0
Keywords: lion Cc: jacobu@…, patrick.hartling@…, SiggyF, nlebedev@…, typhoon.man@…, skymoo (Adam Mercer), matthew.g.russell@…, rex4539 (Dimitris Apostolou), kvanrhee@…, ryandesign (Ryan Schmidt), calvin@…, ak.ml@…
Port: geos

Description (last modified by ryandesign (Ryan Schmidt))

When installing Geos 3.3.0 (for PostGIS), I got the following error:

:info:build Undefined symbols for architecture x86_64:
:info:build   "__ZNSt8auto_ptrIN4geos4geom8EnvelopeEEcvSt12auto_ptr_refIT_EIS2_EEv", referenced from:
:info:build       virtual thunk to geos::geom::GeometryCollection::computeEnvelopeInternal() constin GeometryCollection.o
:info:build   "std::auto_ptr<geos::geom::Envelope>::auto_ptr(std::auto_ptr_ref<geos::geom::Envelope>)", referenced from:
:info:build       virtual thunk to geos::geom::GeometryCollection::computeEnvelopeInternal() constin GeometryCollection.o
:info:build ld: symbol(s) not found for architecture x86_64
:info:build collect2: ld returned 1 exit status
:info:build make[2]: *** [libgeos.la] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_science_geos/geos/work/geos-3.3.0/src'
:info:build make[1]: *** [all-recursive] Error 1
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_science_geos/geos/work/geos-3.3.0/src'
:info:build make: *** [all-recursive] Error 1
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_science_geos/geos/work/geos-3.3.0'
:info:build shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_science_geos/geos/work/geos-3.3.0" && /usr/bin/make -j2 -w all " returned error 2
:error:build Target org.macports.build returned: shell command failed (see log for details)

It did work if I installed Geos as follows:

sudo port install geos configure.cc=gcc-4.2 configure.cxx=g++-4.2

Attachments (2)

main.log (75.1 KB) - added by calvin@… 10 years ago.
geos main.log
main.2.log (432.2 KB) - added by calvin@… 10 years ago.
cleaned geos and attempt at reinstalling

Download all attachments as: .zip

Change History (26)

comment:1 Changed 10 years ago by jmroot (Joshua Root)

Keywords: lion added
Owner: changed from macports-tickets@… to opendarwin@…

Please remember to cc the maintainer.

comment:2 Changed 10 years ago by jacobu@…

Apparently on Lion, ar is buggy, and that might be what's causing the issue. I'm not sure if it's related, but Atlas didn't compile either due to an ar bug (#30280). The maintainer ended up writing a shell script and used libtool to emulate ar. Not sure if a similar fix might work here.

comment:3 Changed 10 years ago by jacobu@…

Cc: jacobu@… added

Cc Me!

comment:4 Changed 10 years ago by patrick.hartling@…

Cc: patrick.hartling@… added

Cc Me!

comment:5 Changed 10 years ago by ohtinsel@…

Same issue... your workaround much appreciated.

Cc Me!

comment:6 Changed 10 years ago by SiggyF

Cc: f.baart@… added

Cc Me!

comment:7 Changed 10 years ago by ryandesign (Ryan Schmidt)

Cc: nlebedev@… added
Description: modified (diff)
Summary: Geos 3.3.0 installation problem on Liongeos @3.3.0: Undefined symbols __ZNSt8auto_ptrIN4geos4geom8EnvelopeEEcvSt12auto_ptr_refIT_EIS2_EEv

Has duplicate #30655.

comment:8 Changed 10 years ago by ryandesign (Ryan Schmidt)

Cc: typhoon.man@… added

Has duplicate #30557.

comment:9 Changed 10 years ago by skymoo (Adam Mercer)

Cc: ram@… added

Cc Me!

comment:10 Changed 10 years ago by matthew.g.russell@…

Cc: matthew.g.russell@… added

Cc Me!

comment:11 Changed 10 years ago by Veence (Vincent)

There are a lot of bugs with geos. Trying to compile with clang leads to a bunch of errors; llvm-gcc, as you have found out, leaves alone a routine. I've posted a bug report upstream, I'm waiting for an answer, but during the holidays, it might be delayed for a while.

comment:12 Changed 10 years ago by rex4539 (Dimitris Apostolou)

Cc: rex_4539@… added

Cc Me!

comment:13 Changed 10 years ago by kvanrhee@…

Cc: kvanrhee@… added

Cc Me!

comment:14 in reply to:  11 Changed 10 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added
Resolution: fixed
Status: newclosed

Replying to vince@…:

There are a lot of bugs with geos. Trying to compile with clang leads to a bunch of errors; llvm-gcc, as you have found out, leaves alone a routine. I've posted a bug report upstream

That would be bug 463. It doesn't look like there has been any response yet.

We should just force gcc-4.2 until upstream fixes the compilation with more modern compilers. Done in r83193.

comment:15 Changed 10 years ago by calvin@…

Resolution: fixed
Status: closedreopened

Doesn't seem to work for me even by forcing gcc-4.2 as mentioned above.

sudo port install geos configure.cc=gcc-4.2 configure.cxx=g++-4.2

xcode 4.2 does not seem to have gcc-4.2 anymore.

comment:16 Changed 10 years ago by ryandesign (Ryan Schmidt)

That is why the fix I committed in r83193 above uses the apple-gcc42 port in the event that gcc-4.2 does not exist, i.e. in Xcode 4.2+. If this is not working for you, show us the main.log.

comment:17 Changed 10 years ago by ryandesign (Ryan Schmidt)

Cc: calvin@… added

Calvin, please see my remark in the ticket.

Changed 10 years ago by calvin@…

Attachment: main.log added

geos main.log

comment:18 Changed 10 years ago by calvin@…

Hi Ryan, main.log file attached.

Thank you for looking into this!

comment:19 Changed 10 years ago by ryandesign (Ryan Schmidt)

This shows it's using the compiler "g++"; it should be using the complete path to the apple-gcc42 g++ compiler. It's also not a complete log. Can you clean and try again, and attach the complete main.log if it fails again? Do not specify a compiler; just let the port select it for you:

sudo port clean geos
sudo port install geos

comment:20 Changed 10 years ago by ak.ml@…

Cc: ak.ml@… added

Cc Me!

Changed 10 years ago by calvin@…

Attachment: main.2.log added

cleaned geos and attempt at reinstalling

comment:21 in reply to:  19 Changed 10 years ago by calvin@…

Replying to ryandesign@…:

This shows it's using the compiler "g++"; it should be using the complete path to the apple-gcc42 g++ compiler. It's also not a complete log. Can you clean and try again, and attach the complete main.log if it fails again? Do not specify a compiler; just let the port select it for you:

sudo port clean geos
sudo port install geos

Done that, still getting an error and main.2.log attached.

comment:22 Changed 10 years ago by ryandesign (Ryan Schmidt)

Thanks! I now realize this is a MacPorts base bug.We didn't have a ticket for this problem so I filed one: #31709. It'll be fixed in the next version of MacPorts. I also worked around the problem in geos in r86214. Please "sudo port selfupdate" and "sudo port clean geos" and try again.

comment:23 Changed 10 years ago by calvin@…

Thanks! Works beautifully this time around. Appreciate your help Ryan.

comment:24 Changed 10 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.