On 17 February 2015 at 09:40, Michael Lackhoff <[email protected]> wrote: > Am 15.02.2015 um 19:08 schrieb Steve Hay: > >>>> If you want 32-bit then the easiest way is to build it yourself using >>>> a perl that you built yourself with the same compiler. >>> >>> >>> Is there a recommended compiler? I use Strawberry perl, do you know >>> which compiler is used for that perl? As you say, it would be better to >>> use the same. And I would like to stick to it because there are so many >>> binaries of difficult modules already included. >>> >> >> Unfortunately you'll need to use VC++ for now because mod_perl doesn't >> currently support gcc/dmake (which is what both StrawberryPerl and >> ActivePerl now use). I hope to fix that soon, though... > > > I tried it and made some progress but am not there yet... > > Here is what I did (everything within a clean Windows 7 32 bit VM with VC9, > both with SP1 and all updates installed): > 1. Compile perl 5.20.1 > 2. add APXS to Apache 2.2.29 (tried both self compiled and Apache Lounge VC9 > binary) > 3. Compile and install mod_perl with/to the perl from step 1. > 4. Start Apache with mod_perl -> works > > but from there on I got into problems... > > 5. extract a fresh Strawberry Perl 5.20.1 32-bit portable > 6. copy everything relevant(?) according to the file list of Steve's 5.16.3 > 32-bit package from the self-compiled Perl to the Strawberry tree. > 7. change PATH to point to Strawberry perl > 8. Start Apache with mod_perl -> crashes > > Now I have a somewhat working mod_perl but cannot use it in my environment > (and there are good reasons to use Stawberry). > > Please, can you give a detailed recipe, especially with the steps necessary > to transfer the compiled mod_perl stuff to Strawberry? >
You can't. The VC9 build of the mod_perl components are not compatible with StrawberryPerl, which is built with gcc and therefore uses a different CRT (msvcrt.dll vs msvcr90.dll). The 32-bit components that I've built before were built with VC6 in order to use the same CRT as StrawberryPerl/ActivePerl, but that's no longer an option since ActiveState only make 64-bit-int versions of their 32-bit ActivePerl available now and the 64-bit-int build option doesn't work with VC6 due to bugs in that ancient compiler. I can make a 32-bit-int VC6 perl myself, of course, but then the mod_perl components still won't match ActivePerl because of the 32/64-bit-int mismatch... That is why I've only made 64-bit versions available recently... And that's why I need to change mod_perl so that it can be built with gcc/dmake. (I asked ActiveState to consider making 32-bit-int versions available as well (like StrawberryPerl do), but they declined.)
