On Wed, 22 Aug 2007, Steve Hay wrote:

I'm trying to build mod_perl-2.0.3 on Win32 with VC8 but I can't get the
server to start up with mod_perl loaded. It starts up fine without it.

I've built perl-5.8.8 together with a series of patches that add support
for building it with VC8. (perl-5.9.5 would work just as well since it
already includes them, but I want something more "stable" than that.)
That works OK and passes all tests.

I've then built httpd-2.2.4 together with two patches that add support
for building that with VC8 (these are revisions 416160 and 495126 from
svn.apache.org). That also works OK, and the server starts up and shows
the "It works!" page.

Next up I installed apxs-0.6 and built mod_perl-2.0.3 as follows:

        perl Configure.pl --with-apache2=C:/apache2.2
--with-apache-prog=httpd.exe
        perl Makefile.PL MP_AP_PREFIX=C:/apache2.2
        nmake

That went off without a hitch, but when I come to run "nmake test" I
find that the server doesn't start up. It loads perl58.dll OK, but won't
load mod_perl.so.
[ ... ]

I don't have VC 8 yet, but I'm wondering if, at least,
part of the problem is that mod_perl doesn't handle
manifest files in any Makefile. The recent version
of the Win32 apxs you're using does recognize them;
that involved the addition of something like

if exist $(TargetPath).manifest mt.exe -manifest
$(TargetPath).manifest -outputresource:$(TargetPath);2

to the Makefile; perhaps we need something like this
in mp2?

I then thought that I'd try building the latest 2.2.x snapshot instead
(httpd_20070822041638.tar.gz), just in case I've missed some other
relevant changes for building with VC8. That works fine (the server
starts up without mod_perl), but now I can't build mod_perl-2.0.3
against it: I get the following error when the build reaches
Apache2::Access:

link -out:..\..\..\blib\arch\auto\Apache2\Access\Access.dll [...]
Access.obj : error LNK2019: unresolved external symbol _ap_requires
referenced in function _mpxs_ap_requires
..\..\..\blib\arch\auto\Apache2\Access\Access.dll : fatal error LNK1120:
1 unresolved externals

Sure enough, ap_requires() has been removed from server/core.c in the
current httpd source. I tried mod_perl from svn, but that still calls
ap_requires().

This is strange - the removal of ap_requires() from
server/core.c happened 19 months ago, so mp2 should
be aware of that. If I'm following things correctly
in the mp2 sources, though, it should be defined;
mp2\WrapXS\Apache2\Access\Access.xs defines
ap_requires() in terms of mpxs_ap_requires(), which
is defined in mp2\xs\Apache2\Access\Apache2__Access.h.
So it sounds like this is an internal mp2 problem;
could that also be related to manifest files?

--
best regards,
Randy


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to