Subject: | MinGW Broken after 2.21 |
Building latest ExtUtils-ParseXS-2.22 using the MinGW32 3.4.5 Compiler
with DMAKE.
Have also built ExtUtils-ParseXS-2.22 under a Visual C 6 compiler with
no problems.
The follwing outlines the build with MinGW:
E:\usr\cpan\build\ExtUtils-ParseXS-2.22>perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for ExtUtils::ParseXS
E:\usr\cpan\build\ExtUtils-ParseXS-2.22>mk
cp lib/ExtUtils/ParseXS.pm blib\lib\ExtUtils\ParseXS.pm
cp lib/ExtUtils/xsubpp blib\lib\ExtUtils\xsubpp
E:\usr\cpan\build\ExtUtils-ParseXS-2.22>tst
E:\usr\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0,
'blib\lib', 'blib\arch')" t/*.t
[01:23:05] t/basic.t .. ok 2171 ms
[01:23:08] t/more.t ... 1/25 XSMore.c:306:9: warning: universal
character names are only valid in C++ and C99
XSMore.c:306:9: incomplete universal character name \u << Hum?
XSMore.c:306:9: warning: unknown escape sequence '\p' << Hum?
error building dll file from 'XSMore.c' at
E:/usr/lib/ExtUtils/CBuilder/Platform/Windows.pm line 127.
# Looks like you planned 25 tests but ran 2.
# Looks like your test exited with 2 just after 2.
[01:23:08] t/more.t ... Dubious, test returned 2 (wstat 512, 0x200)
Failed 23/25 subtests
[01:23:09] t/usage.t .. ok 2153 ms
[01:23:11]
Test Summary Report
-------------------
t/more.t (Wstat: 512 Tests: 2 Failed: 0)
Non-zero exit status: 2
Parse errors: Bad plan. You planned 25 tests but ran 2.
Files=3, Tests=36, 6 wallclock secs ( 0.09 usr + 0.08 sys = 0.17 CPU)
Result: FAIL
Failed 1/3 test programs. 0/36 subtests failed.
dmake: Error code 255, while making 'test_dynamic'
Examining XSMore.xs Line 109:
INCLUDE_COMMAND: $^X -Ilib -It/lib -MIncludeTester -e
IncludeTester::print_xs
Then the generated line in XSMore.c:
#line 7 "./E:\usr\bin\perl.exe -Ilib -It/lib -MIncludeTester -e
IncludeTester::print_xs"
The problem seems to be with the $^X path: ./E:\usr\bin\perl.exe
Changing the path in XSMore.xs Line 109 from ./E:\usr\bin\perl.exe to
E:/usr/bin/perl.exe or E:\\usr\\bin\\perl.exe the test 'more.t' passes
but dropping the leading ./ and running the test produced no C code, no
object file and no dll so in reality the pass is half-hearted.
E:\usr\cpan\build\ExtUtils-ParseXS-2.22>tst
E:\usr\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0,
'blib\lib', 'blib\arch
')" t/*.t
[01:36:18] t/basic.t .. ok 2171 ms
[01:36:20] t/more.t ... ok 2294 ms
[01:36:23] t/usage.t .. ok 2169 ms
[01:36:25]
All tests successful.
Files=3, Tests=59, 7 wallclock secs ( 0.14 usr + 0.05 sys = 0.19 CPU)
Result: PASS
With the leading ./ I get these errors:
[01:56:04] t/more.t ... 1/25 '.' is not recognized as an internal or
external command,operable program or batch file.
[01:56:04] t/more.t ... 5/25 Undefined subroutine &XSMore::sum called at
t/more.t line 91.
Not certain what the fix to this is but possibly a change to 'sub
INCLUDE_COMMAND_handler ()' in the ParseXS.pm.
Any help most appreciated.
--
Regards,
Pete Armstrong
pete.a64@gmail.com