That's precisely what I thiught . So I installed perl5.6.1 from scratch. It
went successfull. Then I installed DBI-1.20. That installation was
successfull too . 
Next was tryng to install DBD-Oracle-1.12 .
When i do a perl Makefile.PL 
Here is the log I am getting


Multiple copies of Driver.xst found in:
/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI
/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI /opt/perl5
..6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI at Makefile.PL line 36
Using DBI 1.20 installed in
/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI

 Configuring DBD::Oracle ...

>>>     Remember to actually *READ* the README file!
        Especially if you have any problems.

Using Oracle in /archive/newdisk/oracle9i
Found header files in rdbms/demo.
Found /archive/newdisk/oracle9i/rdbms/demo/demo_rdbms.mk
Found /archive/newdisk/oracle9i/otrace/demo/atmoci.mk
Using /archive/newdisk/oracle9i/rdbms/demo/demo_rdbms.mk
Reading /archive/newdisk/oracle9i/rdbms/demo/demo_rdbms.mk.
Reading /archive/newdisk/oracle9i/rdbms/lib/env_rdbms.mk.
Evaluating `cat $(LIBHOME)sysliblist`
  expanded `cat /archive/newdisk/oracle9i/lib/sysliblist`
  returned '-l:libcl.sl -l:librt.sl -lpthread -l:libnss_dns.1 -l:libdld.sl '

Attempting to discover Oracle OCI build rules...
        cc -O -c DBD_ORA_OBJ.c
Oracle oci build command:
                echo -Wl,+s -Wl,+n +DA2.0W +DS2.0 -o build
-L/archive/newdisk/oracle9i/rdbms/lib/ -L/archive/newdisk/oracle9i/lib/  -o
DBD_ORA_EXE DBD_ORA_OBJ.o
 -lclntsh `cat /archive/newdisk/oracle9i/lib/ldflags`   `cat
/archive/newdisk/oracle9i/lib/sysliblist`  -lm
        -Wl,+s -Wl,+n +DA2.0W +DS2.0 -o build
-L/archive/newdisk/oracle9i/rdbms/lib/ -L/archive/newdisk/oracle9i/lib/ -o
DBD_ORA_EXE DBD_ORA_OBJ.o -lclntsh -lnb
eq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9 -lnsslb9 -lnoname9 -lntcp9 -lntcps9
-lnsslb9 -lntcp9 -lntns9 -l:libcl.sl -l:librt.sl -lpthread -l:libnss_dns.1
-l:libdl
d.sl -lm
Unable to interpret Oracle oci build commands. Using fallback approach.

Warning: perl was not built with +z in ccflags
         You may need to rebuild perl from sources
         See instructions in README.hpux
***^G
*** Warning: If you have trouble, see README.hpux...
    you may have to build your own perl, or go hunting for libraries
***^G

System: perl5.006001 hp-ux boi307 b.11.00 u 9000800 616349343 unlimited-user
license
Compiler:   cc -O  -D_HPUX_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-Ae
Linker:     /bin/ld
Sysliblist:  -lrt -lpthread -l:libnss_dns.1 -ldld
Oracle makefiles would have used these definitions but we override them:
  CC:       cc

  CFLAGS:   $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\
        $(SHARED_CFLAG) $(USRFLAGS)
           [$(GFLAG) $(OPTIMIZE) $(CDEBUG) +DA2.0W +DS2.0 -DSS_64BIT_SERVER
-I/archive/newdisk/oracle9i/rdbms/demo
-I/archive/newdisk/oracle9i/rdbms/public -I/a
rchive/newdisk/oracle9i/plsql/public
-I/archive/newdisk/oracle9i/network/public $(SPFLAGS) $(LPFLAGS)
$(SHARED_CFLAG) $(USRFLAGS)]

  build:     $(CC) $(LDFLAGS) $(LIBPATH) -o $(EXE) $(OBJS)
$(SHARED_LDCLIENTLIBS)
Evaluating `cat $(LIBHOME)ldflags`
  expanded `cat /archive/newdisk/oracle9i/lib/ldflags`
  returned '-lnbeq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9  -lnsslb9
-lnoname9 -lntcp9 -lntcps9 -lnsslb9 -lntcp9 -lntns9 '
  expanded `cat /archive/newdisk/oracle9i/lib/sysliblist`
           [ cc -Wl,+s -Wl,+n +DA2.0W +DS2.0 -o $@
-L/archive/newdisk/oracle9i/rdbms/lib/ -L$(LIBHOME) $(LIBPATH) -o $(EXE)
$(OBJS) -lclntsh -lnbeq9 -lnhost9 -l
nus9 -lnldap9 -lldapclnt9 -lnsslb9 -lnoname9 -lntcp9 -lntcps9 -lnsslb9
-lntcp9 -lntns9 $(EXPDLIBS) $(EXOSLIBS) -l:libcl.sl -l:librt.sl -lpthread
-l:libnss_dns.1
 -l:libdld.sl $(EXSYSLIBS) -lm $(USRLIBS) ]

  LDFLAGS:  -Wl,+s -Wl,+n +DA2.0W +DS2.0 -o $@ -L$(PRODLIBHOME) -L$(LIBHOME)
           [-Wl,+s -Wl,+n +DA2.0W +DS2.0 -o $@
-L/archive/newdisk/oracle9i/rdbms/lib/ -L$(LIBHOME)]


Linking with /archive/newdisk/oracle9i/rdbms/lib/defopt.o  -lclntsh -lcl
-lrt -lpthread -l:libnss_dns.1 -ldld -lm -lqsmashr [from $(DEF_OPT)
$(OCISHAREDLIBS)]


Warning: If you have problems you may need to rebuild perl with
-Uusemymalloc.^G

Checking if your kit is complete...
Looks good
Note (probably harmless): No library found for -l:libnss_dns.1
LD_RUN_PATH=/archive/newdisk/oracle9i/lib
Using DBD::Oracle 1.12.
Multiple copies of Driver.xst found in:
/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI
/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI /opt/perl5
..6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI at Makefile.PL line 1136
Using DBI 1.20 installed in
/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI
Writing Makefile for DBD::Oracle


Next I did make . Here are the results

cp oraperl.ph blib/lib/oraperl.ph
cp Oracle.pm blib/lib/DBD/Oracle.pm
cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm
cp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.h
cp ocitrace.h blib/arch/auto/DBD/Oracle/ocitrace.h
cp Oracle.h blib/arch/auto/DBD/Oracle/Oracle.h
cp Oraperl.pm blib/lib/Oraperl.pm
        /bin/perl -p -e "s/~DRIVER~/Oracle/g" <
/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI/Driver.xst >
Oracle.xsi
        /bin/perl -I/opt/perl5.6.1/lib/5.6.1/PA-RISC2.0
-I/opt/perl5.6.1/lib/5.6.1 /opt/perl5.6.1/lib/5.6.1/ExtUtils/xsubpp
-typemap /opt/perl5.6.1/lib/5.6.1/E
xtUtils/typemap Oracle.xs > Oracle.xsc && mv Oracle.xsc Oracle.c
        cc -c -I/archive/newdisk/oracle9i/rdbms/demo
-I/archive/newdisk/oracle9i/rdbms/public
-I/archive/newdisk/oracle9i/plsql/public -I/archive/newdisk/oracle
9i/network/public -I/archive/newdisk/oracle9i/rdbms/demo
-I/archive/newdisk/oracle9i/rdbms/demo
-I/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI -D_HPUX
_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Ae -O
-DVERSION=\"1.12\"  -DXS_VERSION=\"1.12\" +z
-I/opt/perl5.6.1/lib/5.6.1/PA-RISC2.0/CORE  Oracle.c
        cc -c -I/archive/newdisk/oracle9i/rdbms/demo
-I/archive/newdisk/oracle9i/rdbms/public
-I/archive/newdisk/oracle9i/plsql/public -I/archive/newdisk/oracle
9i/network/public -I/archive/newdisk/oracle9i/rdbms/demo
-I/archive/newdisk/oracle9i/rdbms/demo
-I/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI -D_HPUX
_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Ae -O
-DVERSION=\"1.12\"  -DXS_VERSION=\"1.12\" +z
-I/opt/perl5.6.1/lib/5.6.1/PA-RISC2.0/CORE  dbdimp.c
        cc -c -I/archive/newdisk/oracle9i/rdbms/demo
-I/archive/newdisk/oracle9i/rdbms/public
-I/archive/newdisk/oracle9i/plsql/public -I/archive/newdisk/oracle
9i/network/public -I/archive/newdisk/oracle9i/rdbms/demo
-I/archive/newdisk/oracle9i/rdbms/demo
-I/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI -D_HPUX
_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Ae -O
-DVERSION=\"1.12\"  -DXS_VERSION=\"1.12\" +z
-I/opt/perl5.6.1/lib/5.6.1/PA-RISC2.0/CORE  oci7.c
        cc -c -I/archive/newdisk/oracle9i/rdbms/demo
-I/archive/newdisk/oracle9i/rdbms/public
-I/archive/newdisk/oracle9i/plsql/public -I/archive/newdisk/oracle
9i/network/public -I/archive/newdisk/oracle9i/rdbms/demo
-I/archive/newdisk/oracle9i/rdbms/demo
-I/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBI -D_HPUX
_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Ae -O
-DVERSION=\"1.12\"  -DXS_VERSION=\"1.12\" +z
-I/opt/perl5.6.1/lib/5.6.1/PA-RISC2.0/CORE  oci8.c
cc: "oci8.c", line 267: warning 604: Pointers are not assignment-compatible.
Running Mkbootstrap for DBD::Oracle ()
        chmod 644 Oracle.bs
        rm -f blib/arch/auto/DBD/Oracle/Oracle.sl
        LD_RUN_PATH="/archive/newdisk/oracle9i/lib" ld  -b
+vnocompatwarnings -L/usr/local/lib Oracle.o  dbdimp.o  oci7.o  oci8.o
/archive/newdisk/oracle9i/rdbm
s/lib/defopt.o  -o blib/arch/auto/DBD/Oracle/Oracle.sl
-L/archive/newdisk/oracle9i/lib/ -lclntsh -lcl -lrt -lpthread -ldld -lm
-lqsmashr
ld: /archive/newdisk/oracle9i/rdbms/lib/defopt.o: Mismatched ABI. 64-bit PA
object file found in 32-bit link.
*** Error exit code 1

Stop.

***  If you have problems...
     read all the log printed above, and the README and README.help files.
     (Of course, you have read README by now anyway, haven't you?)


So I did  file /archive/newdisk/oracle9i/rdbms/lib/defopt.o
Here are the results 

/archive/newdisk/oracle9i/rdbms/lib/defopt.o:   ELF-64 relocatable object
file - PA-RISC 2.0 (LP64)

So it is a 64 Bit Object . Does this mean cc is 32 bit ?
I am not sure why i am getting "Mismatched ABI. 64-bit PA object file found
in 32-bit link." Or do I need to rebuild Perl with +z flag option ?

Thanks
Much Appreciated your help
Sanjay

-----Original Message-----
From: Michael A Chase [mailto:[EMAIL PROTECTED]]
Sent: Sunday, August 18, 2002 12:20 PM
To: WAZA, SANJAY (Non-HP-PaloAlto, ex1); [EMAIL PROTECTED]
Cc: GANESAN, MAYA (HP-SantaClara, ex4); RAMAN, SETHU (Non-HP-SantaClara,
ex2)
Subject: Re: DBI Error 


On Sun, 18 Aug 2002 13:23:28 -0400 "WAZA,SANJAY (Non-HP-PaloAlto,ex1)"
<[EMAIL PROTECTED]> wrote:

> I changed the script as you suggested
> 
> #!/opt/perl5.6.1/bin/perl -w
> use strict;
> use DBI;
> my $dbh = DBI->connect( 'dbi:Oracle:p1db',
>                         'partner1',
>                         'p1admin',
>                         {
>                           RaiseError => 1,
>                           AutoCommit => 0
>                         }
>                       ) || die "Database connection not made:
> $DBI::errstr";

If I want a custom error message I normally use { PrintError => 0,
RaiseError => 0, AutoCommit => 0 } and then set $dbh -> {RaiseError} to 1
after connect().  Otherwise, connect() never returns on error.  I normally
use something like "Can't connect to $sInst as $sUser, $DBI::errstr\n".  It
may not be necessary for you though, since the instance and username have
been added to the RaiseError message in recent versions of DBI.

> The Error is still the same . 
> install_driver(Oracle) failed: Can't load
> '/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBD/Oracle/Oracle.sl'
> for module DBD::Oracle: No such file or dire
> ctory at /opt/perl5.6.1/lib/5.6.1/PA-RISC2.0/DynaLoader.pm line 206.
>  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
> 
> Before Running the script I set up all the env valiables
> 
> export ORACLE_HOME=/archive/newdisk/oracle9i
> export SHLIB_PATH=/opt/perl5.6.1/lib:$ORACLE_HOME/lib:/usr/lib
> export
> LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/Apache/Apache/libexec
> export
> PERL5LIB=/opt/perl5.6.1/lib/site_perl/5.6.1:/opt/perl5.6.1/lib/5.6.1:
> /opt/perl5.6.1/lib/5.6.1/PA-RISC2.0:/opt/perl5.6.1/lib/site_perl/5.6.1/PA
> -RISC2.0

That all looks reasonable, but now I'm wondering what version of Oracle
DBD::Oracle was compiled against.  If it wasn't 9.0, you will need to get
it rebuild with 9.0 or use an Oracle Home of the appropriate version. 
Since Oracle OCI (used by DBD::Oracle) normally connects through SQL*Net,
you can connect to any database from 7 through 9 using a SQL*Net client
of the version you compiled DBD::Oracle against, if you try to use another
version it probably won't work.

> The File Oracle.sl is present in that directory
> boi307@/opt/perl5.6.1/lib/site_perl/5.6.1/PA-RISC2.0/auto/DBD/Oracle% ll
> total 12976
> -rwxr-xr-x   1 bin        bin              0 Feb  1  2002 Oracle.bs
> -rwxr-xr-x   1 bin        bin           2402 May  2  2000 Oracle.h
> -rwxr-xr-x   1 bin        bin        6602752 Feb  1  2002 Oracle.sl
> -rwxr-xr-x   1 bin        bin           9868 Aug 30  2001 dbdimp.h
> -rwxr-xr-x   1 bin        bin          15733 Feb  1  2002 mk.pm
> -rwxr-xr-x   1 bin        bin          11204 Aug 30  2001 ocitrace.h
> 
> Next went to ORACLE_HOME/lib and did  ll *oc* and got these results
> 
> boi307@/archive/newdisk/oracle9i/lib% ll *oc*
> lrwxrwxr-x   1 oracle     dba             14 Aug  6 12:50 libocci.sl ->
> libocci.sl.9.0
> -rwxr-xr-x   1 oracle     dba         953832 Apr 27 11:12 libocci.sl.9.0
> -rw-r--r--   1 oracle     dba        4549378 Apr 27 07:36 libocci9.a
> -rw-r--r--   1 oracle     dba         211302 Apr 26 04:01 libocijdbc9.a
> -rwxr-xr-x   1 oracle     dba         155248 Apr 27 12:50 libocijdbc9.sl
> -rwxr-xr-x   1 oracle     dba         188120 Apr 27 12:50
> libocijdbc9_g.sl
> -rw-r--r--   1 oracle     dba         211302 Apr 26 04:01 libocijdbcst9.a
> 
> So I am not sure how to find exactly which shared library it is looking
> for?

_IF_ DBD::Oracle was built with Oracle 9.0, it is probably wants
libocci.sl or libocci.sl.9.0 linked via libocci9.a.  If it was build with
another version of Oracle, it is probably looking for another shared
library which would exist in $ORACLE_HOME/lib in an Oracle instance of the
correct version.

-- 
Mac :})
** I normally forward private questions to the appropriate mail list. **
Ask Smarter: http://www.tuxedo.org/~esr/faqs/smart-questions.html
Give a hobbit a fish and he eats fish for a day.
Give a hobbit a ring and he eats fish for an age.

Reply via email to