Front page | perl.dbi.dev |
Postings from February 2012
Re: Problems with DBI 1.617_903 on MSWin32
From: Martin J. Evans
February 22, 2012 02:04
Re: Problems with DBI 1.617_903 on MSWin32
Message ID: 4F44BDBD.email@example.com
On 22/02/12 08:55, Martin J. Evans wrote:
> On 22/02/12 08:22, Martin J. Evans wrote:
>> On 21/02/12 22:01, Tim Bunce wrote:
>>> DBI 1.617_903 has a 100% pass rate on everything except MSWin32,
>>> where there are three reports so far and 100% failure:
> Result Id OS vers archname Perl version
>>> FAIL 19976962 5.1 MSWin32-x86-multi-thread 5.12.3 UNKNOWN 20072290
>>> 5.2 MSWin32-x86-multi-thread 5.10.1 UNKNOWN 20005629 5.2
>>> MSWin32-x86-multi-thread 5.12.4
>>> The first report passes all except gofer tests. Those fail with:
>>> No such directory
>>> which seems rather long and lacking in delimeters.
>>> This problem seems to have existed in DBI 1.617, causing it to always
>>> fail on MSWin32 (along with an error in t/16destroy.t). DBI 1.616
>>> was ok.
>> The following rt included a patch to apparently fix that issue - or
>> perhaps it created a new one, or perhaps it did not get in -
> The patch from that ticket:
> --- DBI-1.617-Ic0LpE\lib\DBD\File.pm 2010-12-21 23:59:54.000000000 +0100
> +++ DBI-1.617-n_TYo7\lib\DBD\File.pm 2012-02-13 22:05:24.078125000 +0100
> @@ -117,7 +117,7 @@
> my $str = shift;
> ref $str and return "";
> defined $str or return "";
> - $str =~ s/([;:])/\\$1/g;
> + $str =~ s/([;:\\])/\\$1/g;
> return $str;
> } # dsn_quote
> was applied to subversion trunk by me in revision 15151 14 feb 2012. According to the Changes file 1.616-TRIAL (which I presume is 903 - confusing) was revision 15148 (too early for the fix).
> When I apply the above patch to 903 all tests pass on my main strawberry perl Windows 7 machine.
>>> The other two reports are 'UNKNOWN' due to compile-time errors:
>>> error C2065: 'my_cxtp' : undeclared identifier
> I don't see this.
>>> which seems clearly related to the recent changes.
>>> Given the minor differences in Perl versions (5.12.3 vs 5.12.4) it
>>> seems like the "OS vers" (5.1 vs 5.2) may be significant here.
> My Windows machine is v 6.1 according to perl -V and it is Windows 7. My Perl is 5.12.3 and is 64 bit.
> According to my reading of those UNKNOWN results:
> 20072290 and 20005629
> they are both from Leo Susanto
> one is perl 5.10.1 and the other is 5.12.2
> both are windows XP (not sure the diff between 5.1 and 5.2)
> both use the MS Platform SDK for Windows Server 2003 R2 for compiler
> both use namke
> both are 32 bit builds
> both are threaded
> I may be able to find a machine like this.
>>> Can anyone help with either of these?
>>> p.s. Once these are fixed I'll probably release DBI 1.618 without
>>> the DBIS change as I've not had time to consider that in the detail
>>> it needs.
>> I'll try and run through the machines I have again and take Merijn's
>> response into consideration too.
I've reproduced on a very old and unbelievingly slow windows xp machine. The full output is at http://pastebin.com/2Qy5gLJG
The last part is reproduced here:
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\stdio.h(345) : see
declaration of 'sprintf'
Message: 'This function or variable may be unsafe. Consider using sprint
f_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online he
lp for details.'
DBI.xs(4291) : error C2275: 'SV' : illegal use of this type as an expression
C:\Perl\lib\CORE\perl.h(2243) : see declaration of 'SV'
DBI.xs(4291) : error C2065: 'my_cxt_sv' : undeclared identifier
DBI.xs(4291) : error C2275: 'my_cxt_t' : illegal use of this type as an expressi
DBI.xs(294) : see declaration of 'my_cxt_t'
DBI.xs(4291) : error C2065: 'my_cxtp' : undeclared identifier
DBI.xs(4291) : warning C4047: 'function' : 'SV *' differs in levels of indirecti
on from 'int'
DBI.xs(4291) : warning C4024: 'Perl_sv_setuv' : different types for formal and a
ctual parameter 2
DBI.xs(4292) : error C2100: illegal indirection
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\c
l.EXE"' : return code '0x2'
Lines 4291 and 4292 are:
(void)MY_CXT; /* avoid 'unused variable' warning */
This was Perl 5.8.9 built from source (IIRC) and using MS vis c compiler.
I can make any changes anyone suggests but it is a really slow box - it took over 20 minutes for nmake to get to the compiler failure.
Martin J. Evans