[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bash 4.2.39 now available for OpenVMS Alpha/I64
From: |
John E. Malmberg |
Subject: |
Re: Bash 4.2.39 now available for OpenVMS Alpha/I64 |
Date: |
Thu, 20 Dec 2012 12:02:55 -0600 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20121010 Thunderbird/16.0.1 |
On 12/20/2012 9:36 AM, Chet Ramey wrote:
On 12/16/12 10:51 AM, John E. Malmberg wrote:
For those that want to look at the source, you can examine or check out the
OpenVMS specific changes in the http://gnv.cvs.sourceforge.net/gnv/ cvs
tree from the gnu_vms/bash tree with the cvs tag gnv-bash-V0402-39e0. At
this time that is the same as latest version of the files.
These changes are done in conjunction with the actual GNU bash sources, a
copy of these are in cvs for GNV project in the gnu/bash tree with the cvs
tag gnv-bash-V0402-39e0.
How can I get a copy of the source files with the VMS-specific patches
already applied?
I just posted them to:
ftp://ftp.encompasserve.org/gnv/bash_vms_patched_source.zip
These are just the files generated by the build procedure, not the
additional VMS modules.
The gnv$*.c_first are pre-pended by the compiler to the source module
that is being compiled. In many cases it allows me to make VMS look
more like Unix with out having to modify the code.
The files with $ in their names are renamed as part of the build
procedure because the $ tends to cause problems in Unix based change
control systems.
VMS has a registry of xxx$ prefixes that can be reserved for projects to
prevent conflicts. The gnv$ prefix is officially reserved for the GNV
project that includes the port of bash. The pcsi$ prefix is reserved
for files used for creating installation kits.
Y_TAB.C needed to be renamed and have the "#line" directives stripped
for compatibility with the VMS debugger. I cannot currently generate
the y.tab.c from source on VMS. I am not sure that the ancient port of
Bison is up to it.
mkbuiltins.c needed some fixup with the #includes, and also needed the
"#line" directives stripped from the output files as it interferes with
the VMS debugger.
bashline.c has a hardcoded definition for tputs that conflicts with the
usage in lib/readline, and as I used a global wrapper to supply a
tputs() routine, it causes a compile issue.
In redir.c, VMS needs special file options, namely to delete on close
when the file is being read. Prevents a race condition on unlink.
trap.c needed VMS to be able to retrieve and set the signal modes for
fake fork context handling.
unwind_prot.c needed VMS to see the *unwind_protect_list for fake fork
context handling.
variables.c adds some environment variables that VMS does not supply to
C programs by default, but a bash user would expect to be there.
And VMS uses the "INCLUDE_UNUSED" routines.
nojobs.c has code to simulate a fake fork and set of fake pids.
execute_cmd.c and subst.c have a lot of changes to support the saving
and restoring the the fake fork context.
Regards,
-John
wb8tyw@qsl.net
Personal Opinion Only