Databases
cancel
Showing results for 
Search instead for 
Did you mean: 

Oracle libraries for Perl DBD::Oracle

Sweth Chandramouli_1
Occasional Visitor

Oracle libraries for Perl DBD::Oracle

I'm trying to get Perl DBD::Oracle running on an N-class server running 64-bit HP-UX 11.00, with the 64-bit version of Perl 5.8.0 (bundled with DBI) that Merijn Brand has at <>.

Because this is on a headless system and recent versions of Oracle all require a console for installation, I copied over the relevant Oracle libraries from another HP-UX box and linked DBD::Oracle against them, which I've done successfully in the past.

The compilation/linking of DBD::Oracle appeared to go smoothly, and no errors were returned; I also copied over the sqlplus binary to this machine, and that is able to connect fine to other DBs. When I attempt to do a connect() call from within Perl, however, I get a coredump.

I sent a stack trace from the coredump to the creator of the Perl DBI (Tim Bunce), who said that it indicated that the problem was somewhere in the linking of DBD::Oracle against the Oracle libraries; I'm now trying to figure out just what that problem might be. One thing that occurs to me is that the system from which I copied the libraries was a 32-bit OS, whereas the current machine is a 64-bit one, so there might be some issues there; if 64-bit libraries were needed, though, I would expect my compiler to complain when I'm building the DBD::Oracle module, which it doesn't.

Has anyone run into an issue like this before? Is there anyone with a lot of familiarity with the differences between libraries for various versions of Oracle who might be able to offer some advice on things to try?

TIA,

Sweth.
6 REPLIES
Sweth Chandramouli_1
Occasional Visitor

Re: Oracle libraries for Perl DBD::Oracle

Oops, typo: that should be a 32-bit Perl 5.8.0, not 64-bit. (That is:

$ file `which perl`
/usr/bin/perl: PA-RISC2.0 shared executable dynamically linked -not stripped
).
vas bolpali
Advisor

Re: Oracle libraries for Perl DBD::Oracle

Sweth,
not sure , this will solve the issue.

You may have to relink all the oracle libraries with relink command .

$ORACLE_HOME/bin/relink all


It should finish with out
any errors. if errors exists
you may need to adjust your kernal .


Vasu.
keeping you ahead of the learning curve
H.Merijn Brand (procura
Honored Contributor

Re: Oracle libraries for Perl DBD::Oracle

No, it's the wrong perl I guess.

If you installed my perl correctly, which perl should say /opt/perl/bin/perl or /opt/perl64/bin/perl

Enjoy, have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Sweth Chandramouli_1
Occasional Visitor

Re: Oracle libraries for Perl DBD::Oracle

I'll try the relink command; is that anything like manually running a "make -f ins_rdbms.mk ioracle" in the rdbms/lib directory?

WRT it being the wrong (non-Merijn) version of Perl, it's the right version (/opt/perl/bin/perl); I simply symlinked that to /usr/bin/perl because so many scripts expect perl to be located there, so the /usr/bin/perl was found first in my path. It's definitely the Merijn version, though.
Sweth Chandramouli_1
Occasional Visitor

Re: Oracle libraries for Perl DBD::Oracle

OK, I copied over a full install of Oracle 8.1.6 to this box, since the libs that I had copied over previously were for a different rev that it occurred to me wasn't on the officially-tested list for DBD::Oracle. When I do a "perl Makefile.PL; make", however, the make fails with the error

/usr/bin/ld: Unrecognized argument: -Wl,+s

I thought that the "-Wl," syntax was used for flags given to gcc to pass off to ld; does ld itself support that syntax, too?
H.Merijn Brand (procura
Honored Contributor

Re: Oracle libraries for Perl DBD::Oracle

no, it does not, because it is always the last command in a chain, it never has to pass any options.

Issue the command by hand, and change -Wl,+s to +s

Enjoy, have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn