Ken Williams <[EMAIL PROTECTED]> wrote on 03/12/2005 10:35:22 PM:

> On Mar 12, 2005, at 7:18 PM, Ken Williams wrote:
> >
> > Excellent.  I just have one question, then, about the following line:
> >
> >   my @lddlflags = $args{lddl} ? ($cf->{lddlflags}."=$out") :
> > ("/exe=$out");
> >
> > What is the original value of $cf->{lddlflags} such that it makes
> > sense to just append "=$out" to it?
>
> Scratch that, I think I see how it works.
>
> Care to try the 0.09_02 revision, hitting CPAN now?

OK that one is much close to what I thought you were aiming at :-)
It turns out there was an override typo in VMS.pm and t/02-link.t
was left as is.  This time around I have checked the return $STATUS
of the compilet program in a vmsish fashion, that was done so as
not to hurt the successful run on Solaris (where vmsish.pm is not
installed and this might be considered a bug in the installperl script
that ships with perl).
Here is a patch against 0.09_02 that addresses
both issues and passes both tests on VMS + perl 5.8.1 and
Solaris + perl 5.6.1:

diff -ru ExtUtils-CBuilder-0_09_02_orig/lib/ExtUtils/CBuilder/Platform/VMS.pm 
ExtUtils-CBuilder-0.09_02/lib/ExtUtils/CBuilder/Platform/VMS.pm
--- ExtUtils-CBuilder-0_09_02_orig/lib/ExtUtils/CBuilder/Platform/VMS.pm      
2005-03-12 22:28:29.000000000 -0500
+++ ExtUtils-CBuilder-0.09_02/lib/ExtUtils/CBuilder/Platform/VMS.pm     
2005-03-14 12:40:24.628116000 -0500
@@ -25,7 +25,7 @@
   return ("/exe=$file");
 }

-sub arg_shared_object_file {
+sub arg_share_object_file {
   my ($self, $file) = @_;
   return ("$self->{config}{lddlflags}=$file");
 }
diff -ru ExtUtils-CBuilder-0_09_02_orig/t/02-link.t 
ExtUtils-CBuilder-0.09_02/t/02-link.t
--- ExtUtils-CBuilder-0_09_02_orig/t/02-link.t  2005-03-12 22:28:29.000000000 
-0500
+++ ExtUtils-CBuilder-0.09_02/t/02-link.t 2005-03-14 14:14:44.794097000 -0500
@@ -7,6 +7,10 @@
     print "1..0 # Skipped: link_executable() is not implemented yet on 
Win32\n";
     exit;
   }
+  if ($^O eq 'VMS') {
+    require vmsish;
+    import vmsish;
+  }
   plan tests => 5;
 }

@@ -35,8 +39,14 @@
 ok $exe_file;

 # Try the executable
-my $retval = system($exe_file);
-ok $retval >> 8, 11;
+if ($^O eq 'VMS') {
+  my $retval = system("mcr $exe_file");
+  ok $retval, 11;
+}
+else {
+  my $retval = system($exe_file);
+  ok $retval >> 8, 11;
+}

 # Clean up
 for ($source_file, $exe_file, $object_file, @temps) {
End of Patch.

For what it is worth in answer to the first of your questions:

$ perl "-V:lddlflags"
lddlflags='/Share';

Peter Prymmer

Also see the attachment (to disambiguate line wrap issues):

(See attached file: ec.patch)

Attachment: ec.patch
Description: Binary data

Reply via email to