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)

Reply via email to