Thanks that helped me get further. Ok so I added 'OCIServerRelease' to 'oci.def' then did a 'make clean', then 'perl Makefile.PL' and then 'make' and it looks like it finished successfully but all tests by 'make test' failed with this: Can't load '/home/user/DBD-Oracle-1.28/blib/arch/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: Exec format error at /usr/lib/perl5/5.10/i686-cygwin/DynaLoader.pm line 200.
Here are the last lines of output from 'make': $ make ... ... chmod 755 blib/arch/auto/DBD/Oracle/Oracle.dll test -s Oracle.bs && cp Oracle.bs blib/arch/auto/DBD/Oracle/Oracle.bs && \ chmod 644 blib/arch/auto/DBD/Oracle/Oracle.bs make: [blib/arch/auto/DBD/Oracle/Oracle.dll] Error 1 (ignored) /usr/bin/perl.exe "-Iblib/arch" "-Iblib/lib" ora_explain.PL ora_explain Extracted ora_explain from ora_explain.PL with variable substitutions. cp ora_explain blib/script/ora_explain /usr/bin/perl.exe -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/ora_explain Manifying blib/man1/ora_explain.1 Manifying blib/man3/DBD.Oracle.3pm Manifying blib/man3/DBD.Oraperl.3pm Here's a sample of what I'm seeing from 'make test': $ make test 2>&1 |less PERL_DL_NONLAZY=1 /usr/bin/perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t # Test loading DBI, DBD::Oracle and version # Failed test 'install_driver' # at t/01base.t line 22. Failed to load Oracle extension and/or shared libraries: install_driver(Oracle) failed: Can't load '/home/user/DBD-Oracle-1.28/blib/arch/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: Exec format error at /usr/lib/perl5/5.10/i686-cygwin/DynaLoader.pm line 200. at (eval 8) line 3 Compilation failed in require at (eval 8) line 3. Perhaps a required shared library or dll isn't installed where expected at t/01base.t line 19 The remaining tests will probably also fail with the same error.^G On Thu, Mar 24, 2011 at 1:32 PM, John Scoles <byter...@hotmail.com> wrote: > > Ok I think I know what it is looks like I forgot to put > > OCIServerRelease > > in the > > oci.def > > Add the word in there and see what happens > > Silly mistake really but hard to catch unless you have the right test system > handy > > We would of caught this if we had a broader test page for the Release > Cadidates, hint hint nudge nudge ;) ;) > > Cheers > John Scoles > >> Date: Thu, 24 Mar 2011 13:27:20 +0100 >> From: alexan...@foken.de >> To: dbi-users@perl.org >> CC: jason.thurs...@gmail.com >> Subject: Re: Fwd: Error 'making DBD:Oracle 1.28 on Cygwin W >> >> DBD::Oracle 1.27 compiled, tested and installed without any problems. >> The changes in >> <URL:http://search.cpan.org/~pythian/DBD-Oracle-1.28/Changes#Changes_in_DBD-Oracle_1.28_%28svn_rev_14765%29> >> don't look relevant to my environment. I can live with that. >> >> Now it is clear that some change from 1.27 to 1.28 broke compatibilty >> with Oracle 10.2g. >> >> Alexander >> >> On 03/24/2011 12:18 PM, Alexander Foken wrote: >> > Hmmm, on my other system, DBD::Oracle 1.23 and Oracle 10.2g work >> > perfectly. So, what's the difference? >> > >> > XP vs. 2000 -- unlikely >> > Much older DBD::Oracle >> > >> > Looking at the DBD::Oracle diffs available at search.cpan.org, I see >> > that OCIServerRelease exists in the diffs from 1.27 to 1.28 (in >> > Oracle.xs, condition added to avoid calling OCIServerVersion on >> > servers < 10.2), and in the diffs from 1.24b to 1.25 (don't quite >> > understand what happens there). But I see no change containing >> > OCIServerVersion in the diffs from 1.24b to 1.25. >> > >> > I will try compiling 1.27, then 1.23 after lunch ... >> > >> > Alexander >> > >> > On 03/24/2011 11:59 AM, Alexander Foken wrote: >> >> Hello, >> >> >> >> sorry, just a "me too" posting. I was just about to ask for nearly(?) >> >> the same problem. >> >> >> >> I'm trying with Strawberry Perl 5.12.2.0 and 5.10.0.4, Oracle 10g, >> >> DBD::Oracle 1.28, Windows 2000 Professional. >> >> >> >> Final problem after tons of warnings: oci8.o: oci8.c: undefined >> >> reference to 'OCIServerRelease' >> >> >> >> See attached logfile of running perl Makefile.PL and dmake (with Perl >> >> 5.12, same messages with 5.10). >> >> >> >> I would guess that there is a problem with DBD::Oracle, because we >> >> get the same missing symbol for different OS versions, different >> >> Perl ports, different Perl versions, different DBI versions, >> >> different Oracle versions. >> >> >> >> Alexander >> >> >> >> On 03/24/2011 12:15 AM, Jason Thurston wrote: >> >>> Hello, >> >>> >> >>> Does anyone have any ideas where to go from here? >> >>> >> >>> I think "perl Makefile.PL" is successful but I get an error when >> >>> trying the next step "make". >> >>> The Error I get when trying to "make" is >> >>> "/home/foo/DBD-Oracle-1.28/oci8.c:4619: undefined reference to >> >>> `_OCIServerRelease'". See Below for details. >> >>> >> >>> I originally tried with the cygwin cpan tool but then downloaded the >> >>> packaged and tried manually but got the exact same error. >> >>> >> >>> >> >>> DETAILS: >> >>> >> >>> OS: >> >>> Windows 2003 Enterprise X64 Edition >> >>> >> >>> $ uname -a >> >>> CYGWIN_NT-5.2-WOW64 mck-rnmwv4-ip42 1.7.8(0.236/5/3) 2011-03-01 09:36 >> >>> i686 Cygwin >> >>> >> >>> $ env|grep -i ora|two >> >>> ORACLE_USER=foo1/foo1@foo >> >>> ORACLE_SID=foo >> >>> ORACLE_USERID=foo1/foo1@foo >> >>> TWO_TASK=foo >> >>> TNS_ADMIN=E:\oracle\instantclient_11_2 >> >>> PATH=/usr/local/bin:/usr/bin:/cygdrive/e/oracle/instantclient_11_2:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0:/cygdrive/e/PROGRA~1/BMCSOF~1/Patrol3/bin:/cygdrive/e/PROGRA~1/BMCSOF~1/MASTER~1/server/bin:/cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0:/opt/java/bin >> >>> >> >>> CLASSPATH=.;E:\oracle\instantclient_11_2/ojdbc6.jar >> >>> ORACLE_HOME=E:\oracle\instantclient_11_2 >> >>> >> >>> $ pwd >> >>> /home/foo/DBD-Oracle-1.28 >> >>> >> >>> >> >>> $ perl -v >> >>> >> >>> This is perl, v5.10.1 (*) built for i686-cygwin-thread-multi-64int >> >>> >> >>> >> >>> $ sqlplus foo1/foo1@foo >> >>> >> >>> SQL*Plus: Release 11.2.0.2.0 Production on Wed Mar 23 19:02:30 2011 >> >>> >> >>> Copyright (c) 1982, 2010, Oracle. All rights reserved. >> >>> >> >>> se >> >>> Connected to: >> >>> Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production >> >>> With the Partitioning and Oracle Data Mining options >> >>> JServer Release 9.2.0.4.0 - Production >> >>> >> >>> SQL> select * from v$version; >> >>> >> >>> BANNER >> >>> ---------------------------------------------------------------- >> >>> Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production >> >>> PL/SQL Release 9.2.0.4.0 - Production >> >>> CORE 9.2.0.3.0 Production >> >>> TNS for HPUX: Version 9.2.0.4.0 - Production >> >>> NLSRTL Version 9.2.0.4.0 - Production >> >>> >> >>> SQL> quit >> >>> Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - >> >>> 64bit Production >> >>> With the Partitioning and Oracle Data Mining options >> >>> JServer Release 9.2.0.4.0 - Production >> >>> >> >>> >> >>> >> >>> >> >>> $ perl Makefile.PL >> >>> Using DBI 1.616 (for perl 5.010001 on i686-cygwin-thread-multi-64int) >> >>> installed in /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBI/ >> >>> >> >>> Configuring DBD::Oracle for perl 5.010001 on cygwin >> >>> (i686-cygwin-thread-multi-64int) >> >>> >> >>> Remember to actually *READ* the README file! Especially if you have >> >>> any problems. >> >>> >> >>> Installing on a cygwin, Ver#1.7 >> >>> Using Oracle in E:/oracle/instantclient_11_2 >> >>> DEFINE _SQLPLUS_RELEASE = "1102000200" (CHAR) >> >>> Oracle version 11.2.0.2 (11.2) >> >>> Using OCI directory 'sdk' >> >>> >> >>> client_version=11.2 >> >>> >> >>> >> >>> DEFINE= -Wall -Wno-comment -DUTF8_SUPPORT >> >>> -DORA_OCI_VERSION=\"11.2.0.2\" -DORA_OCI_102 -DORA_OCI_112 >> >>> >> >>> >> >>> Checking for functioning wait.ph >> >>> >> >>> >> >>> System: perl5.010001 cygwin_nt-5.1 reini 1.7.5(0.22553) 2010-04-12 >> >>> 19:07 i686 cygwin >> >>> Compiler: gcc-4 -O3 -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g3 >> >>> -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include >> >>> Linker: /usr/bin/ld >> >>> Sysliblist: >> >>> >> >>> >> >>> WARNING: If you have problems you may need to rebuild perl with >> >>> -Uusemymalloc. >> >>> Checking if your kit is complete... >> >>> Looks good >> >>> LD_RUN_PATH=E:/oracle/instantclient_11_2/lib:E:/oracle/instantclient_11_2/rdbms/lib >> >>> >> >>> Using DBD::Oracle 1.28. >> >>> Using DBD::Oracle 1.28. >> >>> Using DBI 1.616 (for perl 5.010001 on i686-cygwin-thread-multi-64int) >> >>> installed in /usr/lib/perl5/site_perl/5.10/i686-cygwin/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.exe -p -e "s/~DRIVER~/Oracle/g" >> >>> /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBI/Driver.xst> >> >>> Oracle.xsi >> >>> /usr/bin/perl.exe /usr/lib/perl5/5.10/ExtUtils/xsubpp -typemap >> >>> /usr/lib/perl5/5.10/ExtUtils/typemap -typemap typemap Oracle.xs> >> >>> Oracle.xsc&& mv Oracle.xsc Oracle.c >> >>> gcc-4 -c -IE:/oracle/instantclient_11_2/sdk/include >> >>> -IE:/oracle/instantclient_11_2/rdbms/demo >> >>> -I/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBI >> >>> -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g3 -fno-strict-aliasing >> >>> -pipe -fstack-protector -I/usr/local/include -DUSEIMPORTLIB -O3 >> >>> -DVERSION=\"1.28\" -DXS_VERSION=\"1.28\" >> >>> "-I/usr/lib/perl5/5.10/i686-cygwin/CORE" -Wall -Wno-comment >> >>> -DUTF8_SUPPORT -DORA_OCI_VERSION=\"11.2.0.2\" -DORA_OCI_102 >> >>> -DORA_OCI_112 Oracle.c >> >>> gcc-4 -c -IE:/oracle/instantclient_11_2/sdk/include >> >>> -IE:/oracle/instantclient_11_2/rdbms/demo >> >>> -I/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBI >> >>> -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g3 -fno-strict-aliasing >> >>> -pipe -fstack-protector -I/usr/local/include -DUSEIMPORTLIB -O3 >> >>> -DVERSION=\"1.28\" -DXS_VERSION=\"1.28\" >> >>> "-I/usr/lib/perl5/5.10/i686-cygwin/CORE" -Wall -Wno-comment >> >>> -DUTF8_SUPPORT -DORA_OCI_VERSION=\"11.2.0.2\" -DORA_OCI_102 >> >>> -DORA_OCI_112 dbdimp.c >> >>> dbdimp.c: In function ‘dbd_rebind_ph_char’: >> >>> dbdimp.c:2666: warning: cast from pointer to integer of different size >> >>> dbdimp.c: In function ‘dbd_rebind_ph_xml’: >> >>> dbdimp.c:2864: warning: cast to pointer from integer of different size >> >>> dbdimp.c: In function ‘ora_bind_ph’: >> >>> dbdimp.c:3157: warning: format ‘%ld’ expects type ‘long int’, >> >>> but argument 2 has type ‘IV’ >> >>> dbdimp.c:3166: warning: format ‘%ld’ expects type ‘long int’, >> >>> but argument 2 has type ‘IV’ >> >>> dbdimp.c:3200: warning: format ‘%ld’ expects type ‘long int’, >> >>> but argument 3 has type ‘IV’ >> >>> dbdimp.c: At top level: >> >>> dbdimp.c:288: warning: ‘oratype_rebind_ok’ defined but not used >> >>> gcc-4 -c -IE:/oracle/instantclient_11_2/sdk/include >> >>> -IE:/oracle/instantclient_11_2/rdbms/demo >> >>> -I/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBI >> >>> -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g3 -fno-strict-aliasing >> >>> -pipe -fstack-protector -I/usr/local/include -DUSEIMPORTLIB -O3 >> >>> -DVERSION=\"1.28\" -DXS_VERSION=\"1.28\" >> >>> "-I/usr/lib/perl5/5.10/i686-cygwin/CORE" -Wall -Wno-comment >> >>> -DUTF8_SUPPORT -DORA_OCI_VERSION=\"11.2.0.2\" -DORA_OCI_102 >> >>> -DORA_OCI_112 oci8.c >> >>> oci8.c: In function ‘ora_blob_read_mb_piece’: >> >>> oci8.c:1737: warning: format ‘%lu’ expects type ‘long unsigned >> >>> int’, but argument 6 has type ‘ub4’ >> >>> oci8.c: In function ‘ora_st_fetch’: >> >>> oci8.c:3895: warning: format ‘%d’ expects type ‘int’, but >> >>> argument 4 has type ‘IV’ >> >>> oci8.c:3895: warning: format ‘%d’ expects type ‘int’, but >> >>> argument 4 has type ‘IV’ >> >>> oci8.c:3903: warning: format ‘%d’ expects type ‘int’, but >> >>> argument 3 has type ‘IV’ >> >>> oci8.c:3903: warning: format ‘%d’ expects type ‘int’, but >> >>> argument 3 has type ‘IV’ >> >>> rm -f blib/arch/auto/DBD/Oracle/Oracle.dll >> >>> LD_RUN_PATH="E:/oracle/instantclient_11_2/lib:E:/oracle/instantclient_11_2/rdbms/lib" >> >>> >> >>> g++-4 --shared -Wl,--enable-auto-import -Wl,--export-all-symbols >> >>> -Wl,--stack,8388608 -Wl,--enable-auto-image-base -L/usr/local/lib >> >>> -fstack-protector Oracle.o dbdimp.o oci8.o -o >> >>> blib/arch/auto/DBD/Oracle/Oracle.dll \ >> >>> /usr/lib/perl5/5.10/i686-cygwin/CORE/cygperl5_10.dll >> >>> -L/home/e8hqxdh/DBD-Oracle-1.28 -loci \ >> >>> >> >>> oci8.o: In function `ora_db_version': >> >>> /home/foo/DBD-Oracle-1.28/oci8.c:4619: undefined reference to >> >>> `_OCIServerRelease' >> >>> collect2: ld returned 1 exit status >> >>> make: *** [blib/arch/auto/DBD/Oracle/Oracle.dll] Error 1 > -- Jason Thurston