On Apr 9, 2007, at 04:21, Dan Stowell wrote:
2007/4/9, Ryan Schmidt:
On Apr 8, 2007, at 13:38, Dan Stowell wrote:
dyld: lazy symbol binding failed: Symbol not found: _sprintf $LDBLStub Referenced from: /opt/local/lib/perl5/5.8.8/darwin-2level/auto/Data/Dumper/ Dumper.bundle Expected in: dynamic lookup
It looks like someone else mentioned this problem in October 2006 but did not receive a response to their message and did not write back to say if or how they solved it:
http://lists.macosforge.org/pipermail/macports-users/2006-October/ 000334.html
Someone else encountered it in February 2006 on another list (there it was in relation to MySQL and Python), and it looks like the problem could be that you're using gcc 3.3 instead of gcc 4.0 on Mac OS X 10.4.x:
http://dunck.us/anabasis/archives/2006/02/23/mysqldb-on-mac-os-x-104/
What does "gcc_select" say on your system? It should say version 4.0.1. If it says version 3.3, then you should select version 4 with "sudo gcc_select 4.0"
I'm not sure whether the problem is that autoconf doesn't like gcc 3.3 on Tiger, or maybe it's perl. Maybe you'll need to rebuild perl after fixing the compiler version.
That does it! Thanks.
For info: selected gcc was 3.3. After changing to 4.0, I tried cleaning and rebuilding just autoconf but it failed in the same way; after uninstalling/cleaning/installing perl5.8 I could install autoconf.
Thanks both for your suggestions. And thanks for the gcc_select tip; I did wonder why my system kept using the older gcc (in other situations)...
So now we have the problem of solving this in general for all of MacPorts. - Some ports override CC, CPP and CXX to avoid this problem. See e.g. the darwin 8 platform section of the php5 portfile which says: platform darwin 8 { configure.env-append \ CC=/usr/bin/gcc-4.0 CPP=/usr/bin/cpp-4.0 CXX=/usr/ bin/g++-4.0 } Should MacPorts do this generally for all ports? Why leave it up to each individual port to discover bugs relating to using the wrong compiler? - Or, should port detect when the wrong gcc is gcc_selected, and simply refuse to run at all until the user corrects the problem? I've heard in other (non-MacPorts) situations how gcc_selecting earlier versions is really not recommended at all as it can break things; certainly here we see how this can be true.