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.