Home  |  Linux  | Mysql  | PHP  | XML
Date:Thu Aug  9 02:51:10 2001
Subject:RE: Failed build attempt for Oracle-OCI-0.04
The Oracle::OCI link command is:

LD_RUN_PATH="" ld -o blib/arch/auto/Oracle/OCI/OCI.so -shared
-expect_unresolved "*" -O4 -msym -std -s -L/usr/local/lib -all tmp.a -none
-L/u01/app/oracle/product/8.1.7/lib/
-L/u01/app/oracle/product/8.1.7/rdbms/lib/ -lclntsh -lc

I tried to removed the unresolved symbols as suggested- eventually adding
the following to oci_skip:

CollIsLocator => "mtf",
Terminate => "mtf",
FEnvCreate => "mtf",
TransMultiPrepare => "mtf",
LobGetChunkSize => "mtf",
LobIsOpen => "mtf",
LobIsTemporary => "mtf",
LobLoadFromFile => "mtf",
LobLocatorAssign => "mtf",
LobWriteAppend => "mtf",
Reset => "mtf",
ServerRelease => "mtf",

I now get problems with barewords:

[foxm(8.1.7:dwhx01) /u02/devel/src/cpan/modules2/Oracle-OCI-0.04/Oracle/OCI]
make test
PERL_DL_NONLAZY=1 /usr/users/foxm/bin/perl -Iblib/arch -Iblib/lib
-I/usr/users/foxm/lib/perl5/5.6.0/alpha-dec_osf
-I/usr/users/foxm/lib/perl5/5.6.0 -e 'use Test::Harness qw(&runtests
$verbose); $verbose=0; runtests @ARGV;' t/*.t
t/01base............Bareword "OCI_CRED_RDBMS" not allowed while "strict
subs" in use at t/01base.t line 96.
Bareword "OCI_HTYPE_ENV" not allowed while "strict subs" in use at
t/01base.t line 102.
Execution of t/01base.t aborted due to compilation errors.
t/01base............dubious

Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-35
Failed 35/35 tests, 0.00% okay
t/05dbi.............Bareword "OCI_HTYPE_ENV" not allowed while "strict subs"
in use at t/05dbi.t line 31.
Execution of t/05dbi.t aborted due to compilation errors.
t/05dbi.............dubious

Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-50
Failed 50/50 tests, 0.00% okay
Failed Test Status Wstat Total Fail Failed List of failed
----------------------------------------------------------------------------
---
t/01base.t 2 512 35 35 100.00% 1-35
t/05dbi.t 2 512 50 50 100.00% 1-50
Failed 2/2 test scripts, 0.00% okay. 85/85 subtests failed, 0.00% okay.
*** Exit 2
Stop.

-----Original Message-----
From: Tim Bunce [mailto:Tim.Bunce@pobox.com]
Sent: Wednesday, August 08, 2001 9:18 PM
To: Fox, Michael
Cc: 'oracle-oci@perl.org'
Subject: Re: Failed build attempt for Oracle-OCI-0.04


On Wed, Aug 08, 2001 at 05:31:21PM +1000, Fox, Michael wrote:
> OK.
> First I reported it incorrectly, when I went back to DBD::Oracle I found
> that it had not built correctly at all, and had the same problem as the
OCI
> build (upioep unresolved). Tim then announced DBD::Oracle 1.08, so I
> switched to that.
>
> The "Discovering Oracle OCI build rules..." section of Makefile.PL failed,
> whereas it hadn't on previous versions of Oracle, so I investigated that.
> As I understand it, by setting ECHODO=true you get the command the
makefile
> would have generated, then dissect that. The demo_rdbms.mk files are
quite
> different in Oracle 8.0.4 and 8.1.7 (59 diffs). One is that the build
> option no longer includes the ${ECHODO} part, so the fake make issues an
> error and the build discovery fails.

"Drat and double drat"!

> I made a copy of the demo directory, put in the ${ECHODO} against the
build:
> part of the makefile, and included this directory in the search path in
> Makefile.PL. The build discovery now worked, DBD::Oracle built OK, and
the
> tests all passed (I think - output below).

(Good, but hardly practical for the average Joe :-)

> I then went back to the OCI build, and got a different error:
>
> t/01base............Can't load 'blib/arch/auto/Oracle/OCI/OCI.so' for
module
> Oracle::OCI: dlopen: blib/arch/auto/Oracle/OCI/OCI.so:
> symbol "OCICollIsLocator" unresolved at
> /usr/users/foxm/lib/perl5/5.6.0/alpha-dec_osf/DynaLoader.pm line 200.
> at t/01base.t line 8
>
> I then returned to Tim's original advice and searched used Makefile.PL -s
> "OCICollIsLocator". It produced (the interesting bits?):
>
> searching oracle lib/libclntst8.a ...
> OCICollIsLocator | 0000000000108144 | T | 0000000000000008
> searching oracle lib/libgeneric8.a ...
> OCICollIsLocator | 0000000000108144 | T | 0000000000000008
> searching oracle lib/libclntsh.so ...
> OCICollIsLocator | 0004396970517280 | T | 0000000000000008
> searching oracle lib/libnjni8.so ...
> OCICollIsLocator | 0004396970564096 | T | 0000000000000008
> searching oracle lib/libocijdbc8.so ...
> OCICollIsLocator | 0004396970912256 | T | 0000000000000008
> searching oracle lib/libocijdbc8_g.so ...
> OCICollIsLocator | 0004396964230048 | T | 0000000000000008
>
> I'm not to sure where to go from here?

Well, that seems to imply that the OCICollIsLocator symbol is defined in
the libclntsh.so library - so I'm not sure what the problem is there.

Can you try adding 'CollIsLocator' to the oci_ignore section in the
boot script and then see if it's okay or some other symbol is then
reported as the problem.

Either way, please include in your next email the Oracle::OCI link
command that's used to create the Oracle/OCI.so file.

Thanks.

Tim.
CAUTION

This e-mail and any files transmitted with it are privileged and confidential information intended for the use of the addressee. The confidentiality and/or privilege in this e-mail is not waived, lost or destroyed if it has been transmitted to you in error. If you have received this e-mail in error you must (a) not disseminate, copy or take any action in reliance on it; (b) please notify Australia Post immediately by return e-mail to the sender; and (c) please delete the original e-mail.
Navigate in group perl.dbi.oracle-oci at sever nntp.perl.org
Previous Next





  
© No Copyright
You are free to use Anything, but please consult your advocate before doing so as this website
also list content from other sources which may be copyrighted.
Site Maintained by Zareef Ahmed
Powered By PHP Consultants