perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Hay" <Steve....@verosoftware.com>
Subject RE: [httpd24 branch] merge with trunk?
Date Fri, 12 Jul 2013 08:29:34 GMT
Steve Hay wrote on 2013-07-12:
> The problem of how to specify the path of aprutil-1 in
> xs/APR/APR/Makefile.PL remains, but with the fix above the build now
> proceeds to the next problem: Apache2/Provider.dll fails to link, with
> an unresolved external symbol, ap_register_provider.
> 
> That symbol is exported from libhttpd.dll so I'm not sure right now
> why the link fails because we *do* already link against libhttpd.lib
> (and it has found it, along with libapr-1.lib and libaprutil-1.lib,
> this time).

I've temporarily dodged the two problems above by (a) commenting out the addition of -laprutil-1
to $libs in xs/APR/APR/Makefile.PL until I figure out how to get its path, and (b) disabling
the XS-wrapping of ap_register_provider (by adding a leading '!' character) in xs/maps/apache2-functions.map
(it was only being wrapped for httpd > 2.3.0, but I can't figure out what causes it not
to link at the moment).

So that got things going a little further. I've fixed some more code before declaration errors
in Apache2__RequestUtil.h (r1502464) but now I've got another linker error, this time in Apache2/ServerUtil.dll:
it complains that ap_get_server_version is unresolved, and this time the error is genuine.
The symbol was exported from libhttpd.dll in httpd-2.2, but ap_mmn.h notes that it was replaced
with ap_get_server_banner and ap_get_server_description in httpd-2.3 so I think I need to
add some more #_if_ ... #_end_ magic to apache2_functions.map to account for that.

The attached patch does this, and with that in place the build now runs through to completion
(so perhaps the -laprutil-1 commented out as mentioned above isn't even needed on Windows
anyway? -- unless some problem with omitting it comes to light in due course then I will just
make it conditional on !WIN32...).

What puzzles me is how can the build be working on other OSes? This one is definitely not
a Windows-specific problem. Before I go ahead and commit this patch, is there some part of
the puzzle that I'm missing? How does it build for others without the patch?
Mime
View raw message