httpd-apreq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Hay <>
Subject Re: [PATCH] Win32 doesn't have link()
Date Fri, 09 Sep 2005 07:46:28 GMT
Randy Kobes wrote:

>On Thu, 8 Sep 2005, Steve Hay wrote:
>>The attached patch, or something similar, is required to build the
>>current svn version of libapreq2 on Win32.
>>PerlLIO_link() is mapped to link(), which the Win32 CRT doesn't have.  I
>>will look at changing PerlLIO_link() to map it to win32_link() on Win32
>>in future versions of Perl (win32_link() is exported from the perl
>>library, and implements hard links on NTFS), so some further
>>version-checking trickery could be required later, but just falling back
>>to a copy is probably the best thing to do for now.
>Thanks, Steve - I'll apply that. Might you know why, though,
>I didn't see a problem with my Win32 builds, either
>perl-5.8.0 or perl-5.8.7 (both ActiveState compatible).
>I'm on XP, if that makes any difference.
I'm on XP too, but I'm not using an ActivePerl compatible Perl -- that's 
probably the difference.

Having looked a little closer, I now think that I was wrong in saying 
that PerlLIO_link() is simply mapped to link().  I said that because the 
Param DLL affected failed to link with a linker error regarding the 
unresolved external "link".  When I ran Param.c through the C 
preprocessor I found that "PerlLIO_link" had become "link".

However, when I build the attached Foo module (using the same Perl, of 
course) I find no such problems, and the CPP shows PerlLIO_link() is 
mapped to win32_link() already.

I'm struggling to figure out why PerlLIO_link() comes out differently 
within the libapreq build.  Any ideas why this might happen?

You'd better not apply my patch for now until we understand better what 
the problem is.  It looks like some other fix is probably required 
instead.  Sorry I didn't check it thoroughly enough first.

The Perl that I'm using is perl-5.8.7 built with the attached Makefile.  
It's the standard perl configuration (which is basically what ActivePerl 
is) but with PERL_MALLOC (and PERL_DEBUGGING_MSTATS) switched on for 
better performance and USE_IMP_SYS switched off because it's 
incompatible with PERL_MALLOC.

Perhaps you could try a Perl built with this Makefile sometime and see 
if you get the same problem?

Unfortunately I'm away next week, but I'll continue looking at this and 
mail again the week after next with anything that I come up with if you 
haven't figured it out by then.

- Steve

Radan Computational Ltd.

The information contained in this message and any files transmitted with it are confidential
and intended for the addressee(s) only.  If you have received this message in error or there
are any problems, please notify the sender immediately.  The unauthorized use, disclosure,
copying or alteration of this message is strictly forbidden.  Note that any views or opinions
presented in this email are solely those of the author and do not necessarily represent those
of Radan Computational Ltd.  The recipient(s) of this message should check it and any attached
files for viruses: Radan Computational will accept no liability for any damage caused by any
virus transmitted by this email.

View raw message