Dear Sir,
I've used your DBI-1.38 and DBD-Oracle-1.14 on AIX 4.3, Oracle Database 8.1.7 without
any problems (except for the perl shipped with that ancient AIX, but that's another
story).
Now the machine was upgraded: got AIX 5.2 with perl 5.8.0 and Oracle Database 9.2.0
and DBI installs without notice, but DBD-Oracle aborts with som linking problems about
Oracle.so
The same is produced on a Sun UltraSparc 10 with Solaris 9, perl 5.6.1 - here is the
log file of the install of DBD-1.12 ('cause CPAN says this had been tested on Solaris):
perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
Platform:
osname=solaris, osvers=2.9, archname=sun4-solaris-64int
uname='sunos localhost 5.9 sun4u sparc sunw,ultra-1'
config_args=''
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=undef uselongdouble=undef
Compiler:
cc='cc', ccflags ='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-xO3 -xdepend',
cppflags=''
ccversion='Sun WorkShop', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, usemymalloc=n, prototype=define
Linker and Libraries:
ld='cc', ldflags =''
libpth=/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -ldl -lm -lc
perllibs=-lsocket -lnsl -ldl -lm -lc
libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-R
/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE'
cccdlflags='-KPIC', lddlflags='-G'
Characteristics of this binary (from libperl):
Compile-time options: USE_64_BIT_INT USE_LARGE_FILES
Locally applied patches:
9676 Port the OpenBSD glob() security patch
9678 Addendum to #9676: some missing changes from OpenBSD glob.c
9679 Up $File::Glob::VERSION, add OpenBSD glob version note
9693 $VERSION and Version() on same line provokes CPAN.pm warning
9706 #7210 broke .packlist generation
9707 ExtUtils::Installed doesn't quote regex metacharacters in paths
9775 Typo in utf8.h
9950 Revert integration of #8254,#8255 in #8620 (causes coredump)
10021 Insecure regexes
10091 $ref1 == $ref2 behaves unpredictably if not NV_PRESERVES_UV
10093 Incorrect line numbers in AutoSplit
10100 [20010514.027] PL_last_in_gv may not be GV if stale filehandle
10145 [20010515.004] Segfaults from premature GC
10203 Don't think about UTF8
10250 [20010422.005] perl -e '{s//${}/; //}' segfaults
10394 Leakage of file scope lexicals into predeclared subroutines
10404 eval.t was relying on pre-#10394 buggy behavior
10412 Rationalize locale handling to fix bugs uncovered by #10394
10422 Potential buffer overrun if the radix separator > 1 byte
10448 Lexicals outside eval weren't resolved correctly pre-#10394
10450 Optimize #10448 slightly
10543 Add LC_MESSAGES constant to POSIX module
10667 #10449 broke visibility of lexicals inside DB::DB()
10739 C<eval "/x$\r\n/x"> fails to compile correctly
10939 Proposed fix for Pod::Man
11169 Doc patch for Tie::Hash
11374 Make h2ph grok ccsymbols fo the form 1234L, 1234ULL etc
11427 t/harness wasn't picking up all the tests
11428 run/runenv.t needs fflushNULL sanity
11431 pod/*.t tests not picked up by t/TEST either
11510 eval 'format foo=' would loop indefinitely
11713 UTF8 wasn't printing for PVMGs
11716 UTF8 flag should be meaningful only when POK
11808 [20010831.002] Bug in Term::Cap on Solaris ansi terminal
11847 Typo in perl_clone() code causes local(*foo) breakage
12005 [20010912.007] substr reference core dump
12024 Fix local() precedence bug in #8311
12303 Fix 'local $!=0;undef*STDOUT;' segfault
12304 Pod::Html makes a poor guess at author
12350 Typo in IO::Seekable doc
12496 Carp::shortmess_heavy() doesn't notice trailing newline
12549 readline() doesn't work with 'our' variables
12550 #12549 wasn't aware of strictures
12752 croak(Nullch) wasn't printing the contents of ERRSV
12811 [20011101.069] \stat('.') gives 'free unref scalar' error
12812 Slight modification of #12811
13149 Integrate #13147 from mainline (fixes nit in #10091)
13261 Integrate #8340,#13260 from mainline
Built under solaris
Compiled at Apr 6 2002 14:45:34
@INC:
/usr/perl5/5.6.1/lib/sun4-solaris-64int
/usr/perl5/5.6.1/lib
/usr/perl5/site_perl/5.6.1/sun4-solaris-64int
/usr/perl5/site_perl/5.6.1
/usr/perl5/site_perl
/usr/perl5/vendor_perl/5.6.1/sun4-solaris-64int
/usr/perl5/vendor_perl/5.6.1
/usr/perl5/vendor_perl
.
make realclean
rm -f blib/script/ora_explain
rm -rf Oracle.c Oracle.xsi dll.base dll.exp sqlnet.log libOracle.def ora_explain mk.pm
./blib Makefile.aperl blib/arch/auto/DBD/Oracle/extralibs.all perlmain.c mon.out core
core.*perl.*.? *perl.core so_locations pm_to_blib *.o *.a perl.exe Oracle.bs
Oracle.bso Oracle.def Oracle.exp
mv Makefile Makefile.old > /dev/null 2>&1
rm -rf blib/lib/auto/DBD/Oracle blib/arch/auto/DBD/Oracle
rm -f blib/arch/auto/DBD/Oracle/Oracle.so blib/arch/auto/DBD/Oracle/Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.a
rm -f blib/lib/oraperl.ph blib/lib/DBD/Oracle.pm blib/arch/auto/DBD/Oracle/dbdimp.h
rm -f blib/arch/auto/DBD/Oracle/mk.pm blib/arch/auto/DBD/Oracle/ocitrace.h
rm -f blib/arch/auto/DBD/Oracle/Oracle.h blib/lib/Oraperl.pm
rm -rf Makefile Makefile.old
perl Makefile.PL
Using DBI 1.38 installed in /usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI
Configuring DBD::Oracle ...
>>> Remember to actually *READ* the README file!
Especially if you have any problems.
Using Oracle in /u01/app/oracle/product/9.2.0
Found header files in rdbms/demo.
Found /u01/app/oracle/product/9.2.0/rdbms/demo/demo_rdbms.mk
Found /u01/app/oracle/product/9.2.0/otrace/demo/atmoci.mk
Using /u01/app/oracle/product/9.2.0/rdbms/demo/demo_rdbms.mk
Reading /u01/app/oracle/product/9.2.0/rdbms/demo/demo_rdbms.mk.
Reading /u01/app/oracle/product/9.2.0/rdbms/lib/env_rdbms.mk.
Appending '/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxpd.a
/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxpu.a
/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxpt.a' to EXTRALIBS
Appending '$(LIBHOME)libskgxp9.so' to SHLIBS
Appending '/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxp9.a' to LIBS
Appending '/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxns.a
/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxnd.a
/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxnr.a' to EXTRALIBS
Appending '$(LIBHOME)libskgxn9.so' to SHLIBS
Appending '/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxn9.a' to LIBS
Evaluating `cat $(LIBHOME)sysliblist`
expanded `cat /u01/app/oracle/product/9.2.0/lib/sysliblist`
returned '-lnsl -lsocket -lgen -ldl'
Attempting to discover Oracle OCI build rules...
cc -c DBD_ORA_OBJ.c
Oracle oci build command:
echo -L/opt/SUNWcluster/lib -R/opt/SUNWcluster/lib -o build
-L/u01/app/oracle/product/9.2.0/rdbms/lib/ -L/u01/app/oracle/product/9.2.0/lib/ -o
DBD_ORA_EXE DBD_ORA_OBJ.o -lclntsh `cat /u01/app/oracle/product/9.2.0/lib/ldflags`
`cat /u01/app/oracle/product/9.2.0/lib/sysliblist` -R/u01/app/oracle/product/9.2.0/lib
-laio -lposix4 -lkstat -lm -lthread
-L/opt/SUNWcluster/lib -R/opt/SUNWcluster/lib -o build
-L/u01/app/oracle/product/9.2.0/rdbms/lib/ -L/u01/app/oracle/product/9.2.0/lib/ -o
DBD_ORA_EXE DBD_ORA_OBJ.o -lclntsh -lnbeq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9
-lnsslb9 -lnnis9 -lnoname9 -lntcp9 -lntcps9 -lnsslb9 -lntcp9 -lntns9 -lnsl -lsocket
-lgen -ldl -R/u01/app/oracle/product/9.2.0/lib -laio -lposix4 -lkstat -lm -lthread
Unable to interpret Oracle oci build commands. Using fallback approach.
System: perl5.006001 sunos localhost 5.9 sun4u sparc sunw,ultra-1
Compiler: cc -xO3 -xdepend -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
Linker: /usr/ccs/bin/ld
Sysliblist: -lnsl -lsocket -lgen -ldl
Oracle makefiles would have used these definitions but we override them:
CC: cc
CFLAGS: $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\
$(SHARED_CFLAG) $(USRFLAGS)
[$(GFLAG) -xO3 $(CDEBUG) -Xa $(PROFILE) -xstrconst -dalign -xF $(XS) $(MR)
-xildoff -errtags=yes -v -xarch=v9 -xchip=ultra3 -W2,-AKNR_S -Wd,-xsafe=unboundsym
-Wc,-Qiselect-funcalign=32 -xcode=abs44 -Wc,-Qgsched-trace_late=1 -Wc,-Qgsched-T5
-xalias_level=weak -D_REENTRANT -DSS_64BIT_SERVER -DBIT64 -DMACHINE64 -K PIC
-I/u01/app/oracle/product/9.2.0/rdbms/demo
-I/u01/app/oracle/product/9.2.0/rdbms/public
-I/u01/app/oracle/product/9.2.0/plsql/public
-I/u01/app/oracle/product/9.2.0/network/public -DSLMXMX_ENABLE -DSLTS_ENABLE
-D_SVID_GETTOD -D_REENTRANT $(LPFLAGS) $(USRFLAGS)]
build:
$(LDCCOM) $(LIBPATH) -o $(EXE) $(OBJS) $(SHARED_LDCLIENTLIBS) $(LLIBTHREAD)
Evaluating `cat $(LIBHOME)ldflags`
expanded `cat /u01/app/oracle/product/9.2.0/lib/ldflags`
returned '-lnbeq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9 -lnsslb9 -lnnis9 -lnoname9
-lntcp9 -lntcps9 -lnsslb9 -lntcp9 -lntns9
'
expanded `cat /u01/app/oracle/product/9.2.0/lib/sysliblist`
[ $(ADE_DEL_FILE_CMD) $(PURELINK) $(PURIFY) $(PURECOV) $(QUANTIFY) cc
$(GFLAG) -Xa $(PROFILE) -xstrconst -dalign -xF $(XS) $(MR) -xildoff -errtags=yes -v
-xarch=v9 -xchip=ultra3 -W2,-AKNR_S -Wd,-xsafe=unboundsym -Wc,-Qiselect-funcalign=32
-xcode=abs44 -Wc,-Qgsched-trace_late=1 -Wc,-Qgsched-T5 -xalias_level=weak -D_REENTRANT
-DSS_64BIT_SERVER -DBIT64 -DMACHINE64 -K PIC -L/opt/SUNWcluster/lib
-R/opt/SUNWcluster/lib -o $@ -L/u01/app/oracle/product/9.2.0/rdbms/lib/ -L$(LIBHOME)
$(LIBPATH) -o $(EXE) $(OBJS) -lclntsh -lnbeq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9
-lnsslb9 -lnnis9 -lnoname9 -lntcp9 -lntcps9 -lnsslb9 -lntcp9 -lntns9 $(EXPDLIBS)
$(EXOSLIBS) -lnsl -lsocket -lgen -ldl -R/u01/app/oracle/product/9.2.0/lib -laio
$(THREADLIBS) -lposix4 -lkstat -lm $(USRLIBS) -lthread]
LDFLAGS: -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME)
[-o $@ -L/u01/app/oracle/product/9.2.0/rdbms/lib/ -L$(LIBHOME)]
Linking with /u01/app/oracle/product/9.2.0/rdbms/lib/defopt.o -lclntsh -lnsl -lsocket
-lgen -ldl -R/u01/app/oracle/product/9.2.0/lib -laio -lposix4 -lkstat -lm -lthread
[from $(DEF_OPT) $(OCISHAREDLIBS)]
Checking if your kit is complete...
Looks good
LD_RUN_PATH=/u01/app/oracle/product/9.2.0/lib
Using DBD::Oracle 1.12.
Using DBI 1.38 installed in /usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI
Writing Makefile for DBD::Oracle
*** 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?)
make
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/sh -c true
/bin/sh -c true
/usr/bin/perl -p -e "s/~DRIVER~/Oracle/g"
/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI/Driver.xst > Oracle.xsi
/usr/bin/perl -I/usr/perl5/5.6.1/lib/sun4-solaris-64int -I/usr/perl5/5.6.1/lib
/usr/perl5/5.6.1/lib/ExtUtils/xsubpp -typemap /usr/perl5/5.6.1/lib/ExtUtils/typemap
Oracle.xs > Oracle.xsc && mv Oracle.xsc Oracle.c
cc -c -I/u01/app/oracle/product/9.2.0/rdbms/demo
-I/u01/app/oracle/product/9.2.0/rdbms/public
-I/u01/app/oracle/product/9.2.0/plsql/public
-I/u01/app/oracle/product/9.2.0/network/public
-I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/demo
-I/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\"
-KPIC -I/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE Oracle.c
cc -c -I/u01/app/oracle/product/9.2.0/rdbms/demo
-I/u01/app/oracle/product/9.2.0/rdbms/public
-I/u01/app/oracle/product/9.2.0/plsql/public
-I/u01/app/oracle/product/9.2.0/network/public
-I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/demo
-I/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\"
-KPIC -I/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE dbdimp.c
cc -c -I/u01/app/oracle/product/9.2.0/rdbms/demo
-I/u01/app/oracle/product/9.2.0/rdbms/public
-I/u01/app/oracle/product/9.2.0/plsql/public
-I/u01/app/oracle/product/9.2.0/network/public
-I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/demo
-I/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\"
-KPIC -I/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE oci7.c
cc -c -I/u01/app/oracle/product/9.2.0/rdbms/demo
-I/u01/app/oracle/product/9.2.0/rdbms/public
-I/u01/app/oracle/product/9.2.0/plsql/public
-I/u01/app/oracle/product/9.2.0/network/public
-I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/demo
-I/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\"
-KPIC -I/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE oci8.c
Running Mkbootstrap for DBD::Oracle ()
chmod 644 Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
LD_RUN_PATH="/u01/app/oracle/product/9.2.0/lib" cc -G Oracle.o dbdimp.o oci7.o
oci8.o /u01/app/oracle/product/9.2.0/rdbms/lib/defopt.o -o
blib/arch/auto/DBD/Oracle/Oracle.so -L/u01/app/oracle/product/9.2.0/lib/ -lclntsh
-lnsl -lsocket -lgen -ldl -R/u01/app/oracle/product/9.2.0/lib -laio -lposix4 -lkstat
-lm -lthread
*** Error code 1
ld: fatal: file /u01/app/oracle/product/9.2.0/rdbms/lib/defopt.o: wrong ELF class:
ELFCLASS64
ld: fatal: File processing errors. No output written to
blib/arch/auto/DBD/Oracle/Oracle.so
So I think the problem is that Oracle 9.2.0 has something 'new'...
Thank you,
Tamás Gulácsi
[EMAIL PROTECTED]