Hi,
         I'm having trouble building the DBD::DB2 driver (v0.75), in 
Turbolinux server 6.5, using DB2 V7.1 (Enterprise Edition for Linux, with 
Application Client stuff selected), DBI v1.19, and perl 5.00503.

A quick summary of my problem is this error message during an attempt to 
connect a database handle:-

"perl: error in loading shared libraries: 
/usr/lib/perl5/site_perl/5.005/i386-linux/auto/DBD/DB2/DB2.so: undefined 
symbol: SQLAllocHandle"

The installation went fine in the Makefile.PL and "make" stages, but "make 
test" gave this feedback:
[root@ns2 DBD-DB2-0.75]# make test
make[1]: Entering directory `/tmp/DBD-DB2-0.75/Constants'
make[1]: Leaving directory `/tmp/DBD-DB2-0.75/Constants'
PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib 
-I/usr/lib/perl5/5.00503/i386-linux -I/usr/lib/perl5/5.00503 -e 'use 
Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
t/base..............install_driver(DB2) failed: Can't load 
'blib/arch/auto/DBD/DB2/DB2.so' for module DBD::DB2: 
blib/arch/auto/DBD/DB2/DB2.so: undefined symbol: SQLTables at 
/usr/lib/perl5/5.00503/i386-linux/DynaLoader.pm line 169.

  at (eval 1) line 3
Perhaps a required shared library or dll isn't installed where expected
  at t/base.t line 16
dubious
         Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 4-5
         Failed 2/5 tests, 60.00% okay
t/main..............ok
Failed Test  Status Wstat Total Fail  Failed  List of failed
------------------------------------------------------------------------------- 

t/base.t        255 65280     5    2  40.00%  4-5
Failed 1/2 test scripts, 50.00% okay. 2/6 subtests failed, 66.67% okay.
make: *** [test_dynamic] Error 29

When i investigate the DynaLoader.pm file at the error line mentioned, I 
found this potentially enlightening message:
     ...
     # Many dynamic extension loading problems will appear to come from
     # this section of code: XYZ failed at line 123 of DynaLoader.pm.
     # Often these errors are actually occurring in the initialisation
     # C code of the extension XS file. Perl reports the error as being
     # in this perl code simply because this was the last perl code
     # it executed.

     my $libref = dl_load_file($file, $module->dl_load_flags) or
         croak("Can't load '$file' for module $module: ".dl_error()."\n");
     ...

But, I'm not a c coder so I don't know what to do about this.

If someone knows any special trick I should use (eg. compiling from a 
special directory, being a particular user, etc.) I'd very much appreciate 
the help- I've invested months setting up a new server especially to test 
DB2, and now I can't achieve the one goal I had in mind.

Yours,

Akira

Reply via email to