difforig FFI-1.02 2007-12-26 Reini Urban diff -ub FFI-1.02/Makefile.PL.orig --- FFI-1.02/Makefile.PL.orig 2007-02-07 09:31:18.000000000 +0000 +++ FFI-1.02/Makefile.PL 2007-12-26 19:18:49.656250000 +0000 @@ -37,9 +37,7 @@ open my $fh, ">", "$probe.c" or die "open: $!"; print $fh <<'.'; -#include #include -#include int main(int argv, char ** argc) { @@ -55,8 +53,8 @@ require ExtUtils::MM; my $mm = MM->new({NAME => 'FFI'}); - print "$mm->{CC} $libs $probe.c 2> $probe.err\n"; - system "$mm->{CC} $libs -o $probe.exe $probe.c 2> $probe.err" and die << "."; + print "$mm->{CC} $probe.c $libs 2> $probe.err\n"; + system "$mm->{CC} $probe.c $libs -o $probe.exe 2> $probe.err" and die << "."; *** ffcall probe compilation failed. Do you have the ffcall library (and its development files) installed? If not, you can fetch it at: @@ -68,7 +66,7 @@ The compilation error messages are available at $probe.err . . - + unlink "$probe.$_" for qw(c o exe err); return (LIBS => [$libs]); diff -ub FFI-1.02/t/Support.pm.orig --- FFI-1.02/t/Support.pm.orig 2007-02-02 14:17:02.000000000 +0000 +++ FFI-1.02/t/Support.pm 2007-12-26 19:12:50.203125000 +0000 @@ -40,7 +40,8 @@ use vars qw($libc $libm); if ($^O eq 'MSWin32') { - $libc = load("MSVCRT40") || load("MSVCRT20"); + $libc = load("MSVCRT80") || load("MSVCRT71") || load("MSVCRT70") || + load("MSVCRT60") || load("MSVCRT40") || load("MSVCRT20"); $libm = $libc; } else { @@ -51,6 +52,10 @@ # unintelligible to dlopen(). $libc = load("libc.so.6"); } + elsif ($^O eq "cygwin") { + $libc = load("cygwin1.dll"); + $libm = $libc; + } } if (!$libc) { die "Can't load -lc: ", DynaLoader::dl_error(), "\nGiving up.\n"; diff -ub FFI-1.02/t/win32.t.orig --- FFI-1.02/t/win32.t.orig 2007-02-02 14:17:02.000000000 +0000 +++ FFI-1.02/t/win32.t 2007-12-26 19:09:39.937500000 +0000 @@ -2,7 +2,7 @@ use Test::More; -if ($^O ne "MSWin32") { +if ($^O ne "MSWin32" and $^O ne "cygwin") { plan skip_all => 'Windows specific tests'; } else { plan tests => 12; @@ -25,6 +25,7 @@ $d = substr($d, 0, $n); ($cwd = cwd) =~ s#/#\\#g; +$cwd = Win32::GetCwd() if $^O eq "cygwin"; is $d, $cwd; $d = ' ' x 200; @@ -38,7 +39,8 @@ $d = ' ' x 200; $n = $GetModuleFileName->($h, $d, 200); $d = substr($d, 0, $n); -is $d, $^X; +$exp = $^O eq "MSWin32" ? $^X : Cygwin::posix_to_win_path($^X); +is $d, $exp; $EnumWindows = $user32->function("EnumWindows", 'sIII');