On Thu, 23 Aug 2007, Steve Hay wrote:

The problem is solved when I manually embed the manifest file for
mod_perl.so (right after "nmake", and before "nmake test" or "nmake
install").

Does the attached diff work for you? I installed VC++ 8,
and it worked for me in calling mt to embed the manifest
file, but I haven't tested it out yet, as I haven't
recompiled Perl and Apache.

--
best regards,
Randy
Index: lib/Apache2/Build.pm
===================================================================
--- lib/Apache2/Build.pm        (revision 569691)
+++ lib/Apache2/Build.pm        (working copy)
@@ -1592,7 +1592,10 @@
     return $self->dynamic_link_header_default .
         "\t$defs" .
         ($symbols ? ' \\' . "\n\t-pdb:$symbols" : '') .
-        ' -out:$@' . "\n\n";
+        ' -out:$@' . "\n\t" .
+        'if exist $(MODPERL_MANIFEST_LOCATION)' . " \\\n\t" .
+        'mt /nologo /manifest $(MODPERL_MANIFEST_LOCATION)' . " \\\n\t" .
+        '/outputresource:$@;2' . "\n\n";
 }
 
 sub dynamic_link_aix {
@@ -1838,6 +1841,12 @@
     if ($self->is_dynamic && (my $libs = $self->modperl_libpath)) {
         print $fh $self->canon_make_attr('lib_location', $libs);
 
+        # Visual Studio 8 on Win32 uses manifest files
+        if (WIN32) {
+            (my $manifest = $libs) =~ s/\.lib$/.so.manifest/;
+            print $fh $self->canon_make_attr('manifest_location', $manifest);
+       }
+
         print $fh $self->canon_make_attr('ap_libdir',
             $self->ap_destdir(catdir $self->{MP_AP_PREFIX}, 'lib')
         );
@@ -1938,7 +1947,7 @@
 clean:
        $(MODPERL_RM_F) *.a *.so *.xsc \
        $(MODPERL_LIBNAME).exp $(MODPERL_LIBNAME).lib \
-       *$(MODPERL_OBJ_EXT) *.lo *.i *.s *.pdb \
+       *$(MODPERL_OBJ_EXT) *.lo *.i *.s *.pdb *.manifest \
        $(MODPERL_CLEAN_FILES) \
        $(MODPERL_XS_CLEAN_FILES)
 
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to