HELP!
I really need someone to help me on this.
After reading Tim Bunce's readme for DBI, which
states that:
"If you get an error like "fatal: relocation
error: symbol not found: ..."
do not use GNU as or GNU ld on Solaris. Delete or
rename them, they are just bad news."
I've verified that gcc is not using GNU ld. Can
someone offer a suggestion.
---- "Sterin, Ilya" <[EMAIL PROTECTED]> wrote:
> What is Merant is that the distributor of you ODBC
for *NIX software. Do
> you have third party ODBC libs installed.
>
> Ilya
>
> -----Original Message-----
> From: Farouk Khawaja
> To: [EMAIL PROTECTED]
> Sent: 7/12/01 2:50 PM
> Subject: Compile problems with DBD::ODBC
>
>
> Environment:
> Solaris 2.7
> Perl v5.6
> Dirver Manager: Merant
> DBI v1.18
> DBD-ODBC v0.28
>
> I'm having problems compiling DBD::ODBC. DBI
> compiled fine. I'm sorry if this has been
discussed
> before, but I couldn't locate an answer.
>
> Below is the output from make. "make test"
complains
> about a missing shared library. I don't have
> llibdbodbc.so anywhere on my system.
>
> Can someone tell if if this missing library is
> *really* the problem or am I doing something
wrong?
> If the problem is this missing library, can someone
> direct me to where I can find it?
>
>
> ################ BEGIN COMPILE DUMP ###############
> perl Makefile.PL
> Unrecognized escape \i passed through at
Makefile.PL
> line 217.
>
> Configuring DBD::ODBC ...
>
> >>> Remember to actually *READ* the README file!
> And re-read it if you have any problems.
>
> Using DBI 1.18 installed in
> /usr/local/lib/perl5/site_perl/5.6.0/sun4-
> solaris/auto/DBI
> Using ODBC in /opt/odbc
>
> Umm, this looks like a unixodbc type of driver
> manager.
> We expect to find the sql.h, sqlext.h and (which
were
> supplied with unixODBC) in $ODBCHOME/include
> directory alongside
>
the /opt/odbc/lib/libdbodbc.so /opt/odbc/lib/liblsxodb
> c.so
> /opt/odbc/lib/libodbc.so /opt/odbc/lib/libodbcinst.s
o
> /opt/odbc/lib/llibdbodbc.so /opt/odbc/lib/odbccurs.s
o
> /opt/odbc/lib/odbctrac.so library. in $ODBCHOME/lib
>
>
> Checking if your kit is complete...
> Looks good
> Note (probably harmless): No library found for -
> llibdbodbc.so
> Using DBI 1.18 installed in
> /usr/local/lib/perl5/site_perl/5.6.0/sun4-
> solaris/auto/DBI
> Writing Makefile for DBD::ODBC
>
> The DBD::ODBC tests will use these values for the
> database connection:
> DBI_DSN=dbi:ODBC:SUNODBC e.g.
> dbi:ODBC:demo
> DBI_USER=xxxxxxx
> DBI_PASS=xxxxxxx
>
> make
> gcc -c -I. -
> I/usr/local/lib/perl5/site_perl/5.6.0/sun4-
> solaris/auto/DBI
> -fno-strict-aliasing -I/usr/local/include -
> D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"0.28\" -
> DXS_VERSION=\"0.28\"
> -fPIC -I/usr/local/lib/perl5/5.6.0/sun4-
solaris/CORE -
> I/opt/odbc/include
> ODBC.c
> gcc -c -I. -
> I/usr/local/lib/perl5/site_perl/5.6.0/sun4-
> solaris/auto/DBI
> -fno-strict-aliasing -I/usr/local/include -
> D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"0.28\" -
> DXS_VERSION=\"0.28\"
> -fPIC -I/usr/local/lib/perl5/5.6.0/sun4-
solaris/CORE -
> I/opt/odbc/include
> dbdimp.c
> Running Mkbootstrap for DBD::ODBC ()
> chmod 644 ODBC.bs
> LD_RUN_PATH="" gcc -o
> blib/arch/auto/DBD/ODBC/ODBC.so -G
> -L/usr/local/lib ODBC.o dbdimp.o
> chmod 755 blib/arch/auto/DBD/ODBC/ODBC.so
> cp ODBC.bs blib/arch/auto/DBD/ODBC/ODBC.bs
> chmod 644 blib/arch/auto/DBD/ODBC/ODBC.bs
> Manifying blib/man3/DBD::ODBC.3
>
> make test TEST_VERBOSE=1
> PERL_DL_NONLAZY=1 /bin/perl -Iblib/arch -Iblib/lib
> -I/usr/local/lib/perl5/5.6.0/sun4-solaris -
> I/usr/local/lib/perl5/5.6.0
> -e 'use Test::Harness qw(&runtests $verbose);
> $verbose=1; runtests
> @ARGV;' t/*.t
> t/01base............install_driver(ODBC) failed:
> Can't load
> 'blib/arch/auto/DBD/ODBC/ODBC.so' for module
> DBD::ODBC: ld.so.1:
> /bin/perl: fatal: relocation error: file
> blib/arch/auto/DBD/ODBC/ODBC.so: symbol
> SQLGetFunctions: referenced
> symbol not found at
> /usr/local/lib/perl5/5.6.0/sun4-
solaris/DynaLoader.pm
> line 200.
> 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/01base.t line 14
> 1..5
> ok 1
> ok 2
> ok 3
> dubious
> Test returned status 255 (wstat 65280,
0xff00)
> DIED. FAILED tests 4-5
> Failed 2/5 tests, 60.00% okay
> t/02simple..........1..14
> ok 1
> Test 2: connecting to the database
> install_driver(ODBC) failed: Can't load
> 'blib/arch/auto/DBD/ODBC/ODBC.so' for module
> DBD::ODBC: ld.so.1:
> /bin/perl: fatal: relocation error: file
> blib/arch/auto/DBD/ODBC/ODBC.so: symbol
> SQLGetFunctions: referenced
> symbol not found at
> /usr/local/lib/perl5/5.6.0/sun4-
solaris/DynaLoader.pm
> line 200.
> 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/02simple.t line 16
> dubious
> Test returned status 255 (wstat 65280,
0xff00)
> DIED. FAILED tests 2-14
> Failed 13/14 tests, 7.14% okay
> t/03dbatt...........1..6
> ok 1
> install_driver(ODBC) failed: Can't load
> 'blib/arch/auto/DBD/ODBC/ODBC.so' for module
> DBD::ODBC: ld.so.1:
> /bin/perl: fatal: relocation error: file
> blib/arch/auto/DBD/ODBC/ODBC.so: symbol
> SQLGetFunctions: referenced
> symbol not found at
> /usr/local/lib/perl5/5.6.0/sun4-
solaris/DynaLoader.pm
> line 200.
> 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/03dbatt.t line 12
> dubious
> Test returned status 255 (wstat 65280,
0xff00)
> DIED. FAILED tests 2-6
> Failed 5/6 tests, 16.67% okay
> t/05meth............1..6
> ok 1
> install_driver(ODBC) failed: Can't load
> 'blib/arch/auto/DBD/ODBC/ODBC.so' for module
> DBD::ODBC: ld.so.1:
> /bin/perl: fatal: relocation error: file
> blib/arch/auto/DBD/ODBC/ODBC.so: symbol
> SQLGetFunctions: referenced
> symbol not found at
> /usr/local/lib/perl5/5.6.0/sun4-
solaris/DynaLoader.pm
> line 200.
> 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/05meth.t line 13
> dubious
> Test returned status 255 (wstat 65280,
0xff00)
> DIED. FAILED tests 2-6
> Failed 5/6 tests, 16.67% okay
> t/09bind............1..9
> ok 1
> Test 2: connecting to the database
> install_driver(ODBC) failed: Can't load
> 'blib/arch/auto/DBD/ODBC/ODBC.so' for module
> DBD::ODBC: ld.so.1:
> /bin/perl: fatal: relocation error: file
> blib/arch/auto/DBD/ODBC/ODBC.so: symbol
> SQLGetFunctions: referenced
> symbol not found at
> /usr/local/lib/perl5/5.6.0/sun4-
solaris/DynaLoader.pm
> line 200.
> 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/09bind.t line 11
> dubious
> Test returned status 255 (wstat 65280,
0xff00)
> DIED. FAILED tests 2-9
> Failed 8/9 tests, 11.11% okay
> Failed Test Status Wstat Total Fail Failed List
of
> failed
> ----------------------------------------------------
--
> -------------------------
>
> t/01base.t 255 65280 5 2 40.00% 4-5
> t/02simple.t 255 65280 14 13 92.86% 2-14
> t/03dbatt.t 255 65280 6 5 83.33% 2-6
> t/05meth.t 255 65280 6 5 83.33% 2-6
> t/09bind.t 255 65280 9 8 88.89% 2-9
> Failed 5/5 test scripts, 0.00% okay. 33/40 subtests
> failed, 17.50% okay.
>
> make: *** [test_dynamic] Error 2
>
>
> ############### LINE ~200 FROM DynaLoader.pm
> ##############
> # 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());
>
>