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]
