Hi John,
Thanks for the patch. A couple questions:
1) I see both /include and /Include specified in various places in the
source. Should your s/// be case-insensitive?
2) Would it be more appropriate to fold the include-dirs from ccflags
into the user-specified ones, rather than throwing them away?
For the include-dirs issues, I'm thinking of a patch more like this
instead:
=======================================================
--- lib/ExtUtils/CBuilder/Platform/VMS.pm 2005/05/20 00:50:04
1.7
+++ lib/ExtUtils/CBuilder/Platform/VMS.pm 2005/09/08 02:50:23
@@ -11,6 +11,13 @@
sub arg_include_dirs {
- my $self = shift;
- return '/include=(' . join(',', @_) . ')';
+ my ($self, @dirs) = @_;
+
+ # VMS can only have one include list, remove the one from config.
+ if ($self->{config}{ccflags} =~ s{/include=\(([^\)]*)\)} {}i) {
+ unshift @dirs, $1;
+ }
+ return unless @dirs;
+
+ return ('/include=(' . join(',', @dirs) . ')');
}
=======================================================
Thanks,
-Ken
On Sep 7, 2005, at 6:59 PM, John E. Malmberg wrote:
This patch is needed for the lib/ExtUtils/ParseXS.t/basic.t test to
pass on VMS.
In lib/ExtUtils/CBuilder/Platform/VMS.pm, VMS needs to have a pre-link
file generated.
In lib/ExtUtils/CBuilder/Base.pm:
VMS can only have one /include qualifier on the CC command, and the
last one wins, so if one is present in @ccflags, remove it.
VMS needs to have the executable named the same way that dynaloader
will look for it.
VMS needs to have two option files specified in the link, one to
indicate the exported symbols, and one to locate the PERLSHR image.