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 nicho...@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) );