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