Hi all,

Being new to DBI (although not to Perl or CPAN modules) I recently
downloaded the latest DBI version and attempted to install under Windows
2000 with the normal:

perl Makefile.PL
nmake
nmake test
nmake install

... however the C compile is failing due to a whole load of undefined
symbols. Perhaps this is because I'm using an older version of Perl
(5.004_04) but changing this is problematic (although if I have to
because of this I guess that's life) as a lot of other things rely on
it. Nor do I want to do a binary download since the build environment
I'm using is cross-platform and Perl is one of the bits which just works
on all platforms at the moment.

Having looked through this list archive I see that the 1.201 is actually
meant to be a test release, but since it has been uploaded to both CPAN
and the DBI homepage it appears to be impossible to download an earlier,
possibly more stable release which might fix the problem - anyone know
of a method for fetching older versions of the module? Although I'm
happy to help with debugging the test version I really need to get up
and running here with something that works..

For reference the errors start around line 1611 with the subroutine
definition for dbi_dopoptosub_at. Changing STATIC to lowercase removes
the first error but the main problem is the PERL_SI symbol (and related
symbols) which I can't find defined anywhere in either the DBI subtree
or the Perl subtree.

Perl is built in the same environment, and works fine, as do all the
other 15-20 modules or so that I regularly build. 

Any help appreciated,
Keith.


perl -V gives:

Summary of my perl5 (5.0 patchlevel 4 subversion 04) configuration:
  Platform:
    osname=MSWin32, osvers=4.0, archname=MSWin32
    uname=''
    hint=recommended, useposix=true, d_sigaction=undef
    bincompat3=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cl.exe', optimize='-O', gccversion=
    cppflags='-DWIN32'
    ccflags ='-MD -DWIN32'
    stdchar='unsigned char', d_stdstdio=define, usevfork=false
    voidflags=15, castflags=0, d_casti32=define, d_castneg=define
    intsize=4, alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='link', ldflags ='-nologo -subsystem:windows'
    libpth=C:\PROGRA~1\MICROS~3\VC98\lib
    libs=oldnames.lib kernel32.lib user32.lib gdi32.lib  winspool.lib
comdlg32.lib advapi32.lib shel
l32.lib ole32.lib  oleaut32.lib netapi32.lib uuid.lib wsock32.lib
mpr.lib winmm.lib  version.lib odb
c32.lib odbccp32.lib
    libc=msvcrt.lib, so=dll
    useshrplib=undef, libperl=undef
  Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='', lddlflags='-dll'


--------------------------------------:

C:\src\perllibs\DBI-1.201>nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

mkdir blib
mkdir blib\lib
mkdir blib\arch
mkdir blib\arch\auto
mkdir blib\arch\auto\DBI
mkdir blib\lib\auto
mkdir blib\lib\auto\DBI
mkdir blib\man1
mkdir blib\man3
cp lib/DBI/W32ODBC.pm blib\lib\DBI\W32ODBC.pm
cp lib/DBD/ExampleP.pm blib\lib\DBD\ExampleP.pm
cp lib/DBI/FAQ.pm blib\lib\DBI\FAQ.pm
cp lib/DBI/Shell.pm blib\lib\DBI\Shell.pm
cp lib/DBI/ProxyServer.pm blib\lib\DBI\ProxyServer.pm
cp lib/Bundle/DBI.pm blib\lib\Bundle\DBI.pm
cp lib/DBD/Proxy.pm blib\lib\DBD\Proxy.pm
cp DBIXS.h blib\arch\auto\DBI/DBIXS.h
cp dbd_xsh.h blib\arch\auto\DBI/dbd_xsh.h
cp dbi_sql.h blib\arch\auto\DBI/dbi_sql.h
cp lib/DBD/NullP.pm blib\lib\DBD\NullP.pm
cp lib/DBD/Sponge.pm blib\lib\DBD\Sponge.pm
cp lib/DBI/Format.pm blib\lib\DBI\Format.pm
cp Driver.xst blib\arch\auto\DBI/Driver.xst
cp lib/DBI/DBD.pm blib\lib\DBI\DBD.pm
cp dbipport.h blib\arch\auto\DBI/dbipport.h
cp lib/Win32/DBIODBC.pm blib\lib\Win32\DBIODBC.pm
cp DBI.pm blib\lib\DBI.pm
        C:\perl\bin\perl -p -e "s/~DRIVER~/Perl/g" <
blib\arch\auto\DBI/Driver.xst > Perl.xsi
        C:\perl\bin\perl -Ic:\perl\lib -Ic:\perl\lib
C:\perl\lib\ExtUtils/xsubpp  -typemap C
:\perl\lib\ExtUtils\typemap Perl.xs >Perl.tc && C:\perl\bin\perl
-Ic:\perl\lib -Ic:\perl\lib
 -MExtUtils::Command -e mv Perl.tc Perl.c
        cl.exe -c  -MD -DWIN32 -O     -DVERSION=\"1.201\" 
-DXS_VERSION=\"1.201\"  -IC:\perl\lib\CORE -DDBI_NO_TH
READS Perl.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for
80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

Perl.c
        C:\perl\bin\perl -Ic:\perl\lib -Ic:\perl\lib
C:\perl\lib\ExtUtils/xsubpp  -typemap C
:\perl\lib\ExtUtils\typemap DBI.xs >DBI.tc && C:\perl\bin\perl
-Ic:\perl\lib -Ic:\perl\lib -
MExtUtils::Command -e mv DBI.tc DBI.c
        cl.exe -c  -MD -DWIN32 -O     -DVERSION=\"1.201\" 
-DXS_VERSION=\"1.201\"  -IC:\perl\lib\CORE -DDBI_NO_TH
READS DBI.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for
80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

DBI.c
DBI.xs(1611) : error C2054: expected '(' to follow 'STATIC'
DBI.xs(1612) : error C2085: 'dbi_dopoptosub_at' : not in formal
parameter list
DBI.xs(1612) : error C2143: syntax error : missing ';' before '{'
DBI.xs(1639) : error C2065: 'PERL_SI' : undeclared identifier
DBI.xs(1639) : error C2065: 'top_si' : undeclared identifier
DBI.xs(1639) : error C2065: 'PL_curstackinfo' : undeclared identifier
DBI.xs(1639) : error C2106: '=' : left operand must be l-value
DBI.xs(1640) : error C2143: syntax error : missing ';' before 'type'
DBI.xs(1645) : error C2223: left of '->si_type' must point to
struct/union
DBI.xs(1645) : error C2065: 'PERLSI_MAIN' : undeclared identifier
DBI.xs(1646) : error C2223: left of '->si_prev' must point to
struct/union
DBI.xs(1647) : error C2223: left of '->si_cxstack' must point to
struct/union
DBI.xs(1648) : error C2223: left of '->si_cxix' must point to
struct/union
DBI.xs(1653) : error C2065: 'PL_DBsub' : undeclared identifier
DBI.xs(1653) : error C2223: left of '->sv_any' must point to
struct/union
DBI.xs(1656) : error C2065: 'stashname' : undeclared identifier
DBI.xs(1656) : warning C4047: '=' : 'int ' differs in levels of
indirection from 'char *'
DBI.xs(1659) : error C2109: subscript requires array or pointer type
DBI.xs(1660) : error C2109: subscript requires array or pointer type
DBI.xs(1661) : error C2109: subscript requires array or pointer type
DBI.xs(1662) : error C2109: subscript requires array or pointer type
DBI.xs(1662) : error C2109: subscript requires array or pointer type
DBI.xs(1662) : error C2109: subscript requires array or pointer type
NMAKE : fatal error U1077: 'cl.exe' : return code '0x2'
Stop.

Reply via email to