Skip Menu |

This queue is for tickets about the mod_perl CPAN distribution.

Report information
The Basics
Id: 56761
Status: rejected
Priority: 0/
Queue: mod_perl

People
Owner: Nobody in particular
Requestors: alex [...] pearanalytics.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Build failure under Strawberry Perl 5.10.1
Date: Tue, 20 Apr 2010 14:28:12 -0500
To: bug-mod_perl [...] rt.cpan.org
From: Alex Ford <alex [...] pearanalytics.com>
The `dmake' utility on Windows reports an error message and refuses to build mod_perl2. I've included a partial transcript, including some of the output of the `perl Makefile.PL' step: Note (probably harmless): No library found for D:/Apache2.2/lib/libapr-1.lib Note (probably harmless): No library found for D:/Apache2.2/lib/libaprutil-1.lib Note (probably harmless): No library found for D:/Apache2.2/lib/libhttpd.lib Writing Makefile for ModPerl::Const Writing Makefile for ModPerl Writing Makefile for ModPerl::XS Writing Makefile for mod_perl2 [warning] mod_perl dso library will be built as mod_perl.so [warning] You'll need to add the following to httpd.conf: [warning] [warning] LoadModule perl_module modules/mod_perl.so [warning] [warning] depending on your build, mod_perl might not live in [warning] the modules/ directory. D:\mod_perl-2.0.4>dmake dmake: makefile: line 1250: Error: -- Incomplete rule recipe group detected Perl version: 5.10.1 (MSWin32-x86-multi-thread) Perl distribution: Strawberry Perl January 2010 OS Version: Windows 7 Home Premium 64-bit
From: Mike
Hi Alex, It is extremely difficult if not impossible to build mod_perl with dmake, especially since it needs Apache as well, and Apache is designed to be compiled with Microsoft Visual Studio. While it's not a proper fix for this exact issue, it is something that will probably work for you - kmx provided binaries for mod_perl created with MSVC that work with Strawberry. See http://rt.cpan.org/Public/Bug/Display.html?id=58512 - feedback is welcome. -- Mike
The Makefile syntax error that dmake reported is now resolved in svn by rev. 1477980. The build process is now able to start, but you'll immediately find that it doesn't work for other reasons: ap_config_auto.h, included by ap_config.h, is missing. This doesn't happen when building with VC++/nmake because ap_config.h actually says this: #if (!defined(WIN32) && !defined(NETWARE)) || defined(__MINGW32__) #include "ap_config_auto.h" ... i.e. ap_config_auto.h isn't normally included on Windows, but it is when using MinGW/dmake... And therein lies the real problem: In order to build mod_perl using MinGW/dmake you must either (1) use an Apache which was built with MinGW, or (2) indulge in some manual intervention to allow building a MinGW mod_perl (or at least a mod_perl for use with a MinGW perl, like Strawberry Perl) with a VC++ Apache. Option (1) is theoretically possible: According to http://httpd.apache.org/docs/2.2/platform/win_compiling.html, "Only the Microsoft compiler tool chain is actively supported by the active httpd contributors. Although the project regularly accepts patches to ensure MinGW and other alternative builds work and improve upon them, they are not actively maintained and are often broken in the course of normal development." I've personally never tried building Apache with MinGW, but the Changes file entries for 2.2.18 mention MinGW build improvements having been committed, so that version at least could well work. (I believe you would need an MSYS environment rather than just MinGW tools in a standard cmd.exe shell.) Option (2) has apparently been explored by the maintainers of Strawberry Perl itself (as Mike has already said), and I've done the same myself and uploaded binaries here: http://people.apache.org/~stevehay/ (Just a minor detail, as an aside: Note that the problem here is in using MinGW/gcc, not in using dmake. It is possible (although unusual) to build perl using VC++ with dmake. If you do that then mod_perl will also try to use the VC++/dmake combination and (as of the svn revision cited above) that works fine.) I'm going to mark this ticket as 'Rejected' because given the rarity of building Apache with MinGW it is not realistic to add MinGW support to mod_perl. (And the manual intervention approach taken by both kmx and myself in pursuing option (2) above actually involved building mod_perl with ***VC++***, but in such a way that it works with a MinGW perl, so even that cannot be fitted into the mod_perl build process to assist people trying to use MinGW.)