perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Randy Kobes <ra...@theoryx5.uwinnipeg.ca>
Subject Re: Problems building mod_perl-2.0.3 on Win32 with VC8
Date Wed, 22 Aug 2007 11:25:57 GMT
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: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Mime
View raw message