Joe Schaefer wrote:

Note this is our first non-dev candidate, so please give it the extra scrutiny it deserves. Release Candidate #1 -

   http://people.apache.org/~joes/libapreq2-2.07-rc1.tar.gz

This still doesn't build on Win32 with my perl configuration, in which PERL_IMPLICIT_SYS is not defined.

I described the problem fully here:

http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=112626236718924&w=2

but I still haven't thought of a good solution.

In brief, the problem is that APR/Request/Param/Param.xs pulls in the Perl headers which contain:

#define PerlLIO_link(oldname, newname)    link((oldname), (newname))
#define link            win32_link

and then pulls in "apreq_xs_postperl.h", which pulls in mod_perl's "modperl_perl_unembed.h", which contains:

/* these three clash with apr bucket structure member names */
#undef link
#undef read
#undef free

Thus, the symbol "link" is left undefined, leading to the linker error:

Param.obj : error LNK2001: unresolved external symbol _link
..\..\..\..\blib\arch\auto\APR\Request\Param\Param.dll : fatal error LNK1120: 1 unresolved externals

since Param.xs calls PerlLIO_link() on line 204.

Note that "apreq_xs_postperl.h" also includes "modperl_common_util.h", which includes "modperl_perl_includes.h", which also includes "modperl_perl_unembed.h", so link gets #undef'ed again there too.

I'm sure not where this needs fixing -- Perl, mod_perl, or libapreq -- but now would be a good time whichever of those it is to be!

I tried simply removing "#undef link" from "modperl_perl_unembed.h" to see what happens. Here's what happens:

error C2039: 'win32_link' : is not a member of 'apr_bucket'

so it is definitely required :-(

I can't think how to fix this, other than with some dreadful hack in Param.xs. Any ideas?



------------------------------------------------
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.

Reply via email to