8 messages in com.mysql.lists.perlRe: Situation when testing Msql-Mysql...
FromSent OnAttachments
Mark Nickel18 Jun 1999 13:59 
Jochen Wiedmann21 Jun 1999 00:53 
Jochen Wiedmann21 Jun 1999 01:16 
Mark Nickel22 Jun 1999 08:57 
Mark Nickel22 Jun 1999 13:58 
Richard Spangenberg22 Jun 1999 14:12 
Jochen Wiedmann25 Jun 1999 01:25 
Jochen Wiedmann25 Jun 1999 09:37 
Subject:Re: Situation when testing Msql-Mysql-Modules under HP-UX
From:Jochen Wiedmann (jo@ispsoft.de)
Date:06/21/1999 12:53:38 AM
List:com.mysql.lists.perl

(This reply applies both to Mark and Stevens questions.)

Mark Nickel wrote:

t/00base............dubious Test returned status 215 (wstat 55040, 0xd700) DIED. FAILED tests 4-5 /usr/lib/dld.sl: Unresolved symbol: __udivdi3 (code) from /usr/local/lib/libmys qlclient.sl.6 install_driver(mysql) failed: Can't load '../blib/arch/auto/DBD/mysql/mysql.sl' for module DBD::mysql: Unresolved external at /opt/perl5/lib/5.00502/PA-RISC1.1/ DynaLoader.pm line 168.

From the README:

KNOWN PROBLEMS 1.) If the MySQL binaries are compiled with gcc or egcs (as the precompiled binaries are), but your Perl is using another compiler, it is likely that you receive an error message like the following when running "make test":

t/00base............install_driver(mysql) failed: Can't load '../blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ../blib/arch/auto/DBD/mysql/mysql.so: undefined symbol: _umoddi3 at /usr/local/perl-5.005/lib/5.005/i586-linux-thread/DynaLoader.pm line 168.

This means, that your linker doesn't include libgcc.a. You have the following options:

a) Either recompile Perl or Mysql, it doesn't matter which. The important thing is that you use the same compiler for both. This is definitely the recommended solution in the long term.

b) A simple workaround is to include libgcc.a manually. Do a "make clean" and "make" and in the output wait for a line like

LD_RUN_PATH="/usr/lib/mysql:/lib" egcs -o ../blib/arch/auto/DBD/mysql/mysql.so -shared -L/usr/local/lib dbdimp.o mysql.o -L/usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lm

Repeat the same line in the shell by adding

-L/usr/lib/gcc-lib/i386-redhat-linux/gcc-2.7.2.3 -lgcc

where the directory is the location of libgcc.a. The best choice for locating this file is executing

gcc --print-libgcc-file

or

gcc -v