Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
General
GeneralPortable MacsHardwareNetworking
Applications
Mac ApplicationsEudoraFirefox / MozillaInternet ExplorerOutlook ExpressMS OfficeEntourageExcelPowerPointWordVirtual PCMedia PlayerOther MS Products
Programming
Mac ProgrammingCodeWarriorPerl
Country Specific
Australian Mac GroupUK Mac Group

Mac Forum / Programming / Perl / January 2008



Tip: Looking for answers? Try searching our database.

Installing DBD::mysql on Leopard

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Charlie Garrison - 29 Dec 2007 01:19 GMT
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

Signature

   Charlie Garrison  <garrison@zeta.org.au>
   PO Box 141, Windsor, NSW 2756, Australia

O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
http://www.ietf.org/rfc/rfc1855.txt

David Watts - 09 Jan 2008 22:55 GMT
Hi Charlie,

I had the same problem on both Tiger and Leopard.  It seems that the  
newer mysql builds have moved
some of the libraries and the config files haven't caught up.

The article/blog that helped me is:

http://jayallen.org/journey/2006/04/dbd-mysql-build-problems-on-mac-book-pro

The simplest solution for me is towards the end in the comments  
mentioning creating links
from where it thinks it should be to the new location, the solution  
that I used.
ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql

ln -s /usr/local/mysql/include /usr/local/mysql/include/mysql

(use sudo as needed)

Your mileage may vary so read all the comments, there are several  
different

solutions that you could also use at compile time.

Good Luck

> Good afternoon,
>
[quoted text clipped - 104 lines]
> Thanks,
> Charlie
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.