DBD::Oracle 1.32 Compile Errors : Oracle.c: In funct ion ‘XS_DBD__Oracle__db_ora_db_startup’ and more....help ?

James Freire <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.general
Message-ID <CAOYDRvzt00bh+viKESucQb5ww8ctSeb4v1uZQjTOJgsd8uwQ7g@mail.gmail.com>
Hi All,

I've been banging my head against the desk trying to get DBD::Oracle to
compile on Redhat (Linux 2.6.18-238.1.1.el5 #1 SMP Tue Jan 4 13:32:19 EST
2011 x86_64 x86_64 x86_64 GNU/Linux).  Oracle version 10.1.0.5 (10.1)

I read through the supporting documents and I cannot find anything that I
have been missing when trying to build DBD::Oracle 1.32
I get the same compile errors in 1.29, 1.30 and 1.32.  I attached the
outputs of perl Makefile.PL, make and perl -V


make output:

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/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/Driver.xst
> Oracle.xsi
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap
/usr/lib/perl5/5.8.8/ExtUtils/typemap -typemap typemap  Oracle.xs >
Oracle.xsc && mv Oracle.xsc Oracle.c
gcc -c  -I/oracle/software/10.1.0.5.0/rdbms/public
-I/oracle/software/10.1.0.5.0//rdbms/demo
-I/oracle/software/10.1.0.5.0//rdbms/public
-I/oracle/software/10.1.0.5.0//plsql/public
-I/oracle/software/10.1.0.5.0//network/public
-I/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI
-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
-Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"1.32\"
-DXS_VERSION=\"1.32\" -fPIC
"-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE"  -Wall
-Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"10.1.0.5\" Oracle.c
Oracle.c: In function ‘XS_DBD__Oracle__db_ora_db_startup’:
Oracle.xs:286: warning: unused variable ‘status’
Oracle.xs:285: warning: unused variable ‘imp_dbh’
Oracle.c:1715: warning: unused variable ‘attribs’
Oracle.c: In function ‘XS_DBD__Oracle__db_ora_db_shutdown’:
Oracle.xs:329: warning: unused variable ‘status’
Oracle.xs:328: warning: unused variable ‘imp_dbh’
Oracle.c:1770: warning: unused variable ‘attribs’
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_can_taf’:
Oracle.xs:360: error: ‘OCI_ATTR_TAF_ENABLED’ undeclared (first use in this
function)
Oracle.xs:360: error: (Each undeclared identifier is reported only once
Oracle.xs:360: error: for each function it appears in.)
make: *** [Oracle.o] Error 1





perl Makefile.PL looks fine when I run it:

Using DBI 1.616 (for perl 5.008008 on x86_64-linux-thread-multi) installed
in /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/

Configuring DBD::Oracle for perl 5.008008 on linux
(x86_64-linux-thread-multi)


Installing on a linux, Ver#2.6
Using Oracle in /oracle/software/10.1.0.5.0
DEFINE _SQLPLUS_RELEASE = "1001000500" (CHAR)
Oracle version 10.1.0.5 (10.1)
Found /oracle/software/10.1.0.5.0/rdbms/demo/demo_rdbms.mk
Found /oracle/software/10.1.0.5.0/rdbms/demo/demo_rdbms64.mk
Found /oracle/software/10.1.0.5.0/rdbms/lib/ins_rdbms.mk
Using /oracle/software/10.1.0.5.0/rdbms/demo/demo_rdbms.mk
Your LD_LIBRARY_PATH env var is set to '/oracle/software/10.1.0.5.0/lib/'
Reading /oracle/software/10.1.0.5.0/rdbms/demo/demo_rdbms.mk
Reading /oracle/software/10.1.0.5.0//rdbms/lib/env_rdbms.mk

Attempting to discover Oracle OCI build rules
gcc    -c -o DBD_ORA_OBJ.o DBD_ORA_OBJ.c
by executing: [make -f
/oracle/software/10.1.0.5.0/rdbms/demo/demo_rdbms.mkbuild 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 -L/oracle/software/10.1.0.5.0//lib/
-L/oracle/software/10.1.0.5.0//rdbms/lib/ -o DBD_ORA_EXE DBD_ORA_OBJ.o
-lclntsh   `cat /oracle/software/10.1.0.5.0//lib/sysliblist` -ldl -lm  ]

Found header files in /oracle/software/10.1.0.5.0/rdbms/public.

client_version=10.1


DEFINE= -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"10.1.0.5\"


Checking for functioning wait.ph


System: perl5.008008 linux x86-005.build.bos.redhat.com 2.6.18-194.8.1.el5
#1 smp wed jun 23 10:52:51 edt 2010 x86_64 x86_64 x86_64 gnulinux
Compiler:   gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_REENTRANT
-D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/include/gdbm
Linker:     /usr/bin/ld
Sysliblist: -ldl -lm -lpthread -lnsl -lirc
Oracle makefiles would have used these definitions but we override them:
  CC:       $(ORACLE_HOME)/bin/ogcc
  CFLAGS:   $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\
$(SHARED_CFLAG) $(USRFLAGS)
           [$(GFLAG) -O3 $(CDEBUG) $(CCFLAGS)
-I/oracle/software/10.1.0.5.0//rdbms/demo
-I/oracle/software/10.1.0.5.0//rdbms/public
-I/oracle/software/10.1.0.5.0//plsql/public
-I/oracle/software/10.1.0.5.0//network/public -DLINUX -D_GNU_SOURCE
-D_LARGEFILE64_SOURCE=1 -D_LARGEFILE_SOURCE=1 -DSLTS_ENABLE -DSLMXMX_ENABLE
-D_REENTRANT -DNS_THREADS $(LPFLAGS) $(USRFLAGS)]
  LDFLAGS:  -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME)
$(LDPATHFLAG)$(LIBHOME)stubs/
           [-o $@ -L/oracle/software/10.1.0.5.0//rdbms/lib/ -L$(LIBHOME)
-L$(LIBHOME)stubs/]
Linking with OTHERLDFLAGS = -L/oracle/software/10.1.0.5.0//lib/
-L/oracle/software/10.1.0.5.0//rdbms/lib/   -lclntsh   `cat
/oracle/software/10.1.0.5.0//lib/sysliblist` -ldl -lm   [from 'build' rule]

Checking if your kit is complete...
Warning: the following files are missing in your kit:
README.explain.txt
Please inform the author.
LD_RUN_PATH=/oracle/software/10.1.0.5.0/lib:/oracle/software/10.1.0.5.0/rdbms/lib
Using DBD::Oracle 1.32.
Using DBD::Oracle 1.32.
Using DBI 1.616 (for perl 5.008008 on x86_64-linux-thread-multi) installed
in /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
Writing Makefile for DBD::Oracle
Writing MYMETA.yml and MYMETA.json

***  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?)



###################################################
###################################################



perl -V

Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
  Platform:
    osname=linux, osvers=2.6.18-194.8.1.el5,
archname=x86_64-linux-thread-multi
    uname='linux x86-005.build.bos.redhat.com 2.6.18-194.8.1.el5 #1 smp wed
jun 23 10:52:51 edt 2010 x86_64 x86_64 x86_64 gnulinux '
    config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
-Dversion=5.8.8 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc
-Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr
-Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dprivlib=/usr/lib/perl5/5.8.8
-Dsitelib=/usr/lib/perl5/site_perl/5.8.8
-Dvendorlib=/usr/lib/perl5/vendor_perl/5.8.8
-Darchlib=/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
-Dsitearch=/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
-Dvendorarch=/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
-Darchname=x86_64-linux-thread-multi -Dvendorprefix=/usr -Dsiteprefix=/usr
-Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid
-Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog
-Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005
-Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto
-Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto
-Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto
-Dinc_version_list=5.8.7 5.8.6 5.8.5 -Dscriptdir=/usr/bin'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=define use64bitall=define uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing
-pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
    optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
-Wdeclaration-after-statement -I/usr/local/include -I/usr/include/gdbm'
    ccversion='', gccversion='4.1.2 20080704 (Red Hat 4.1.2-48)',
gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =''
    libpth=/usr/local/lib64 /lib64 /usr/lib64
    libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
    perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.5'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E
-Wl,-rpath,/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
                        PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT
                        USE_ITHREADS USE_LARGE_FILES USE_PERLIO
                        USE_REENTRANT_API
  Built under linux
  Compiled at Sep  3 2010 08:59:03
  @INC:
    /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.8.8
    /usr/lib/perl5/site_perl
    /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.8.8
    /usr/lib/perl5/vendor_perl
    /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/5.8.8
    .
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.