Craig A. Berry wrote:
At 9:47 PM +0200 11/22/03, Saku Setala wrote:

Here it is. Last line looks wrong.

$ type [.ext.digest.md5]md5.opt
UNIVERSAL=boot_Digest__MD5
[---.lib.auto.Digest.MD5]MD5.olb/Include=MD5
[---.lib.auto.Digest.MD5]MD5.olb/Library
PerlShr/Share


Yes, it does.  Now let's see what you get when you run this from the
top of your source tree:

$ mcr []miniperl -"Ilib" -"V:dbgprefix"
dbgprefix='DBG';

If the prefix isn't there, then either you're not configuring
correctly or there's a bug in the way configure.com handles this.

Saku confirms off-list that he is configuring correctly. This turned out to be a very twisty bug that would occur only when building the MD5 extension for the VMS debugger on VAX. The bit of code that puts together the last line of the linker options file (in lib/ExtUtils/Liblist/Kid.pm) looks at the compiler optimization flags currently in effect and only sticks in the DBG prefix on the shareable image name if it finds /NoOpt. For MD5, there's a workaround for a VAX compiler bug; the workaround puts in its own optimization flags, which is the right thing to do for a normal build, but the wrong thing when building debug (where all optimizations are already turned off).

This is coding blind since I don't have a VAX to test on, but the
attached patch will probably take care of things. Any confirmations to
that effect welcome.



--- ext/Digest/MD5/Makefile.PL;-0       Wed Oct 15 04:33:30 2003
+++ ext/Digest/MD5/Makefile.PL  Sat Nov 22 16:15:43 2003
@@ -10,7 +10,9 @@
     if (defined($Config{ccname})) {
         if (grep(/VMS_VAX/, @INC) && ($Config{ccname} eq 'DEC')) {
             # VAX compiler optimizer even as late as v6.4 gets stuck
-            push(@extra, OPTIMIZE => "/Optimize=(NODISJOINT)");
+            if (!defined($Config{optimize} || $Config{optimize} !~ m|/noopt|i) {
+                push(@extra, OPTIMIZE => "/Optimize=(NODISJOINT)");
+            }
         }
     }
 }

Reply via email to