Two problems found so far.
1. The compiler can not find the header file when run.
This is because last /INCLUDE directive on the command line is the only
one used, and there was already an /INCLUDE in the configuration options.
The same is the case for /DEFINE and the other qualifiers.
A quick fix is to change the order of the items in the @flags array as
below. A more robust fix would be to rebuild the parameters, a task I
am not currently up to in Perl.
This get the test lib/ExtUtils/ParseXS/t/basic.t to the linker step
where it fails because it does not generate the linker option file. And
I have not yet gotten past that step.
On ALPHA and I64, the linker option files do two things, one it lists
the global symbols to be exported for a later link or dynamic load, and
secondly it specifies the shared images that should also be linked in.
On VAX, the option files specifies the shared images, and also
optionally a transfer_vector object module that is used to make upward
compatible shared images.
Multiple option files can be used. The Perl build procedure leaves a
file PerlShr.Opt in the base directory where it is built.
Including this PerlShr.Opt file will make the link succeed, but unless
another option file is use, on Alpha/I64 the test to run the newly
linked routine will fail.
I am not in a position to test what would happen on a VAX if the
transfer vector object module is not present on a shared image.
I also notice that the build procedures are putting in the full file
specifications for the shared images they are linked against in the
option file instead of just putting in the bare image name such as
"DBGPERLSHR", and then using a logical name to point to the actual file.
At run time, if the logical name is not present, the image activator
will look in SYS$SHARE: for the image. So the logical name is going to
be needed anyway during the build/test phase, and will be needed after
the installation.
This means that the when you do a MMS INSTALL step, all the option files
generated during the build need to be edited. If the logical name
method was used instead, the option files would only be need to be
written once and never edited.
-John
[EMAIL PROTECTED]
Personal Opinion Only
EAGLE> gdiff "lib/ExtUtils/CBuilder/Base.pm_25305"
"lib/ExtUtils/CBuilder/Base.pm"
--- lib/ExtUtils/CBuilder/Base.pm_25305 Thu Aug 18 22:45:10 2005
+++ lib/ExtUtils/CBuilder/Base.pm Thu Aug 18 22:23:47 2005
@@ -90,9 +90,9 @@
my @cccdlflags = $self->split_like_shell($cf->{cccdlflags});
my @ccflags = $self->split_like_shell($cf->{ccflags});
my @optimize = $self->split_like_shell($cf->{optimize});
- my @flags = (@include_dirs, @cccdlflags, @extra_compiler_flags,
+ my @flags = (@cccdlflags, @extra_compiler_flags,
$self->arg_nolink,
- @ccflags, @optimize,
+ @ccflags, @optimize, @include_dirs,
$self->arg_object_file($args{object_file}),
);