Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the FFI CPAN distribution.

Report information
The Basics
Id: 14733
Status: resolved
Priority: 0/
Queue: FFI

People
Owner: Nobody in particular
Requestors: RURBAN [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Tests fixed for Windows (mingw,MSWin32,cygwin)
Attached patch fixes the tests for Windows. * MSWin32 searches for newer runtimes than MSVCRT40 * enable t/win32.t on mingw and cygwin * cygwin libc and libm hack * cygwin path hacks -- http://xarch.tu-graz.ac.at/home/rurban/
--- FFI-1.00/t/Support.pm.orig 2000-10-31 14:25:42.000000000 +0000 +++ FFI-1.00/t/Support.pm 2005-09-24 11:37:11.750000000 +0000 @@ -39,8 +39,9 @@ # Get the libc and libm libraries use vars qw($libc $libm); -if ($^O eq 'MSWin32') { - $libc = load("MSVCRT40") || load("MSVCRT20"); +if ($^O =~ /(MSWin32|mingw)/) { + $libc = load("MSVCRT80") || load("MSVCRT71") || load("MSVCRT70") || + load("MSVCRT60") || load("MSVCRT40") || load("MSVCRT20"); $libm = $libc; } else { @@ -51,7 +52,11 @@ # unintelligible to dlopen(). $libc = load("libc.so.6"); } + if ($^O =~ /cygwin/i) { + $libc = load("cygwin1"); + $libm = $libc; + } } if (!$libc) { die "Can't load -lc: ", DynaLoader::dl_error(), "\nGiving up.\n"; --- FFI-1.00/t/win32.t.orig 1999-10-01 15:32:25.000000000 +0000 +++ FFI-1.00/t/win32.t 2005-09-24 12:29:36.781250000 +0000 @@ -1,4 +1,4 @@ -if ($^O ne "MSWin32") { +if ($^O != /(MSWin32|mingw|cygwin)/) { print "1..0\n"; exit 0; } @@ -34,7 +34,8 @@ $n = $GetCurrentDirectory->(200, $d); $d = substr($d, 0, $n); -($cwd = cwd) =~ s#/#\\#g; +$cwd = cwd; #) =~ s#/#\\#g; +if ($^O eq 'cygwin') { $cwd = `cygpath -w $cwd`; chomp $cwd; } $d eq $cwd or print "not "; print "ok 7\n"; @@ -52,6 +53,11 @@ $d = ' ' x 200; $n = $GetModuleFileName->($h, $d, 200); $d = substr($d, 0, $n); +if ($d and ($^O eq 'cygwin')) { + $d = `cygpath -au "$d"`; + chomp $d; + $d =~ s/\.exe$//; +} print "not " unless $d eq $^X; print "ok 10\n";
On Sat Sep 24 08:40:11 2005, RURBAN wrote: Show quoted text
> Attached patch fixes the tests for Windows. > > * MSWin32 searches for newer runtimes than MSVCRT40 > * enable t/win32.t on mingw and cygwin > * cygwin libc and libm hack > * cygwin path hacks
I am the new maintainer of this module. It looks as though part of this patch has already been applied. When I get a chance I will see what/if needs to be done for Strawberry and cygwin. I will probably not support the mingw version of Perl.
This should be fixed in 1.06