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

Attachment: pgpGKoSq6QX1W.pgp
Description: PGP signature

Reply via email to