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