FYI,
I've been trying to build DBD::Oracle-1.12 under Solaris,
using Oracle 9.2 client software.  The build ("make") fails
because the objects & libs it finds in /oracle/app/oracle/product/9.2/lib
(and .../rdbms/lib) are 64-bit, whereas perl is trying to build a 32-bit
object.  Apparently, Oracle has switched their default executable format
to 64-bit as of 9.2.  The only solution I've found is to hack the Makefile
by hand to replace all occurences of "/oracle/.../lib" with "/oracle/.../lib32"
and then do the "make".  This seems to work fine.  It would be nice
if Makefile.pl handled this automatically.

Some config info (perl -V and perl Makefile.PL output):

% perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=solaris, osvers=2.8, archname=sun4-solaris
    uname='sunos etcweb2.princeton.edu 5.8 generic_108528-18 sun4u sparc
sunw,sun-fire-280r '
    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=undef use64bitall=undef uselongdouble=undef
  Compiler:
    cc='gcc', ccflags ='-I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
    optimize='-O',
    cppflags='-I/usr/local/include'
    ccversion='', gccversion='2.8.1', gccosandvers='solaris2.6'
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' -L/usr/local/lib '
    libpth=/usr/local/lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -ldl -lm -lc
    perllibs=-lsocket -lnsl -ldl -lm -lc
    libc=, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -Wl,-E'
    cccdlflags='-fPIC', lddlflags=' -W,l-E -G -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under solaris
  Compiled at Jan  7 2003 14:45:18
  @INC:
    /var/local/web/perl-5.6.1/lib/5.6.1/sun4-solaris
    /var/local/web/perl-5.6.1/lib/5.6.1
    /var/local/web/perl-5.6.1/lib/site_perl/5.6.1/sun4-solaris
    /var/local/web/perl-5.6.1/lib/site_perl/5.6.1
    /var/local/web/perl-5.6.1/lib/site_perl
    .
% perl Makefile.PL
Using DBI 1.32 installed in
/var/local/web/perl-5.6.1/lib/site_perl/5.6.1/sun4-solaris/auto/DBI

 Configuring DBD::Oracle ...

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

Using Oracle in /oracle/app/oracle/product/9.2
Found header files in rdbms/demo.
Found /oracle/app/oracle/product/9.2/rdbms/demo/demo_rdbms.mk
Found /oracle/app/oracle/product/9.2/precomp/demo/proc/demo_proc.mk
Using /oracle/app/oracle/product/9.2/rdbms/demo/demo_rdbms.mk
Reading /oracle/app/oracle/product/9.2/rdbms/demo/demo_rdbms.mk.
Reading /oracle/app/oracle/product/9.2/rdbms/lib/env_rdbms.mk.
Deleting ORA_NLS = $(ORACLE_HOME)/ocommon/nls/admin/data/
  because it is not already set in the environment
  and it can cause ORA-01019 errors.
Deleting ORA_NLS33 = $(ORACLE_HOME)/ocommon/nls/admin/data/
  because it is not already set in the environment
  and it can cause ORA-01019 errors.
Appending '/oracle/app/oracle/product/9.2/rdbms/lib/libskgxpd.a
/oracle/app/oracle/product/9.2/rdbms/lib/libskgxpu.a
/oracle/app/oracle/product/9.2/rdbms/lib/libskgxpt.a' to EXTRALIBS
Appending '$(LIBHOME)libskgxp9.so' to SHLIBS
Appending '/oracle/app/oracle/product/9.2/rdbms/lib/libskgxp9.a' to LIBS
Appending '/oracle/app/oracle/product/9.2/rdbms/lib/libskgxns.a
/oracle/app/oracle/product/9.2/rdbms/lib/libskgxnd.a
/oracle/app/oracle/product/9.2/rdbms/lib/libskgxnr.a' to EXTRALIBS
Appending '$(LIBHOME)libskgxn9.so' to SHLIBS
Appending '/oracle/app/oracle/product/9.2/rdbms/lib/libskgxn9.a' to LIBS
Evaluating `cat $(LIBHOME)sysliblist`
  expanded `cat /oracle/app/oracle/product/9.2/lib/sysliblist`
  returned '-lnsl -lsocket -lgen -ldl'

Attempting to discover Oracle OCI build rules...
gcc -c -I/oracle/app/oracle/product/9.2/rdbms/demo
-I/oracle/app/oracle/product/9.2/rdbms/public
-I/oracle/app/oracle/product/9.2/plsql/public
-I/oracle/app/oracle/product/9.2/network/public
-I/oracle/app/oracle/product/9.2/rdbms/demo
-I/oracle/app/oracle/product/9.2/rdbms/demo
-I/var/local/web/perl-5.6.1/lib/site_perl/5.6.1/sun4-solaris/auto/DBI
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O
  -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\" -fPIC
-I/var/local/web/perl-5.6.1/lib/5.6.1/sun4-solaris/CORE  DBD_ORA_OBJ.c
Oracle oci build command:
        echo -L/oracle/app/oracle/product/9.2/lib32/
-L/oracle/app/oracle/product/9.2/rdbms/lib32/ -o DBD_ORA_EXE DBD_ORA_OBJ.o
-lclntsh   `cat /oracle/app/oracle/product/9.2/lib/sysliblist`
-R/oracle/app/oracle/product/9.2/lib -laio  -lposix4 -lkstat -lm  -lthread
        -L/oracle/app/oracle/product/9.2/lib32/
-L/oracle/app/oracle/product/9.2/rdbms/lib32/ -o DBD_ORA_EXE DBD_ORA_OBJ.o
-lclntsh -lnsl -lsocket -lgen -ldl -R/oracle/app/oracle/product/9.2/lib -laio
-lposix4 -lkstat -lm -lthread
Unable to interpret Oracle oci build commands. Using fallback approach.

System: perl5.006001 sunos etcweb2.princeton.edu 5.8 generic_108528-18 sun4u
sparc sunw,sun-fire-280r
Compiler:   gcc -O -I/usr/local/include -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/oracle/app/oracle/product/9.2/rdbms/demo
-I/oracle/app/oracle/product/9.2/rdbms/public
-I/oracle/app/oracle/product/9.2/plsql/public
-I/oracle/app/oracle/product/9.2/network/public -DSLMXMX_ENABLE -DSLTS_ENABLE
-D_SVID_GETTOD -D_REENTRANT $(LPFLAGS) $(USRFLAGS)]

  build:     $(CC) $(ORALIBPATH32) -o $(EXE) $(OBJS) $(OCISHAREDLIBS)
  expanded `cat /oracle/app/oracle/product/9.2/lib/sysliblist`
           [ cc -L/oracle/app/oracle/product/9.2/lib32/
-L/oracle/app/oracle/product/9.2/rdbms/lib32/ -o $(EXE) $(OBJS) -lclntsh
$(EXPDLIBS) $(EXOSLIBS) -lnsl -lsocket -lgen -ldl
-R/oracle/app/oracle/product/9.2/lib -laio $(THREADLIBS) -lposix4 -lkstat -lm
$(USRLIBS) -lthread]

  LDFLAGS:  -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME)
           [-o $@ -L/oracle/app/oracle/product/9.2/rdbms/lib/ -L$(LIBHOME)]


Linking with /oracle/app/oracle/product/9.2/rdbms/lib/defopt.o  -lclntsh -lnsl
-lsocket -lgen -ldl -R/oracle/app/oracle/product/9.2/lib -laio -lposix4 -lkstat
-lm -lthread [from $(DEF_OPT) $(OCISHAREDLIBS)]


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

LD_RUN_PATH=/oracle/app/oracle/product/9.2/lib
Using DBD::Oracle 1.12.
Using DBI 1.32 installed in
/var/local/web/perl-5.6.1/lib/site_perl/5.6.1/sun4-solaris/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?)



-- 
Kevin Perry                       Educational Technologies Center (ETC)
<[EMAIL PROTECTED]>             330 Frist Campus Center
http://etc.princeton.edu/perry    Princeton University
voice: 609-258-4697               fax: 609-258-6904

Reply via email to