httpd-apreq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Hay <steve....@uk.radan.com>
Subject Re: towards a 2.07 release
Date Tue, 04 Oct 2005 11:30:14 GMT
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.
Mime
View raw message