Hello,
 
I get an undefined reference linker error when I try to build DBD::Oracle 1.15 in the 
Cygwin 1.5.7-1 environment running on Windows XP Pro. Specifically it is a undefined 
reference to `_OCILobWriteAppend'. I found one posting on the web that reported this 
specific problem but there was no suggested solution. I have the full set of Oracle 
8.1.7 client tools installed on my machine. I built liboci.a as described in 
README.wingcc, placed it in /usr/local/lib and tried to rebuild after doing a 
realclean but this did not help. I also set the ORACLE_HOME env variable explicitly 
but this also did not help. The requested debugging info follows.
 
Thanks,
Adrian
 
Details:
 
perl Makefile.PL:
 
Using DBI 1.41 (for perl 5.008002 on cygwin-thread-multi-64int) installed in 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/auto/DBI
 Configuring DBD::Oracle ...
>>> Remember to actually *READ* the README file!
    Especially if you have any problems.
Use of uninitialized value in subroutine entry at 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/Win32/Registry.pm line 452.
Use of uninitialized value in subroutine entry at 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/Win32/Registry.pm line 452.
Use of uninitialized value in subroutine entry at 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/Win32/Registry.pm line 459.
Use of uninitialized value in subroutine entry at 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/Win32/Registry.pm line 459.
Use of uninitialized value in subroutine entry at 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/Win32/Registry.pm line 459.
Use of uninitialized value in subroutine entry at 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/Win32/Registry.pm line 459.
Use of uninitialized value in subroutine entry at 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/Win32/Registry.pm line 459.
Use of uninitialized value in subroutine entry at 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/Win32/Registry.pm line 459.
Use of uninitialized value in subroutine entry at 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/Win32/Registry.pm line 459.
Use of uninitialized value in subroutine entry at 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/Win32/Registry.pm line 459.
Using Oracle in D:/oracle/ora81
WARNING: could not decode oracle version from
D:/oracle/ora81/orainst/inspdver, or D:/oracle/ora81/install/unix.rgs
or from ORACLE_HOME path D:/oracle/ora81.
Oracle version based logic in Makefile.PL may produce erroneous results.
Found oci directory
Using OCI directory 'oci'
Checking for functioning wait.ph

System: perl5.008002 cygwin_nt-5.0 troubardix 1.5.5(0.9432) 2003-09-20 16:31 i686 
unknown unknown cygwin 
Compiler:   gcc -O2 -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing
Linker:     /usr/bin/ld
Sysliblist: 

Warning: If you have problems you may need to rebuild perl with -Uusemymalloc.
MakeMaker (v6.17)
Checking if your kit is complete...
Looks good
  ABSTRACT_FROM => q[Oracle.pm]
  AUTHOR => q[Tim Bunce ([EMAIL PROTECTED])]
  DEFINE => q[ -DUTF8_SUPPORT]
  DIR => []
  EXE_FILES => [q[ora_explain]]
  INC => q[-ID:/oracle/ora81/oci/include -ID:/oracle/ora81/rdbms/demo 
-I/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/auto/DBI]
  LIBS => [q[-L/c/DBD-Oracle-1.15 -loci]]
  NAME => q[DBD::Oracle]
  OBJECT => q[$(O_FILES)]
  PREREQ_PM => { DBI=>q[0] }
  VERSION_FROM => q[Oracle.pm]
  clean => { FILES=>q[Oracle.xsi dll.base dll.exp sqlnet.log libOracle.def ora_explain 
mk.pm] }
  dist => { DIST_DEFAULT=>q[clean distcheck disttest ci tardist], COMPRESS=>q[gzip 
-v9], PREOP=>q[$(MAKE) -f Makefile.old distdir], SUFFIX=>q[gz] }
Using PERL=/usr/bin/perl.exe
Potential libraries are '-L/c/DBD-Oracle-1.15 -loci':
'-loci' found at /c/DBD-Oracle-1.15/liboci.a
LD_RUN_PATH=D:/oracle/ora81/lib:D:/oracle/ora81/rdbms/lib
Using DBD::Oracle 1.15.
Using DBD::Oracle 1.15.
Using DBI 1.41 (for perl 5.008002 on cygwin-thread-multi-64int) installed in 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/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?)
 
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/GetInfo.pm blib/lib/DBD/Oracle/GetInfo.pm
cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm
/usr/bin/perl.exe -p -e "s/~DRIVER~/Oracle/g" 
/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/auto/DBI/Driver.xst > 
Oracle.xsi
/usr/bin/perl.exe /usr/lib/perl5/5.8.2/ExtUtils/xsubpp  -typemap 
/usr/lib/perl5/5.8.2/ExtUtils/typemap -typemap typemap  Oracle.xs > Oracle.xsc && mv 
Oracle.xsc Oracle.c
gcc -c  -ID:/oracle/ora81/oci/include -ID:/oracle/ora81/rdbms/demo 
-I/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/auto/DBI 
-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -DUSEIMPORTLIB -O2   -DVERSION=\"1.15\" 
-DXS_VERSION=\"1.15\"  "-I/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE"  
-DUTF8_SUPPORT Oracle.c
gcc -c  -ID:/oracle/ora81/oci/include -ID:/oracle/ora81/rdbms/demo 
-I/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/auto/DBI 
-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -DUSEIMPORTLIB -O2   -DVERSION=\"1.15\" 
-DXS_VERSION=\"1.15\"  "-I/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE"  
-DUTF8_SUPPORT dbdimp.c
dbdimp.c: In function `ora_db_login6':
dbdimp.c:307: warning: cast to pointer from integer of different size
dbdimp.c:317: warning: cast to pointer from integer of different size
dbdimp.c:321: warning: cast to pointer from integer of different size
dbdimp.c:325: warning: cast to pointer from integer of different size
dbdimp.c: In function `dbd_rebind_ph_char':
dbdimp.c:1145: warning: cast from pointer to integer of different size
gcc -c  -ID:/oracle/ora81/oci/include -ID:/oracle/ora81/rdbms/demo 
-I/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/auto/DBI 
-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -DUSEIMPORTLIB -O2   -DVERSION=\"1.15\" 
-DXS_VERSION=\"1.15\"  "-I/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE"  
-DUTF8_SUPPORT oci7.c
gcc -c  -ID:/oracle/ora81/oci/include -ID:/oracle/ora81/rdbms/demo 
-I/usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int/auto/DBI 
-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -DUSEIMPORTLIB -O2   -DVERSION=\"1.15\" 
-DXS_VERSION=\"1.15\"  "-I/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE"  
-DUTF8_SUPPORT oci8.c
Running Mkbootstrap for DBD::Oracle ()
chmod 644 Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.dll
LD_RUN_PATH="D:/oracle/ora81/lib:D:/oracle/ora81/rdbms/lib" ld2  -s -L/usr/local/lib 
Oracle.o dbdimp.o oci7.o oci8.o  -o blib/arch/auto/DBD/Oracle/Oracle.dll  
/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/libperl.dll.a -L/c/DBD-Oracle-1.15 
-loci   
gcc -shared -o  Oracle.dll -Wl,--out-implib=libOracle.dll.a -Wl,--export-all-symbols 
-Wl,--enable-auto-import -Wl,--stack,8388608 \
-s -L/usr/local/lib Oracle.o dbdimp.o oci7.o oci8.o  
/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/libperl.dll.a -L/c/DBD-Oracle-1.15 
-loci
Creating library file: libOracle.dll.a
Oracle.o(.text+0x7a01):Oracle.c: undefined reference to `_OCILobWriteAppend'
collect2: ld returned 1 exit status
perlld: *** system() failed to execute
gcc -shared -o  Oracle.dll -Wl,--out-implib=libOracle.dll.a -Wl,--export-all-symbols 
-Wl,--enable-auto-import -Wl,--stack,8388608 \
-s -L/usr/local/lib Oracle.o dbdimp.o oci7.o oci8.o  
/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/libperl.dll.a -L/c/DBD-Oracle-1.15 
-loci
make: *** [blib/arch/auto/DBD/Oracle/Oracle.dll] Error 1
 
perl -V:

Summary of my perl5 (revision 5.0 version 8 subversion 2) configuration:
  Platform:
    osname=cygwin, osvers=1.5.5(0.9432), archname=cygwin-thread-multi-64int
    uname='cygwin_nt-5.0 troubardix 1.5.5(0.9432) 2003-09-20 16:31 i686 unknown 
unknown cygwin '
    config_args='-de -Dmksymlinks -Duse64bitint -Dusethreads -Doptimize=-O2 
-Dman3ext=3pm'
    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=undef uselongdouble=undef
    usemymalloc=y, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing',
    optimize='-O2',
    cppflags='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing'
    ccversion='', gccversion='3.3.1 (cygming special)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='ld2', ldflags =' -s -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib /lib
    libs=-lgdbm -ldb -lcrypt -lgdbm_compat
    perllibs=-lcrypt -lgdbm_compat
    libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' -s'
    cccdlflags=' ', lddlflags=' -s -L/usr/local/lib'

Characteristics of this binary (from libperl): 
  Compile-time options: MULTIPLICITY USE_ITHREADS USE_64_BIT_INT USE_LARGE_FILES 
PERL_IMPLICIT_CONTEXT
  Built under cygwin
  Compiled at Nov  7 2003 12:06:28
  %ENV:
    CYGWIN=""
  @INC:
    /usr/lib/perl5/5.8.2/cygwin-thread-multi-64int
    /usr/lib/perl5/5.8.2
    /usr/lib/perl5/site_perl/5.8.2/cygwin-thread-multi-64int
    /usr/lib/perl5/site_perl/5.8.2
    /usr/lib/perl5/site_perl
.
 
perl Makefile.PL -s _OCILobWriteAppend (last part of output):    

 

Searching for symbol '_OCILobWriteAppend' in D:/oracle/ora81 ...
  searching oracle lib/liboci.a ...
  searching oracle lib/*.dll ...
nm: lib/*.dll: No such file or directory
  searching oracle */lib/*.[ao] ...
nm: */lib/*.[ao]: No such file or directory
Search done.
(Please only include the 'interesting' parts when mailing.)


Reply via email to