Sigh....
First, I apologize for the length of this post, but I figured I needed to put everything out in the open to prevent multiple rounds of "did you do this?" questions.
I've lost count of the number of times I have installed/removed/rebuilt mysql on a Solaris 9 box and still cannot get DBD::mysql to work. I originally installed the binary from the Freeware for Solaris site [1], but it didn't work. I then installed the binary from a mysql.com mirror, but it also failed. I then built it from source, but the -m64 option bit me, so I rebuilt mysql from source without the -m64, but still can't get DBD::mysql to past a "make test".
[1]
http://mirror.sprintlink.net/sunfreeware.com/
I've searched all the various zones, tried tons of different options, but keep ending up in the same place.
Clues, hints and even flames are welcome... just point me to what I am doing wrong.... Please!
Gory details follow;
# /usr/local/mysql/bin/mysql_config --libs
-L/usr/local/mysql/lib/mysql -lmysqlclient -lposix4 -lcrypt -lgen -lsocket -lnsl -lm -lz
# mysql --version
mysql Ver 14.7 Distrib 4.1.7, for sun-solaris2.9 (sparc)
# perl --version
This is perl, v5.8.5 built for sun4-solaris
[binary install from SunFreeware site - Both perl-5.8.5-sol9-sparc-local and perl_s-5.8.5-sol9-sparc-local are installed]
----- config -----
[DBD-mysql-2.9004]# perl Makefile.PL --libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -lposix4 -lcrypt -lgen -lsocket -lnsl -lm -L/usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.2 -lgcc"
I will use the following settings for compiling and testing:
cflags (mysql_config) = -I/usr/local/mysql/include/mysql -fno-omit-frame-pointer
libs (Users choice) = -L/usr/local/mysql/lib/mysql -lmysqlclient -lposix4 -lcrypt -lgen -lsocket -lnsl -lm -L/usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.2 -lgcc
nocatchstderr (default ) = 0
nofoundrows (default ) = 0
ssl (guessed ) = 0
testdb (default ) = test
testhost (default ) =
testpassword (default ) =
testuser (default ) =
To change these settings, see 'perl Makefile.PL --help' and
'perldoc INSTALL'.
Using DBI 1.46 (for perl 5.008005 on sun4-solaris) installed in /usr/local/lib/perl5/site_perl/5.8.5/sun4-solaris/auto/DBI/
Writing Makefile for DBD::mysql
[DBD-mysql-2.9004]#
-------------------
No obvious errors
----- make -----
[DBD-mysql-2.9004]# make
cp lib/DBD/mysql.pm blib/lib/DBD/mysql.pm
cp lib/DBD/mysql/GetInfo.pm blib/lib/DBD/mysql/GetInfo.pm
cp lib/Mysql.pm blib/lib/Mysql.pm
cp lib/DBD/mysql/INSTALL.pod blib/lib/DBD/mysql/INSTALL.pod
cp lib/Mysql/Statement.pm blib/lib/Mysql/Statement.pm
cp lib/Bundle/DBD/mysql.pm blib/lib/Bundle/DBD/mysql.pm
gcc -B/usr/ccs/bin/ -c -I/usr/local/lib/perl5/site_perl/5.8.5/sun4-solaris/auto/DBI/ -I/usr/local/mysql/include/mysql -fno-omit-frame-pointer -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/gnu/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"2.9004\" -DXS_VERSION=\"2.9004\" -fPIC "-I/usr/local/lib/perl5/5.8.5/sun4-solaris/CORE" dbdimp.c
/usr/local/bin/perl -p -e "s/~DRIVER~/mysql/g" /usr/local/lib/perl5/site_perl/5.8.5/sun4-solaris/auto/DBI//Driver.xst > mysql.xsi
/usr/local/bin/perl /usr/local/lib/perl5/5.8.5/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.8.5/ExtUtils/typemap mysql.xs > mysql.xsc && mv mysql.xsc mysql.c
Warning: duplicate function definition 'do' detected in mysql.xs, line 196
Warning: duplicate function definition 'rows' detected in mysql.xs, line 294
gcc -B/usr/ccs/bin/ -c -I/usr/local/lib/perl5/site_perl/5.8.5/sun4-solaris/auto/DBI/ -I/usr/local/mysql/include/mysql -fno-omit-frame-pointer -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/gnu/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"2.9004\" -DXS_VERSION=\"2.9004\" -fPIC "-I/usr/local/lib/perl5/5.8.5/sun4-solaris/CORE" mysql.c
Running Mkbootstrap for DBD::mysql ()
chmod 644 mysql.bs
rm -f blib/arch/auto/DBD/mysql/mysql.so
LD_RUN_PATH="/usr/local/lib:/usr/lib" /usr/local/bin/perl myld gcc -B/usr/ccs/bin/ -G -L/usr/local/lib -L/opt/gnu/lib dbdimp.o mysql.o -o blib/arch/auto/DBD/mysql/mysql.so -L/usr/local/mysql/lib -lmysqlclient -lposix4 -lcrypt -lgen -lsocket -lnsl -lm -L/usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.2 -lgcc
chmod 755 blib/arch/auto/DBD/mysql/mysql.so
cp mysql.bs blib/arch/auto/DBD/mysql/mysql.bs
chmod 644 blib/arch/auto/DBD/mysql/mysql.bs
Manifying blib/man3/DBD::mysql.3
Manifying blib/man3/DBD::mysql::INSTALL.3
Manifying blib/man3/Mysql.3
Manifying blib/man3/Bundle::DBD::mysql.3
[DBD-mysql-2.9004]#
-------------------
Again, no obvious errors, other than two warnings that I have seen in every post on this subject.
Warning: duplicate function definition 'do' detected in mysql.xs, line 196
Warning: duplicate function definition 'rows' detected in mysql.xs, line 294
Then everything dies....
----- make test -----
[DBD-mysql-2.9004]# make test
PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00base...........install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) 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 status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 4-5
Failed 2/5 tests, 60.00% okay
t/10dsnlist........install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/10dsnlist.t line 45
t/10dsnlist........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-9
Failed 9/9 tests, 0.00% okay
t/20createdrop.....install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/20createdrop.t line 45
t/20createdrop.....dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-5
Failed 5/5 tests, 0.00% okay
t/30insertfetch....install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/30insertfetch.t line 48
t/30insertfetch....dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-11
Failed 11/11 tests, 0.00% okay
t/40bindparam......install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
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/40bindparam.t line 64
t/40bindparam......dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-28
Failed 28/28 tests, 0.00% okay
t/40blobs..........install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/40blobs.t line 68
t/40blobs..........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-11
Failed 11/11 tests, 0.00% okay
t/40listfields.....install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/40listfields.t line 57
t/40listfields.....dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-18
Failed 18/18 tests, 0.00% okay
t/40nulls..........install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/40nulls.t line 50
t/40nulls..........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-11
Failed 11/11 tests, 0.00% okay
t/40numrows........install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/40numrows.t line 59
t/40numrows........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-25
Failed 25/25 tests, 0.00% okay
t/50chopblanks.....install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/50chopblanks.t line 57
t/50chopblanks.....dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-35
Failed 35/35 tests, 0.00% okay
t/50commit.........install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/50commit.t line 64
t/50commit.........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-30
Failed 30/30 tests, 0.00% okay
t/60leaks..........skipped
all skipped: $ENV{SLOW_TESTS} is not set or Proc::ProcessTable not installed
t/ak-dbd...........install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/ak-dbd.t line 59
t/ak-dbd...........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-90
Failed 90/90 tests, 0.00% okay
t/akmisc...........Had to create DBD::mysql::dr::imp_data_size unexpectedly at /usr/local/lib/perl5/site_perl/5.8.5/sun4-solaris/DBI.pm line 1161.
Use of uninitialized value in subroutine entry at /usr/local/lib/perl5/site_perl/5.8.5/sun4-solaris/DBI.pm line 1161.
Can't locate object method "connect" via package "Mysql" at /root/.cpan/build/DBD-mysql-2.9004/blib/lib/Mysql.pm line 71.
t/akmisc...........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-351
Failed 351/351 tests, 0.00% okay
t/dbdadmin.........install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/dbdadmin.t line 74
t/dbdadmin.........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-21
Failed 21/21 tests, 0.00% okay
t/insertid.........install_driver(mysql) failed: Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/insertid.t line 13
t/insertid.........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-12
Failed 12/12 tests, 0.00% okay
t/mysql............Can't load '/root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: /usr/local/bin/perl: fatal: relocation error: file /root/.cpan/build/DBD-mysql-2.9004/blib/arch/auto/DBD/mysql/mysql.so: symbol mysql_get_parameters: referenced symbol not found at /usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
at /root/.cpan/build/DBD-mysql-2.9004/blib/lib/Mysql.pm line 13
Compilation failed in require at /root/.cpan/build/DBD-mysql-2.9004/blib/lib/Mysql.pm line 13.
Compilation failed in require at t/mysql.t line 34.
BEGIN failed--compilation aborted at t/mysql.t line 34.
t/mysql............dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-68
Failed 68/68 tests, 0.00% okay
t/mysql2...........Had to create DBD::mysql::dr::imp_data_size unexpectedly at /usr/local/lib/perl5/site_perl/5.8.5/sun4-solaris/DBI.pm line 1161.
Use of uninitialized value in subroutine entry at /usr/local/lib/perl5/site_perl/5.8.5/sun4-solaris/DBI.pm line 1161.
Can't locate object method "connect" via package "Mysql" at /root/.cpan/build/DBD-mysql-2.9004/blib/lib/Mysql.pm line 71.
t/mysql2...........dubious
Test returned status 255 (wstat 65280, 0xff00)
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/00base.t 255 65280 5 4 80.00% 4-5
t/10dsnlist.t 255 65280 9 18 200.00% 1-9
t/20createdrop.t 255 65280 5 10 200.00% 1-5
t/30insertfetch.t 255 65280 11 22 200.00% 1-11
t/40bindparam.t 255 65280 28 56 200.00% 1-28
t/40blobs.t 255 65280 11 22 200.00% 1-11
t/40listfields.t 255 65280 18 36 200.00% 1-18
t/40nulls.t 255 65280 11 22 200.00% 1-11
t/40numrows.t 255 65280 25 50 200.00% 1-25
t/50chopblanks.t 255 65280 35 70 200.00% 1-35
t/50commit.t 255 65280 30 60 200.00% 1-30
t/ak-dbd.t 255 65280 90 180 200.00% 1-90
t/akmisc.t 255 65280 351 702 200.00% 1-351
t/dbdadmin.t 255 65280 21 42 200.00% 1-21
t/insertid.t 255 65280 12 24 200.00% 1-12
t/mysql.t 255 65280 68 136 200.00% 1-68
t/mysql2.t 255 65280 ?? ?? % ??
1 test skipped.
Failed 17/18 test scripts, 5.56% okay. 727/730 subtests failed, 0.41% okay.
make: *** [test_dynamic] Error 2
[DBD-mysql-2.9004]#