autoconf build failure
Ryan Schmidt
ryandesign at macports.org
Mon Apr 9 02:57:09 PDT 2007
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.
More information about the macports-users
mailing list