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