Tim Bunce wrote: > On Wed, Sep 24, 2003 at 08:08:51PM +0100, Andy Hassall wrote: >> Tim Bunce wrote: >>> On Wed, Sep 24, 2003 at 11:24:17AM +0200, Steffen Goeldner wrote: >>>> dmake >>>> ... >>>> Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland >>>> Error: Unresolved external '_SQLEnvGet' referenced from >>>> C:\TEMP\DBD-ORACLE-1.15\DBDIMP.OBJ Error: Unresolved external >>>> '_SQLSvcCtxGet' referenced from C:\TEMP\DBD-ORACLE-1.15\DBDIMP.OBJ >>> >>> If you (or someone else) are familar enough with windows, could you >>> check if those symbols are in some other oracle library that we're >>> not linking with? >> >> Those symbols are part of SQLLIB: >> >> http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a97269/pc_01int.htm#1174 >> >> $ORACLE_HOME/precomp/lib/oraSQL9.LIB has those symbols (and the other >> version in the msvc subdirectory): > > Okay. You're using Oracle 9.x but Steffen was using Oracle 8.1.7. > > I know the code that uses those symbols isn't properly #ifdef'd > out on older versions of Oracle so I need to fix that. > > But I also need to know if DBD::Oracle builds okay on Windows > for Oracle 9.x users. Does it? If not then I presume the problem > is that we need to link to oraSQL9.LIB. Does that fix it? > > If DBD::Oracle does work ok on windows with Oracle 9.c then I'm > just left with the problem of working out a) the oldest Oracle > version that supports SQLEnvGet etc, and b) how to tell that > version from the header files (sadly Oracle doesn't provide a > simple way to do that).
It also fails building against 9.2.0.4: [EMAIL PROTECTED] /cygdrive/d/Temp/DBD-Oracle-1.15 $ nmake Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. cp Oracle.h blib\arch\auto\DBD\Oracle/Oracle.h 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 lib/DBD/Oracle/GetInfo.pm blib\lib\DBD/Oracle/GetInfo.pm cp mk.pm blib\arch\auto\DBD\Oracle/mk.pm rem rem D:\Perl\bin\perl.exe -p -e "s/~DRIVER~/Oracle/g" d:/Perl/site/lib/auto/DBI/Driver.xst > Oracle.xsi D:\Perl\bin\perl.exe D:\Perl\lib\ExtUtils/xsubpp -typemap D:\Perl\lib\ExtUtils\typemap -typemap typemap Oracle.xs > Oracle.xsc && D:\Perl\bin\perl.exe -MExtUtils::Command -e mv Oracle.xsc Oracle.c cl -c -ID:/oracle/ora92/oci/include -ID:/oracle/ora92/rdbms/demo -ID:/oracl e/ora92/precomp/public -Id:/Perl/site/lib/auto/DBI -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICI T_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DN DEBUG -O1 -DVERSION=\"1.15\" -DXS_VERSION=\"1.15\" "-ID:\Perl\lib\CORE" -DUTF8_SUPPORT Oracle.c Oracle.c Oracle.xs(99) : warning C4013: 'ora_st_cancel' undefined; assuming extern returning int Oracle.xs(273) : warning C4013: 'dbd_init_oci_drh' undefined; assuming extern returning int cl -c -ID:/oracle/ora92/oci/include -ID:/oracle/ora92/rdbms/demo -ID:/oracl e/ora92/precomp/public -Id:/Perl/site/lib/auto/DBI -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICI T_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DN DEBUG -O1 -DVERSION=\"1.15\" -DXS_VERSION=\"1.15\" "-ID:\Perl\lib\CORE" -DUTF8_SUPPORT dbdimp.c dbdimp.c dbdimp.c(328) : warning C4013: 'SQLEnvGet' undefined; assuming extern returning int dbdimp.c(386) : warning C4013: 'SQLSvcCtxGet' undefined; assuming extern returning int dbdimp.c(1100) : warning C4018: '>' : signed/unsigned mismatch dbdimp.c(1641) : warning C4018: '!=' : signed/unsigned mismatch cl -c -ID:/oracle/ora92/oci/include -ID:/oracle/ora92/rdbms/demo -ID:/oracl e/ora92/precomp/public -Id:/Perl/site/lib/auto/DBI -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICI T_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DN DEBUG -O1 -DVERSION=\"1.15\" -DXS_VERSION=\"1.15\" "-ID:\Perl\lib\CORE" -DUTF8_SUPPORT oci7.c oci7.c cl -c -ID:/oracle/ora92/oci/include -ID:/oracle/ora92/rdbms/demo -ID:/oracl e/ora92/precomp/public -Id:/Perl/site/lib/auto/DBI -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICI T_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DN DEBUG -O1 -DVERSION=\"1.15\" -DXS_VERSION=\"1.15\" "-ID:\Perl\lib\CORE" -DUTF8_SUPPORT oci8.c oci8.c oci8.c(524) : warning C4018: '>' : signed/unsigned mismatch oci8.c(658) : warning C4013: 'pp_rebind_ph_rset_in' undefined; assuming extern returning int oci8.c(738) : warning C4018: '>' : signed/unsigned mismatch oci8.c(819) : warning C4018: '>' : signed/unsigned mismatch oci8.c(889) : warning C4018: '>' : signed/unsigned mismatch oci8.c(891) : warning C4018: '>' : signed/unsigned mismatch oci8.c(1102) : warning C4018: '<=' : signed/unsigned mismatch oci8.c(1275) : warning C4018: '<=' : signed/unsigned mismatch "Running Mkbootstrap for DBD::Oracle ()" D:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 Oracle.bs D:\Perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>\"DBD::Oracle\", 'DLBASE' => 'Oracle', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" link -out:blib\arch\auto\DBD\Oracle\Oracle.dll -dll -nologo -nodefaultlib -d ebug -opt:ref,icf -libpath:"D:\Perl\lib\CORE" -machine:x86 Oracle.obj dbdimp.obj oci7.obj oci8.obj D:\Perl\lib\CORE\perl58.lib D:\oracle\ora92\oci\LIB\MSVC\OCI.lib "D:\Program Files\Microsoft Visual Studio\VC98\lib\oldnames.lib" "D:\Program Files\Microsoft SDK\Lib\.\kernel32.lib" "D:\Program Files\Microsoft SDK\Lib\.\user32.lib" "D:\Program Files\Microsoft SDK\Lib\.\gdi32.lib" "D:\Program Files\Microsoft SDK\Lib\.\winspool.lib" "D:\Program Files\Microsoft SDK\Lib\.\comdlg32.lib" "D:\Program Files\Microsoft SDK\Lib\.\advapi32.lib" "D:\Program Files\Microsoft SDK\Lib\.\shell32.lib" "D:\Program Files\Microsoft SDK\Lib\.\ole32.lib" "D:\Program Files\Microsoft SDK\Lib\.\oleaut32.lib" "D:\Program Files\Microsoft SDK\Lib\.\netapi32.lib" "D:\Program Files\Microsoft SDK\Lib\.\uuid.lib" "D:\Program Files\Microsoft SDK\Lib\.\wsock32.lib" "D:\Program Files\Microsoft SDK\Lib\.\mpr.lib" "D:\Program Files\Microsoft SDK\Lib\.\winmm.lib" "D:\Program Files\Microsoft SDK\Lib\.\version.lib" "D:\Program Files\Microsoft Visual Studio\VC98\lib\odbc32.lib" "D:\Program Files\Microsoft Visual Studio\VC98\lib\odbccp32.lib" "D:\Program Files\Microsoft Visual Studio\VC98\lib\msvcrt.lib" -def:Oracle.def Creating library blib\arch\auto\DBD\Oracle\Oracle.lib and object blib\arch\auto\DBD\Oracle\Oracle.exp dbdimp.obj : error LNK2001: unresolved external symbol _SQLSvcCtxGet dbdimp.obj : error LNK2001: unresolved external symbol _SQLEnvGet blib\arch\auto\DBD\Oracle\Oracle.dll : fatal error LNK1120: 2 unresolved externals NMAKE : fatal error U1077: 'link' : return code '0x460' Stop. Adding D:/oracle/ora92/precomp/lib/MSVC/oraSQL9.LIB to that link.exe command makes it link OK - and tests pass (except the usual trailing space one): $ nmake test Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. rem rem D:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t\base.t t\cursor.t t\general.t t\long.t t\meta.t t\ph_type.t t\plsql.t t\reauth.t t\select.t t\base.......ok t\cursor.....ok t\general....ok t\long.......ok t\meta.......ok t\ph_type.... expected 'trailing' but got 'trailing ' for VARCHAR2 FAILED test 12 Failed 1/19 tests, 94.74% okay t\plsql......ok t\reauth.....skipped all skipped: no reason given t\select.....ok Failed 1/9 test scripts, 88.89% okay. 1/1530 subtests failed, 99.93% okay. Failed Test Stat Wstat Total Fail Failed List of Failed ---------------------------------------------------------------------------- --- t\ph_type.t 19 1 5.26% 12 1 test skipped. NMAKE : fatal error U1077: 'D:\Perl\bin\perl.exe' : return code '0xff' Stop. -- Andy Hassall ([EMAIL PROTECTED]) icq(5747695) (http://www.andyh.co.uk) Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)