Fabio Ciampi wrote:
Hi
I'm a newbie of VMS. I've tried to build perl 5.10.1 on my IA64
Welcome to VMS.
I see a couple of newbie mistakes below, but they probably are not
causing the issues that you are seeing, just additional issues.
And these are somethings that people with experience should have learned
but many have not.
Operating System (Version V8.3-1H1) with ODS5 disks. I have MadGoat Make
Utility V4.1
and compiler HP C V7.2-001.
I gave the following commands after download perl sources and unpacked
them:
set security/protection=(o:rwed) perl-5^.10^.1.DIR;1
rename perl-5^.10^.1.DIR perl-5_10_1.DIR
@configure "-des" "-Dprefix=DATE$MSA1:[PERL-5_10_1.]"
I have not used the -Dprefix. On VMS, I use logical names to determine
which version of an application to run. Perl uses the logical name
PERL_ROOT, regardless of what prefix that you assign.
Newbie note 1:
In general in managing VMS, physical device names should generally be
referenced only in the startup procedures where logical names are mapped
to them, and in utilities like backup or defragmenters that need to
specifically operate on physical devices.
Any applications other than the above that require a physical device
name instead of a logical name is broken, and not properly written for
VMS. Some applications have broken configuration routines that put
physical device names in configuration files instead of logical names.
In most cases, I have found that manually fixing the configuration files
makes the application more maintainable.
If I move the the application or its data to a new physical disk, all I
should have to do is change how the logical names are mapped. I should
never have to reconfigure an application for that.
And I should never need to notify an end user when I change what
physical devices that are being used by the computer or one of their
applications.
VMS uses logical names for things that Unix uses symbolic links for, but
logical names are far more powerful and flexible.
mmk
mmk test
The mmk process works (I only have some "Warning: long symbol....").
During mmk test I saw some tests failed:
t/op/exec.....................................................FAILED at
test 16
ext/Compress-Raw-Bzip2/t/01bzip2..............................FAILED--expected
157 tests, saw 10
ext/Compress-Raw-Bzip2/t/09limitoutput........................FAILED--expected
88 tests, saw 5
ext/IO-Compress/t/001bzip2....................................FAILED at
test 58
ext/IO-Compress/t/006zip......................................FAILED--expected
77 tests, saw 17
Perl is sensitive to the logical name BIN, and foreign commands for ZIP
and BZIP2 among others.
Older versions of the GNV product would incorrectly assign the logical
name BIN in the system table, and many people will put in symbols for
ZIP and BZIP2 in the SYLOGIN.COM or LOGIN.COM.
Other applications may set the BIN logical name and leave it behind.
If some of the tests find a ZIP or BZIP executable, they will try to use
it just like a UNIX utility and may expect that they are running it
under the Bash shell.
Perl also now supports the DECC$* feature logicals at run time. Not all
combinations have been tested, and some combinations will cause tests to
fail because they change the behavior in ways that the tests do not yet
expect.
It is also possible that running on your environment may need some more
quota for a resource than the build procedure knows to test for.
For building and the initial testing of Perl, make sure that all the
DECC$ feature logicals are set to their default.
Then read the two VMS specific text files in Perl for their usage.
Newbie note 2:
[DIR$UTIL.PERL_5-010.PERL-5_10_1]PERL.EXE;1
The use of '$' in logical names, filenames, directories, and symbols is
reserved to HP/VMS and registered third party usage. It should not be
used in names that you make up for your own use unless directed to by
the either the VMS or third party that has registered the prefix for
that name. This is a long standing rule in VMS, but it used to be
easier to find in the documentation.
This prevents your names and names from HP or layered products from
having a conflict.
There is documentation in the VMS doc set on getting those names
registered by application developers.
With all the possibilities out there, the odds of a conflict of making
up your own names with $ in them are low, but it is not zero. Some
layered products use undocumented prefixed logical names to enable
debugging or other diagnostic procedures.
In addition, some TCPIP products use the $ in filenames to do encoding
of case changes or other special characters in NFS exports and mounted
disks.
-John
wb8...@qsl.network
Personal Opinion Only