Re: [Module-build-general] [PATCH] Compiling under Windows
Status: Beta
Brought to you by:
kwilliams
|
From: Randy W. S. <Ra...@Th...> - 2003-03-01 21:07:09
|
>> In my notes, I put down the names of two of the files: 'Sample.pm' &
>> 'MANIFEST'. There may be others; I admit that I mostly ignored the
>> errors at the time because I was focusing on the compiling/linking
>> tests and I didn't want to get sidetracked. I'll take a closer look at
>> this.
>
>
> Does anything change if you add an explicit close() in
> version_from_file() ? I think that's the only place Sample.pm would be
> opened.
>
> For the MANIFEST, all that code is buried in ExtUtils::Manifest, so
> it'll be harder to fix, probably.
>
It appears that all of the problems come from ExtUtils::Manifest. I have
not completely narrowed down the problem there, but I suspect it is a
bug in Perl's link() implementation on MSWin32 (which EU::Manifest only
attempts on Windows NT variants, and not Windows 9x). The problem is
eliminated by changing the call to EU::Manifest::manicopy() in
M::B::Base::ACTION_distclean() so that the last parameter is 'cp'
instead of 'best'. This of course is not the correct solution, nor is
copying the entire sub to Windows.pm just to change one line. Maybe an
option can be set in $self->{config} to indicate whether link()ing
should be avoided: The constructor in Base.pm could set a default,
allowing links, and any subclass that needed to could change it. Then
the line in ACTION_distclean() could be changed to pass the appropriate
flag to manicopy() based on the config option???
>> This is something else I wanted to revisit. If I'm not mistaken this
>> may actually be a Perl bug that was in 5.6.1, but has since been
>> fixed. At least I think I remember some problem being fixed in the
>> system() call.
>
> Oh yuck. =( Well, let me know if you find anything, but I hope you don't!
I've tried a few times to reproduce the problem with the system() call,
but have been unsuccessfull. I'm sure I have run through the tests a few
thousand times (using scripts, not manually ;) using various compilers
and version of perl and this has never resurfaced, so I think it
unlikely it will come up again; I just wish I knew from whence it came
and to whither it went.
Randy.
|