develooper Front page | perl.perl5.porters | Postings from December 2008

Re: Smoke [5.11.0] 35082 FAIL(m) MSWin32 WinXP/.Net SP3 (x86/2 cpu)

Thread Previous
From:
Nicholas Clark
Date:
December 14, 2008 01:58
Subject:
Re: Smoke [5.11.0] 35082 FAIL(m) MSWin32 WinXP/.Net SP3 (x86/2 cpu)
Message ID:
20081214095811.GZ51978@plum.flirble.org
On Sun, Dec 14, 2008 at 01:23:48AM -0800, Chip Salzenberg wrote:
> On Sat, Dec 13, 2008 at 11:19:23PM -0800, Jan Dubois wrote:
> > On Sat, 13 Dec 2008, Nicholas Clark wrote:
> > > Given the only changes from last night's PASS in blead was 35082, it has to
> > > be the cause. Presumably [...]
> > > But I have no idea what, as the smoke client doesn't provide a log for this.
> > > I guess we wait until Monday, unless anyone else can run a Win32 build.
> > 
> > Change 35082 is indeed the culprit.  The problem is using conditional compilation
> > inside a preprocessor macro call:
> > 
> > ..\doio.c(854) : warning C4002: too many actual parameters for macro 'do_open'
> > ..\doio.c(854) : error C2121: '#' : invalid character : possibly the result of a macro expansion
> > ..\doio.c(854) : error C2065: 'ifdef' : undeclared identifier
> > ..\doio.c(854) : error C2146: syntax error : missing ')' before identifier 'VMS'
> > [...]
> 
> Oh dear.  It seems to have escaped me that do_open() could be a macro.
> 
> How's this for a fix?

I'd actually just applied the appended alternative.

Nicholas Clark

Change 35088 by nicholas@nicholas-saigo on 2008/12/14 09:26:00

	Fix change 35082 by manually expanding do_open() to Perl_do_openn().

Affected files ...

... //depot/perl/doio.c#380 edit

Differences ...

==== //depot/perl/doio.c#380 (text) ====

@@ -845,14 +845,14 @@
 
 		sv_setpvn(sv,PL_oldname,oldlen);
 		SETERRNO(0,0);		/* in case sprintf set errno */
-		if (!do_open(PL_argvoutgv,(char*)SvPVX_const(sv),SvCUR(sv),TRUE,
+		if (!Perl_do_openn(aTHX_ PL_argvoutgv, (char*)SvPVX_const(sv),
+				   SvCUR(sv), TRUE,
 #ifdef VMS
-			     O_WRONLY|O_CREAT|O_TRUNC,0,
+				   O_WRONLY|O_CREAT|O_TRUNC,0,
 #else
-			     O_WRONLY|O_CREAT|OPEN_EXCL,0600,
+				   O_WRONLY|O_CREAT|OPEN_EXCL,0600,
 #endif
-			     NULL))
-		{
+				   NULL, NULL, 0)) {
 		    if (ckWARN_d(WARN_INPLACE))	
 		        Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't do inplace edit on %s: %s",
 		          PL_oldname, Strerror(errno) );


Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About