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)
ec.patch
Description: Binary data
