I am trying to install DBD-Oracle 1.23 with Oracle 10.1.4 on Solaris 10 using the standard (Sun-supplied) perl. It's correctly building 32-bit objects but then attempting to link them in 64-bit mode against 64-bit libraries. I have worked around the problem by editing both mk.pm and Makefile, replacing '-xarch=v9' with '-xarch=native' and changing .../oracle/product/10.1.4/lib to .../oracle/product/10.1.4/lib32 but this is not a real solution.
Log follows: $ gzcat /tmp/DBD-Oracle-1.23.tar.gz | tar xf - $ cd DBD-Oracle-1.23 $ perl -V Summary of my perl5 (revision 5 version 8 subversion 4) configuration: Platform: osname=solaris, osvers=2.10, archname=sun4-solaris-64int uname='sunos localhost 5.10 sun4u sparc SUNW,Ultra-2' config_args='' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xarch=v8 -D_TS_ERRNO', optimize='-xO3 -xspace -xildoff', 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, 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 gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-R /usr/perl5/5.8.4/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: 22667 The optree builder was looping when constructing the ops ... 22715 Upgrade to FileCache 1.04 22733 Missing copyright in the README. 22746 fix a coredump caused by rv2gv not fully converting a PV ... 22755 Fix 29149 - another UTF8 cache bug hit by substr. 22774 [perl #28938] split could leave an array without ... 22775 [perl #29127] scalar delete of empty slice returned garbage 22776 [perl #28986] perl -e "open m" crashes Perl 22777 add test for change #22776 ("open m" crashes Perl) 22778 add test for change #22746 ([perl #29102] Crash on assign ... 22781 [perl #29340] Bizarre copy of ARRAY make sure a pad op's ... 22796 [perl #29346] Double warning for int(undef) and abs(undef) ... 22818 BOM-marked and (BOMless) UTF-16 scripts not working 22823 [perl #29581] glob() misses a lot of matches 22827 Smoke [5.9.2] 22818 FAIL(F) MSWin32 WinXP/.Net SP1 (x86/1 cpu) 22830 [perl #29637] Thread creation time is hypersensitive 22831 improve hashing algorithm for ptr tables in perl_clone: ... 22839 [perl #29790] Optimization busted: '@a = "b", sort @a' ... 22850 [PATCH] 'perl -v' fails if local_patches contains code snippets 22852 TEST needs to ignore SCM files 22886 Pod::Find should ignore SCM files and dirs 22888 Remove redundant %SIG assignments from FileCache 23006 [perl #30509] use encoding and "eq" cause memory leak 23074 Segfault using HTML::Entities 23106 Numeric comparison operators mustn't compare addresses of ... 23320 [perl #30066] Memory leak in nested shared data structures ... 23321 [perl #31459] Bug in read() 27722 perlio.c breaks on Solaris/gcc when > 256 FDs are available SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962 Built under solaris Compiled at Aug 8 2007 19:08:30 @INC: /usr/perl5/5.8.4/lib/sun4-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/sun4-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl . $ perl Makefile.PL Using DBI 1.59 (for perl 5.008004 on sun4-solaris-64int) installed in /usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/DBI/ Configuring DBD::Oracle for perl 5.008004 on solaris (sun4-solaris-64int) Remember to actually *READ* the README file! Especially if you have any problems. Installing on a solaris, Ver#2.10 Using Oracle in /osp/3rdpty/oracle/product/10.1.4 DEFINE _SQLPLUS_RELEASE = "1001000500" (CHAR) Oracle version 10.1.0.5 (10.1) Found /osp/3rdpty/oracle/product/10.1.4/rdbms/demo/demo_rdbms.mk Found /osp/3rdpty/oracle/product/10.1.4/rdbms/lib/ins_rdbms.mk Using /osp/3rdpty/oracle/product/10.1.4/rdbms/demo/demo_rdbms.mk Your LD_LIBRARY_PATH env var is set to '/osp/3rdpty/oracle/product/10.1.4/lib32:/osp/3rdpty/oracle/product/10.1.4/lib' Reading /osp/3rdpty/oracle/product/10.1.4/rdbms/demo/demo_rdbms.mk Reading /osp/3rdpty/oracle/product/10.1.4/rdbms/lib/env_rdbms.mk Attempting to discover Oracle OCI build rules cc -c DBD_ORA_OBJ.c by executing: [make -f /osp/3rdpty/oracle/product/10.1.4/rdbms/demo/demo_rdbms.mk build ECHODO=echo ECHO=echo GENCLNTSH='echo genclntsh' CC=true OPTIMIZE= CCFLAGS= EXE=DBD_ORA_EXE OBJS=DBD_ORA_OBJ.o] Oracle oci build command: [true -xarch=v9 -L/osp/3rdpty/oracle/product/10.1.4/lib/ -L/osp/3rdpty/oracle/product/10.1.4/rdbms/lib/ -o DBD_ORA_EXE DBD_ORA_OBJ.o -lclntsh `cat /osp/3rdpty/oracle/product/10.1.4/lib/sysliblist` -R/osp/3rdpty/oracle/product/10.1.4/lib -laio -lposix4 -lkstat -lm -lthread] Found header files in /osp/3rdpty/oracle/product/10.1.4/rdbms/public. Checking for functioning wait.ph System: perl5.008004 sunos localhost 5.10 sun4u sparc SUNW,Ultra-2 Compiler: cc -xO3 -xspace -xildoff -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xarch=v8 -D_TS_ERRNO Linker: not found 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/osp/3rdpty/oracle/product/10.1.4/rdbms/demo -I/osp/3rdpty/oracle/product/10.1.4/rdbms/public -I/osp/3rdpty/oracle/product/10.1.4/plsql/public -I/osp/3rdpty/oracle/product/10.1.4/network/public -DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD -D_REENTRANT $(LPFLAGS) $(USRFLAGS)] LDFLAGS: -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME) $(LDPATHFLAG)$(LIBHOME)/prod/lib/v9 [-o $@ -L/osp/3rdpty/oracle/product/10.1.4/rdbms/lib/ -L$(LIBHOME) -L$(LIBHOME)/prod/lib/v9] Linking with OTHERLDFLAGS = -xarch=v9 -L/osp/3rdpty/oracle/product/10.1.4/lib/ -L/osp/3rdpty/oracle/product/10.1.4/rdbms/lib/ -lclntsh `cat /osp/3rdpty/oracle/product/10.1.4/lib/sysliblist` -R/osp/3rdpty/oracle/product/10.1.4/lib -laio -lposix4 -lkstat -lm -lthread [from 'build' rule] WARNING: If you have problems you may need to rebuild perl with threading enabled. Checking if your kit is complete... Looks good LD_RUN_PATH=/osp/3rdpty/oracle/product/10.1.4/lib32:/osp/3rdpty/oracle/product/10.1.4/rdbms/lib32 Using DBD::Oracle 1.23. Using DBD::Oracle 1.23. Using DBI 1.59 (for perl 5.008004 on sun4-solaris-64int) installed in /usr/perl5/site_perl/5.8.4/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.txt files. (Of course, you have read README by now anyway, haven't you?) $ make cp Oracle.pm blib/lib/DBD/Oracle.pm cp oraperl.ph blib/lib/oraperl.ph cp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.h cp ocitrace.h blib/arch/auto/DBD/Oracle/ocitrace.h cp Oraperl.pm blib/lib/Oraperl.pm cp Oracle.h blib/arch/auto/DBD/Oracle/Oracle.h cp lib/DBD/Oracle/Object.pm blib/lib/DBD/Oracle/Object.pm cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm cp lib/DBD/Oracle/GetInfo.pm blib/lib/DBD/Oracle/GetInfo.pm /usr/bin/perl -p -e "s/~DRIVER~/Oracle/g" /usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/DBI/Driver.xst > Oracle.xsi /usr/bin/perl /usr/perl5/5.8.4/lib/ExtUtils/xsubpp -typemap /usr/perl5/5.8.4/lib/ExtUtils/typemap -typemap typemap Oracle.xs > Oracle.xsc && mv Oracle.xsc Oracle.c cc -c -I/osp/3rdpty/oracle/product/10.1.4/rdbms/public -I/osp/3rdpty/oracle/product/10.1.4/rdbms/demo -I/osp/3rdpty/oracle/product/10.1.4/rdbms/public -I/osp/3rdpty/oracle/product/10.1.4/plsql/public -I/osp/3rdpty/oracle/product/10.1.4/network/public -I/usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xarch=v8 -D_TS_ERRNO -xO3 -xspace -xildoff -DVERSION=\"1.23\" -DXS_VERSION=\"1.23\" -KPIC "-I/usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE" -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.1.0.5\" Oracle.c cc -c -I/osp/3rdpty/oracle/product/10.1.4/rdbms/public -I/osp/3rdpty/oracle/product/10.1.4/rdbms/demo -I/osp/3rdpty/oracle/product/10.1.4/rdbms/public -I/osp/3rdpty/oracle/product/10.1.4/plsql/public -I/osp/3rdpty/oracle/product/10.1.4/network/public -I/usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xarch=v8 -D_TS_ERRNO -xO3 -xspace -xildoff -DVERSION=\"1.23\" -DXS_VERSION=\"1.23\" -KPIC "-I/usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE" -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.1.0.5\" dbdimp.c cc -c -I/osp/3rdpty/oracle/product/10.1.4/rdbms/public -I/osp/3rdpty/oracle/product/10.1.4/rdbms/demo -I/osp/3rdpty/oracle/product/10.1.4/rdbms/public -I/osp/3rdpty/oracle/product/10.1.4/plsql/public -I/osp/3rdpty/oracle/product/10.1.4/network/public -I/usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xarch=v8 -D_TS_ERRNO -xO3 -xspace -xildoff -DVERSION=\"1.23\" -DXS_VERSION=\"1.23\" -KPIC "-I/usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE" -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.1.0.5\" oci8.c Running Mkbootstrap for DBD::Oracle () chmod 644 Oracle.bs rm -f blib/arch/auto/DBD/Oracle/Oracle.so LD_RUN_PATH="/osp/3rdpty/oracle/product/10.1.4/lib32:/osp/3rdpty/oracle/product/10.1.4/rdbms/lib32" cc -G Oracle.o dbdimp.o oci8.o -xarch=v9 -L/osp/3rdpty/oracle/product/10.1.4/lib/ -L/osp/3rdpty/oracle/product/10.1.4/rdbms/lib/ -lclntsh `cat /osp/3rdpty/oracle/product/10.1.4/lib/sysliblist` -R/osp/3rdpty/oracle/product/10.1.4/lib -laio -lposix4 -lkstat -lm -lthread -o blib/arch/auto/DBD/Oracle/Oracle.so ld: fatal: file Oracle.o: wrong ELF class: ELFCLASS32 ld: fatal: File processing errors. No output written to blib/arch/auto/DBD/Oracle/Oracle.so *** Error code 1 make: Fatal error: Command failed for target `blib/arch/auto/DBD/Oracle/Oracle.so' -- Peter Jeremy
pgpGKoSq6QX1W.pgp
Description: PGP signature