On 18 October 2015 at 20:37, bulk 88 <bulk88@hotmail.com> wrote: > > >> Date: Sun, 18 Oct 2015 13:57:36 +0100 >> Subject: Re: GCC builds failing many tests on Windows >> From: perl5-porters@perl.org >> To: bulk88@hotmail.com >> CC: perl5-porters@perl.org >> >> It isn't a parallel build; it's just a straight "dmake". But you're >> right that ext/POSIX/const-c.inc and ext/POSIX/const-xs.inc are both 0 >> bytes, which is rather worrying, especially since this happens every >> time for me... > > For me it happens only when doing a "dmake all" or "dmake test" parallel > (-P3) build. If I do "dmake -P3 Extensions" POSIX builds correctly every > time, so I think the race is between Extensions_nonxs and Extensions targets > (both are make_ext.pl runs) in parallel mode. Whether I use Visual C or GCC > with dmake makefile doesnt seem to make a difference. A git clean and > another "dmake -P3 all" and POSIX builds usually builds normal. If I drop > the -P3, git clean, goto serial dmake build it always goes away. I've never > had the bug hit more than 2 times in a row in parallel mode with git cleans > between. When I tried to step POSIX's Makefile.PL a month ago, those 2 files > always get written out to disk correctly. > I can't understand how this doesn't happen for you. It happens every time for me on two different machines (Windows 7 and Windows 8.1). The build sequence with a straight "dmake" is: miniperl.exe DynaLoader XS extensions perl.dll perl.exe non-XS extensions The problem is that POSIX is an XS extension, but its Makefile.PL needs XSLoader, which is non-XS so hasn't been made yet. The POSIX Makefile.PL fails every time with this error: Can't locate XSLoader.pm in @INC (you may need to install the XSLoader module) (@INC contains: [...]) at C:\Dev\Git\perl\lib/B.pm line 26. BEGIN failed--compilation aborted at C:\Dev\Git\perl\lib/B.pm line 28. Compilation failed in require at C:\Dev\Git\perl\cpan\ExtUtils-MakeMaker\lib/ExtUtils/MakeMaker/version/vpp.pm line 954. 512 from ext/POSIX's Makefile.PL at ..\make_ext.pl line 523. It's the WriteConstants() call that fails. WriteMakefile() has already run successfully by this stage, so a Makefile has been written and POSIX.dll builds, but const-c.inc and const-xs.inc end up zero size. (Crucially, they *exist* so the #include in POSIX.c doesn't fail, hence the build continues.)Thread Previous | Thread Next