This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: libwin32 0.191 builds and tests on Visual Studio, Cygwin, MinGW and Borland5.5.1


Located here:

http://www.io.com/~rkitover/libwin32-0.191-port.diff

This patch against libwin32 0.191 was created for one purpose, which it
fulfills:

Allowing a Perl CPAN shell user on Win32, regardless of their build
environment, to type perl -MCPAN -e shell, install Win32 and have it
compiled, tested, installed and working. It is no longer the case that
the modules fail to build under Cygwin, and only half build on MinGW.
Also, all warnings have been cleaned up.

I've used Clive Nicolson's June Cygwin port patch as a reference for the
Cygwin related stuff.

Also, Win32API::File has the new functions: setFilePointer, getFileSize,
GetFileSize and GetOverlappedResult.

The functions setFilePointer and getFileSize are simpler wrappers for
their respective APIs to support 64bitness (either through 64 bit ints
like in the Cygwin 5.8 build, or through Math::BigInt if 64 bit ints are
not available, like in the ActiveState builds and the Cygwin 5.6 build.)

Also added to Win32API::File is a tied file handle interface that allows
using the module as a normal Perl file handle or IO::File object, this
is experimental for now. Buffering and overlapped IO has not been
implemented yet. See APIFile/t/tie.t for an example. Initially it was
created to emulate an OSF handle since Cygwin lacks the _open_osfhandle
function.

Build environments tested:

Latest Cygwin with the new perl 5.8 package

Latest Cygwin with the standard perl 5.6 package (I made the patch with
cygwin 5.8 and AS508 then fixed it to support special cases in 5.6)

ActiveState Perl build 508 with Visual Studio

ActiveState Perl build 506 with Visual Studio

Recent BleedPerl built with visual studio

Recent BleedPerl built with latest MinGW and Gurusamy's dmake

ActiveState Perl source 508 built with Borland BCC55 and dmake


ActiveState Perl 5.005 build 522 (does NOT build Win32.xs, EventLog,
FileSecurity, Job, NetAdmin, OLE, PerfLib and Process).


The test suites have been slightly cleaned up to allow "make test" to
run through successfully.


Notes:

There are some test-foo.pl and such files that get erroneously picked up
and installed into ../blib/lib.

There is still work to do to make the test suites more comprehensive and
use the standard output format (they can always check for TEST_VERBOSE
for debugging).

It will not build on Perl 5.005 due to some XS incompatibility issues,
I'd be happy to fix that, but does anyone really care?

APIFile/test.pl should be moved under APIFile/t/file.t, and
APIRegistry/test.pl to t/registry.t or something similar. I didn't want
to make the patch any bigger.

The OLE tests seem to leave orphaned Excel processes lying around, not
sure which environments this applies to.

DllMain in ODBC.xs is disabled in the cygwin and mingw builds because of
export issues, it seems work fine without it.

 

It would be incredibly cool if this patch could be applied to the
libwin32 currently on CPAN, as that was its purpose. If there is
anything I can do to make this a reality, please let me know.

 

-- 

Rafael Kitover

(Caelum on EfNet #perl)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]