boysie has asked for the wisdom of the Perl Monks concerning the following question:

I couldn't get Net::SMTP::SSL to install with OS X 10.4 default perl build. I decided to install a new perl from source (using /usr/local/bin to avoid messing up the default version). I followed the REAME.macosx install instructions and the build seems fine until I start trying to install certain modules, e.g. DBD::mysql, Mac::Carbon, etc...

In each make or make test failure I get the following error: lipo: can't open input file: ...

I'm not sure if this is a library conflict, or because of the universal binary build, or something completely different.

I need to either be able to build Net::SMTP::SSL (errors saying it needs perl 5.8.8 to run) with the original perl build, or build a new version that doesn't keep giving me the "lipo" error. The lipo error always points to a file in /var/tmp// if that helps...
  • Comment on getting the error lipo: can't open input file: while compiling modules

Replies are listed 'Best First'.
Re: getting the error lipo: can't open input file: while compiling modules
by Anonymous Monk on Dec 18, 2007 at 09:49 UTC
      I followed the instructions found at:

      http://www.nntp.perl.org/group/perl.macosx/2007/03/msg10229.html

      Which suggested adding -msse2 to the configuration options.

      I'm still getting the following errors while trying to install DBD::mysql:

      cc -c -I/usr/local/lib/perl5/site_perl/5.8.8/darwin-2level/auto/DBI -I/usr/local/mysql/include -Os -arch i386 -fno-common -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -fno-common -DPERL_DARWIN -no-cpp-precomp -arch i686 -arch ppc -msse2 -nostdinc -B/Developer/SDKs/MacOSX10.4u.sdk/usr/include/gcc -B/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc -isystem/Developer/SDKs/MacOSX10.4u.sdk/usr/include -F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -I/opt/local/include -O3 -DVERSION=\"4.005\" -DXS_VERSION=\"4.005\" "-I/usr/local/lib/perl5/5.8.8/darwin-2level/CORE"
      dbdimp.c
      dbdimp.c: In function 'mysql_dr_connect':
      dbdimp.c:1533: error: 'ulong' undeclared (first use in this function)
      dbdimp.c:1533: error: (Each undeclared identifier is reported only once
      dbdimp.c:1533: error: for each function it appears in.)
      dbdimp.c:1533: error: parse error before numeric constant
      dbdimp.c:1535: error: parse error before numeric constant
      dbdimp.c: In function 'mysql_dr_connect':
      dbdimp.c:1533: error: 'ulong' undeclared (first use in this function)
      dbdimp.c:1533: error: (Each undeclared identifier is reported only once
      dbdimp.c:1533: error: for each function it appears in.)
      dbdimp.c:1533: error: parse error before numeric constant
      dbdimp.c:1535: error: parse error before numeric constant
      dbdimp.c:1649: error: parse error before numeric constant
      dbdimp.c:1649: error: parse error before numeric constant
      dbdimp.c: In function 'mysql_dr_connect':
      dbdimp.c:1533: error: 'ulong' undeclared (first use in this function)
      dbdimp.c:1533: error: (Each undeclared identifier is reported only once
      dbdimp.c:1533: error: for each function it appears in.)
      dbdimp.c:1533: error: parse error before numeric constant
      dbdimp.c:1535: error: parse error before numeric constant
      dbdimp.c:1649: error: parse error before numeric constant
      lipo: can't open input file: /var/tmp//cciO6iLr.out (No such file or directory)
      make: *** dbdimp.o Error 1


      Any other suggestions?
        Try setting the DYLD_LIBRARY_PATH might help. Or altering the setup.py to add -L/usr/lib.
        I don't know if this helps but during 'make' I get the following errors for several packages:

        Making XS::APItest (dynamic)
        Makefile out-of-date with respect to ../../../lib/Config.pm
        Cleaning current config before rebuilding Makefile...
        make -f Makefile.old clean > /dev/null 2>&1
        ../../../miniperl "-I../../../lib" "-I../../../lib" Makefile.PL "INSTALLDIRS=perl" "PERL_CORE=1" "LIBPERL_A=libperl.a"
        Checking if your kit is complete...
        Looks good
        Writing Makefile for XS::APItest
        ==> Your Makefile has been rebuilt. <==
        ==> Please rerun the make command. <==
        false
        make2: *** Makefile Error 1
        make config failed, continuing anyway...
        Skip ../../../lib/XS/APItest.pm (unchanged)
        ../../../miniperl "-I../../../lib" "-I../../../lib" ../../../lib/ExtUtils/xsubpp -typemap ../../../lib/ExtUtils/typemap APItest.xs > APItest.xsc && mv APItest.xsc APItest.c
        cc -c -I. -fno-common -DPERL_DARWIN -no-cpp-precomp -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include -arch i686 -arch ppc -msse2 -nostdinc -B/Developer/SDKs/MacOSX10.4u.sdk/usr/include/gcc -B/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc -isystem/Developer/SDKs/MacOSX10.4u.sdk/usr/include -F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks -Wdeclaration-after-statement -I/usr/local/include -I/opt/local/include -O3 -DVERSION=\"0.08\" -DXS_VERSION=\"0.08\" "-I../../.." APItest.c
        Running Mkbootstrap for XS::APItest ()
        chmod 644 APItest.bs
        rm -f ../../../lib/auto/XS/APItest/APItest.bundle
        env MACOSX_DEPLOYMENT_TARGET=10.3 cc -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib APItest.o -o ../../../lib/auto/XS/APItest/APItest.bundle \ \

        chmod 755 ../../../lib/auto/XS/APItest/APItest.bundle
        cp APItest.bs ../../../lib/auto/XS/APItest/APItest.bs
        chmod 644 ../../../lib/auto/XS/APItest/APItest.bs


        I'm wondering if I'm having problems because of previous builds. Is there a way to build perl statically, or in other words without linking to the old files/libraries?
        Would that