Installing DBD::mysql on Leopard

[email protected] (Charlie Garrison)
Newsgroups perl.macosx
Message-ID <[email protected]>
Good afternoon,

I'm having trouble installing DBD::mysql on OS X Leopard, and I 
can't get any answers from Google that help.

I've got a fresh Leopard install so there shouldn't be any 
legacy issues. I've tried compiling DBD::mysql against package 
version of mySQL 
(mysql-max-4.1.22-apple-darwin8.6.0-powerpc-64bit) as well as 
against mySQL compiled from source. I was getting errors caused 
by architecture mis-match which I fixed by setting 
ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64' before 
running perl Makefile.PL. I also tried setting it as 
ARCHFLAGS='-arch ppc64'.

I get a few warnings during make, such as:

cc -c  -I/Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBI 
-arch i386 -arch ppc -arch ppc64 -arch x86_64 
-I/usr/local/mysql/include -Os -fno-common 
-DDBD_MYSQL_INSERT_ID_IS_GOOD -g  -arch i386 -arch ppc -arch 
ppc64 -arch x86_64 -g -pipe -fno-common -DPERL_DARWIN 
-no-cpp-precomp -fno-strict-aliasing 
-Wdeclaration-after-statement -I/usr/local/include -O3   
-DVERSION=\"4.006\" -DXS_VERSION=\"4.006\"  
"-I/System/Library/Perl/5.8.8/darwin-thread-multi-2level/CORE"   dbdimp.c
dbdimp.c: In function ‘alloc_param’:
dbdimp.c:112: warning: comparison is always false due to limited 
range of data type
dbdimp.c: In function ‘alloc_bind’:
dbdimp.c:130: warning: comparison is always false due to limited 
range of data type
dbdimp.c: In function ‘alloc_fbind’:
dbdimp.c:146: warning: comparison is always false due to limited 
range of data type
dbdimp.c: In function ‘alloc_fbuffer’:
dbdimp.c:161: warning: comparison is always false due to limited 
range of data type
dbdimp.c: In function ‘mysql_describe’:
dbdimp.c:3252: warning: assignment from incompatible pointer type
dbdimp.c: In function ‘mysql_describe’:
dbdimp.c:3252: warning: assignment from incompatible pointer type
dbdimp.c: In function ‘alloc_param’:
dbdimp.c:112: warning: comparison is always false due to limited 
range of data type
dbdimp.c: In function ‘alloc_bind’:
dbdimp.c:130: warning: comparison is always false due to limited 
range of data type
dbdimp.c: In function ‘alloc_fbind’:
dbdimp.c:146: warning: comparison is always false due to limited 
range of data type
dbdimp.c: In function ‘alloc_fbuffer’:
dbdimp.c:161: warning: comparison is always false due to limited 
range of data type
dbdimp.c: In function ‘mysql_describe’:
dbdimp.c:3252: warning: assignment from incompatible pointer type
dbdimp.c: In function ‘mysql_describe’:
dbdimp.c:3252: warning: assignment from incompatible pointer type
cc -c  -I/Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBI 
-arch i386 -arch ppc -arch ppc64 -arch x86_64 
-I/usr/local/mysql/include -Os -fno-common 
-DDBD_MYSQL_INSERT_ID_IS_GOOD -g  -arch i386 -arch ppc -arch 
ppc64 -arch x86_64 -g -pipe -fno-common -DPERL_DARWIN 
-no-cpp-precomp -fno-strict-aliasing 
-Wdeclaration-after-statement -I/usr/local/include -O3   
-DVERSION=\"4.006\" -DXS_VERSION=\"4.006\"  
"-I/System/Library/Perl/5.8.8/darwin-thread-multi-2level/CORE"   mysql.c
mysql.xs: In function ‘XS_DBD__mysql__db_do’:
mysql.xs:315: warning: comparison is always false due to limited 
range of data type
mysql.xs:316: warning: comparison is always false due to limited 
range of data type
mysql.xs: In function ‘XS_DBD__mysql__db_do’:
mysql.xs:315: warning: comparison is always false due to limited 
range of data type
mysql.xs:316: warning: comparison is always false due to limited 
range of data type

I think those are just warnings though and not related the 
problems I'm having.


The show-stopper is the make test stage when I get errors such as:

PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" 
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00base................1/5 install_driver(mysql) failed: Can't 
load 
'/Users/charlie/.cpan/build/DBD-mysql-4.006-Pcd0BT/blib/arch/auto/DBD/mysql/mysql.bundle' 
for module DBD::mysql: 
dlopen(/Users/charlie/.cpan/build/DBD-mysql-4.006-Pcd0BT/blib/arch/auto/DBD/mysql/mysql.bundle, 
2): Symbol not found: _is_prefix
   Referenced from: /Users/charlie/.cpan/build/DBD-mysql-4.006-Pcd0BT/blib/arch/auto/DBD/mysql/mysql.bundle
   Expected in: dynamic lookup
  at (eval 3) line 3
Compilation failed in require at (eval 3) line 3.
Perhaps a required shared library or dll isn't installed where expected
  at t/00base.t line 38
t/00base................ Dubious, test returned 2 (wstat 512, 0x200)
  Failed 2/5 subtests


I am wanting to go with 64-bit installs of perl modules based on 
comments I've read about compatibility issues with the default 
32-bit module installs and the 64-bit apache (& mod_perl) that 
comes with Leopard. I'm happy to roll my own 
perl/mod_perl/apache if needed. But I'd prefer to use the OS 
versions if possible.

Suggestions on getting a successful install of DBD::mysql on 
Leopard would be much appreciated.

Thanks,
Charlie

-- 
    Charlie Garrison  <[email protected]>
    PO Box 141, Windsor, NSW 2756, Australia

O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
http://www.ietf.org/rfc/rfc1855.txt
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.