I wanted to build an awesome place for people to discuss module specific issues, but I don't have any more time for this, and there are much better places to discuss Perl-related issues. I'd recommend asking your question on Stack Overflow or on Perl Monks.
If you are looking for a Perl tutorial or Perl-related news, I hope these links will serve you well.
Posted on 2008-12-24 01:51:42-08 by jtocci
Mac OS X Leopard, libpq.dylib file is not of required architecture
perl Makefile.PL :
Configuring DBD::Pg 2.11.7
PostgreSQL version: 80301 (default port: 5432)
POSTGRES_HOME: /usr/local/pgsql
POSTGRES_INCLUDE: /usr/local/pgsql/include
POSTGRES_LIB: /usr/local/pgsql/lib -lssl -lcrypto
OS: darwin
Multiple copies of Driver.xst found in: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBI/ /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level/auto/DBI/ at Makefile.PL line 162
Checking if your kit is complete...
Looks good
Multiple copies of Driver.xst found in: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBI/ /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level/auto/DBI/ at Makefile.PL line 258 Using DBI 1.607 (for perl 5.008008 on darwin-thread-multi-2level) installed in /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBI/
Writing Makefile for DBD::Pg


make:
...snip...
rm -f blib/arch/auto/DBD/Pg/Pg.bundle
LD_RUN_PATH="/usr/lib:/usr/local/pgsql/lib" cc -mmacosx-version-min=10.5 -arch i386 -arch ppc -bundle -undefined dynamic_lookup -L/usr/local/lib Pg.o dbdimp.o quote.o types.o -o blib/arch/auto/DBD/Pg/Pg.bundle \
-L/usr/local/pgsql/lib -lssl -lcrypto -lpq -lm \

ld: warning in /usr/local/pgsql/lib/libpq.dylib, file is not of required architecture
chmod 755 blib/arch/auto/DBD/Pg/Pg.bundle
cp Pg.bs blib/arch/auto/DBD/Pg/Pg.bs
chmod 644 blib/arch/auto/DBD/Pg/Pg.bs
Manifying blib/man3/Bundle::DBD::Pg.3pm
Manifying blib/man3/DBD::Pg.3pm


The first sign of an issue is the warning 'file is not of required architecture'. A make test looks like this:

GINITDB="/usr/local/pgsql/bin/initdb" PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-signature......skipped: Set the environment variable TEST_SIGNATURE to enable this test
t/00basic...........1/3
# Failed test 'use DBD::Pg;'
# at t/00basic.t line 14.
# Tried to use 'DBD::Pg'.
# Error: Can't load '/Users/jtocci/Downloads/DBD-Pg-2.11.7/blib/arch/auto/DBD/Pg/Pg.bundle' for module DBD::Pg: dlopen(/Users/jtocci/Downloads/DBD-Pg-2.11.7/blib/arch/auto/DBD/Pg/Pg.bundle, 2): Symbol not found: _PQbackendPID # Referenced from: /Users/jtocci/Downloads/DBD-Pg-2.11.7/blib/arch/auto/DBD/Pg/Pg.bundle
# Expected in: dynamic lookup
# at (eval 6) line 2
# Compilation failed in require at (eval 6) line 2.
# BEGIN failed--compilation aborted at (eval 6) line 2.
Bailout called. Further testing stopped: Cannot continue without DBD::Pg
make: *** [test_dynamic] Error 1

Any hint at what the problem might be? I've done ranlib, set env variables, 'env -i command' and other suggestions but nothing works. Google doesn't turn up any hints either.
Direct Responses: 9595 | Write a response
Posted on 2008-12-24 03:11:37-08 by jtocci in response to 9594
Re: Mac OS X Leopard, libpq.dylib file is not of required architecture
I did a mv /usr/local/pgsql/lib/libpq.dylib /usr/local/pgsql/lib/libpq.dylib.old and got a 1.3 mb universal binary of libpq.a from another machine and it installed. The binary originally came from http://basetenframework.org/ but I am told you can get one here too: www.postgresqlformac.com in the developers pack.
Direct Responses: Write a response