Just to see how much would be involved to build Perl using the GNV subsystem, I tried it.

Since VMS currently is bundled with LDAP, SSL, SSH, and Kereberos libraries, I was curious to see if Perl was looking for any of them.

The first problem is that GNV bash tried to run Configure.com instead of Configure until I renamed it. That is something that was probably put in as a convenience hack, but should have a way to be disabled.

The next thing that hit was that "echo" is only a built-in on GNV, so the Configure test for it fails. I removed that test to get it to continue.

A lot of command not found warnings showed up.

: Looks kind of like a Version 7 system, but we'll see...
:
: Congratulations.  You aren't running Eunice.
:
: It's not Xenix...
:
: Nor is it Venix...
:
: Checking for GNU cc in disguise and/or its version number...
: You are not using GNU cc.
: ./configure: -n: command not found
: Doesn't look like a MIPS system.

Since the library names on VMS have different names than on Unix, it did not find any of them.

Most of the tests for the existence of the header files failed. I am assuming that it was trying to find them in the usual places on a *NIX system.

On VMS, most of the header files are in a library, and the rest are on their own special paths, so the only UNIX procedure that finds them is compiling a test program.

:        exit(0);
:........^
:%CC-I-IMPLICITFUNC, In this statement, the identifier "exit" is
: implicitly declared as a function.

On VMS, if you call a routine with out the system headers, you get the oldest entry point for that function, and some functions are not visible unless the header files are used to prototype them.

This is done so that VAX/VMS 7.3 is binary compatible back to VMS 5.5-2.
And Alpha/VMS 8.3 is binary compatible back to ALPHA VMS 1.0.

So any test that Configure does with out using the normal header files may result in the wrong answer, especially if it is looking for POSIX behavior, and the native VMS behavior was originally implemented differently.

For example, default exit() routine is not compatible with bash scripts. It translates exit(0) and exit(1) to return the value of 1 to bash.

If the <stdlib.h> is included, a different exit() is used that returns the expected codes.

: Shall I use nm to extract C symbols from the libraries? [y] n

I doubt the default would work, since I do not think nm is present with GNV. And I would be surprised if a version existed that could read the Alpha binaries.

The script hung 3 times, which is a known issue with GNV where these hangs happen occasionally.

: vfork() NOT found.

Don't know why, it is there. But it does not work quite the way as on UNIX, so it may be just as well as it was not found.

:*** WARNING:
:*** Neither <sgtty.h> nor <termio.h> found--cross fingers!
:***

It does not seem that it should be too hard to put a termio wrapper on VMS. A lot of ported code seems to be looking for it.

It looks like a bit of work before VMS can run the UNIX configure script.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to