develooper Front page | perl.perl5.porters | Postings from June 2008

Attempt to Configure under Bash on VMS results.

Thread Next
From:
John E. Malmberg
Date:
June 16, 2008 21:48
Subject:
Attempt to Configure under Bash on VMS results.
Message ID:
48574201.5020908@qsl.net
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
wb8tyw@qsl.net
Personal Opinion Only

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About