GNV Version 3.0-2F for VSI OpenVMS x86-64
Release Notes
- Operating System:
- VSI OpenVMS x86-64 Version 9.2-3 or higher
- Software Version:
- GNV Version 3.0-2F for VSI OpenVMS x86-64
- Kit Name:
- VSI-X86VMS-GNV-V0300-2F-1.PCSI$COMPRESSED
1. Introduction
Thank you for your interest in GNV for VSI OpenVMS x86-64. The first release of GNV for VSI OpenVMS on x86-64 systems is V3.0-2F.
GNV is an open-source, GNU-based environment for OpenVMS that provides a UNIX-style environment on OpenVMS for application developers, system managers, and users.
This release of GNV includes the following:
Bash – a command processor alternative to DCL.
GNU Core Utilities – basic file, shell, and text manipulation utilities, such as
sort,md5sum,ls,printf, etc.GNU AWK – a special-purpose programming language for data reformatting.
GNU Grep – a tool that searches a file for lines containing a match to a specified pattern.
GNU SED – a non-interactive command-line text editor.
GNU LD – a linker that combines a number of object and archive files, relocates their data, and ties up symbol references.
GNU AR – a program that creates, modifies, and extracts from archives.
Make – a building tool.
GNU BINUTILS – a package that includes the utilities
strip,size,strings,nm, andaddr2linez.GNU BISON – a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser.
GNU FLEX – a free and open-source software alternative to lex.
GNU PATCH – shell command that updates text files according to instructions in a separate file, called a patch file.
GNU WHICH – a utility that is used to find which executable, alias, or shell function is executed when entered on the shell prompt.
GNU M4 – an implementation of the traditional Unix macro processor.
GNU LESS – a terminal pager program for Unix, Windows, and Unix-like systems used to view (but not change) the contents of a text file one screen at a time.
GNU DIFFUTILS – a package of several programs related to finding differences between files. Computer users often find occasion to ask how two files differ.
GNU FINDUTILS – a package that contains the GNU programs
find,xargs, andlocate.MNT – VMS-specific commands to mount or unmount a file_system on an existing director (the mount_point)
DCL – a wrapper that allows to execute DCL commands from shell.
2. What’s New in This Release
Changes With MAKE Tools
This GNV package contains two instances of the MAKE utility. They are as follows:
MAKE.EXE version 3.78.1 (default), for use with UNIX-style Makefiles
VMS_MAKE.EXE version 4.4.90, for use with VMS-style Makefiles to run DCL scripts
To switch to VMS_MAKE.EXE instead of the default MAKE.EXE, enter the following command:
$ MAKE :== $ GNU:[BIN]VMS_MAKE.EXE
To use VMS_MAKE.EXE from bash, you must rename MAKE.EXE to GNV$MAKE.EXE and VMS_MAKE.EXE to MAKE.EXE.
VMS_MAKE.EXE now features the option to use bash as shell for executing commands, which provides the following benefits:
Improved tempfile generation (mkstemp is available on VMS), which should help to avoid errors due to being unable to open a tempfile.
Now, a build should not differ based on whether it was started from a Bash shell or not.
Tidying of whitespace, global VMS flags, and re-factoring the file vmsjobs.c to be a unit instead of being
#includedby another .c file.
When deciding whether to build rules with DCL or Bash, consider the following factors:
If the logical GNV$MAKE_OLD_VMS is defined, its value 0 means to process rules in DCL, while 1 means to process rules in GNV Bash.
Otherwise, if the Makefile being invoked contains a
SHELL= directive: dclwill mean to process rules in DCL, anything else will mean to process rules in GNV Bash.Otherwise (i.e. no SHELL directive): if the program name contains "VMS", e.g. VMS_MAKE, then process rules in DCL, otherwise process rules in GNV Bash.
Also, if a Makefile is not specified by the -f switch , then VMS_MAKE will search for Makefile.vms before falling back to GNUmakefile and Makefile as before.
Fixes in LD Tools
An issue with quotation marks has been fixed for clang (as part of ld-tools).
A bogus warning for
cxx -Wallhas been fixed.- The following GCC parsing issues have been fixed:
The
Wc,argument now works and is processed like the-Wc/argument.Unrecognized multi-character switch is reported and skipped in full, instead of reporting and skipping just the first character.
Both
--versionand-versionflags now work correctly and display the version number instead of attempting to build new the target.
M4 Fixes
The esyscmd command now works in M4. When the output of M4 exceeds 512 KB, it
tries to use temporary files instead of memory buffers.
A bug with VMS paths that was causing M4 to crash has been fixed.
DCL Utility
Default DLC to not pass an output mailbox to lib$spawn. This hopefully will fix a range of display artifact problems. The drawback will be that
stdoutandstderrare not distinguished, and all output will go tostdout.Add a switch
-sto give the current behaviour ofstdout/stderrseparation in case anybody needs that functionality.Added the switch
-hto show help for command line switches.When using
-s, senddefine/proc decc$stdio_ctx_eol enableto the child. This will fix some of the display issues of excess newlines such as the bash DCLgit config --global.Suppress display of error message by setting the high bit on the DCL exit status.
Other Fixes
Using the TOUCH command on a directory now does not create a file with same name.
An issue that was causing the FIND command that uses
-exec sh -cto rename .obj files to .o files to result in a fatal error has been fixed.The command
rm /usr/local/file.txtno longer fails for existing files.
Included GNU/BIN Utilities
Since the previous release, the support for the following GNU/BIN utilities have been added to GNV for OpenVMS x86-64:
strip
strings
nm
size
addr2line
Here is the full list of GNU/BIN utilities included in this kit:
| addr2line.exe | ar.exe | arch.exe | awk.exe |
| base64.exe | basename.exe | bash.exe | bashdebug.exe |
| bigram.exe | bison.exe | bunzip2.exe | bzip2.exe |
| cat.exe | cc.exe | chcon.exe | chgrp.exe |
| chmod.exe | chown.exe | chroot.exe | cksum.exe |
| clang.exe | cmp.exe | code.exe | comm.exe |
| cp.exe | csplit.exe | cut.exe | cxx.exe |
| date.exe | dcl.exe | dd.exe | df.exe |
| diff.exe | diff3.exe | dir.exe | dircolors.exe |
| dirname.exe | du.exe | echo.exe | egrep.exe |
| env.exe | execv_symbol.exe | expand.exe | expr.exe |
| factor.exe | false.exe | fgrep.exe | find.exe |
| flex.exe | fmt.exe | fold.exe | frcode.exe |
| gawk.exe | gcc.exe | gnv$ar.exe | gnv$bash.exe |
| gnv$bzip2.exe | gnv$bzip2recover.exe | gnv$debug-ar.exe | gnv$debug-ld.exe |
| gnv$grep.exe | gnv$ld.exe | gnv$libbz2_32.exe | gnv$libbz2_64.exe |
| gnv$make.exe | gnv$sed.exe | grep.exe | groups.exe |
| head.exe | hostid.exe | hostname.exe | id.exe |
| install.exe | join.exe | kill.exe | lbracket.exe |
| ld.exe | less.exe | link.exe | ln.exe |
| locate.exe | logname.exe | ls.exe | m4.exe |
| make.exe | md5sum.exe | mkbuiltins.exe | mkdir.exe |
| mkfifo.exe | mknod.exe | mksignames.exe | mksyntax.exe |
| mktemp.exe | mv.exe | nice.exe | nl.exe |
| nm.exe | nohup.exe | nproc.exe | numfmt.exe |
| od.exe | paste.exe | patch.exe | pathchk.exe |
| pinky.exe | pr.exe | printenv.exe | printf.exe |
| ptx.exe | pwd.exe | readlink.exe | realpath.exe |
| recho.exe | regexprops.exe | rm.exe | rmdir.exe |
| runcon.exe | sdiff.exe | sed.exe | sed_debug.exe |
| sed_hack.exe | sed_hack_debug.exe | seq.exe | sh.exe |
| sha1sum.exe | sha224sum.exe | sha256sum.exe | sha384sum.exe |
| sha512sum.exe | shred.exe | shuf.exe | size.exe |
| sleep.exe | sort.exe | split.exe | stat.exe |
| stdbuf.exe | strings.exe | strip.exe | stty.exe |
| sum.exe | sync.exe | tac.exe | tail.exe |
| tar.exe | tee.exe | test.exe | timeout.exe |
| touch.exe | tr.exe | true.exe | truncate.exe |
| tsort.exe | tty.exe | uname.exe | unexpand.exe |
| uniq.exe | unlink.exe | unzip.exe | uptime.exe |
| users.exe | vdir.exe | vms_make.exe | wc.exe |
| which.exe | who.exe | whoami.exe | xargs.exe |
| xcase.exe | yes.exe | zecho.exe | zip.exe |
| ^[.exe |
The GNU/LIB files contained in this kit are as follows:
GNV_SETUP.COM
libstdbuf.so
libzshr.exe
The GNU/ETC files included in this kit are as follows:
bison.hairy
bison.simple
3. Requirements
This kit requires VSI OpenVMS x86-64 Version 9.2-3 or higher. Note that while you probably will not have any problems installing and using this kit on systems running higher versions of the operating system, older versions are unsupported and will likely cause problems.
4. Recommended Reading
Users may find it helpful to refer to the following documentation in order to better understand how to configure and use the GNV software:
Installing GNV Packages (https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/)
Niel Rieck's OpenVMS Notes (https://neilrieck.net/docs/openvms_notes_gnv.html)
For more information about using GNU, users should refer to documentation available via the GNU website (https://www.gnu.org/), as well as other resources available online.
5. Installing the Kit
The kit is provided as an OpenVMS PCSI kit (VSI-X86VMS-GNV-V0300-2F-1.PCSI$COMPRESSED) that can be installed by a suitably privileged user using the following command:
$ PRODUCT INSTALL GNV
The installation will then proceed as follows (output may differ slightly from that shown depending on various factors):
The following product has been selected:
VSI X86VMS GNV V3.0-2F Layered Product
Do you want to continue? [YES]
Configuration phase starting ...
You will be asked to choose options, if any, for each selected product and for
any products that may be installed to satisfy software dependency requirements.
Configuring VSI X86VMS GNV V3.0-2F: GNV for VSI OpenVMS x86-64
© Copyright 2024 VMS Software Inc.
VMS Software Inc.
* This product does not have any configuration options.
Execution phase starting ...
The following product will be installed to destination:
VSI X86VMS GNV V3.0-2F DISK$X86SYS:[VMS$COMMON.]
Portion done: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
The following product has been installed:
VSI X86VMS GNV V3.0-2F Layered Product
VSI X86VMS GNV V3.0-2F: GNV for VSI OpenVMS x86-64
Post-installation tasks are required.
To use GNV, users must execute the following command:
$ @SYS$STARTUP:GNV$SETUP.COM6. Known Issues and Limitations
The following issues and limitations are known at the time of this release:
GCC does not link executable files from object files. As a workaround, use the following command:
touch dummy.c; gcc -o foo.exe a.obj b.obj dummy.c
You will get a warning message that the file
dummy.cis empty. This message may be safely ignored.Executing the command
rm -f *.xxxcauses an error with the following message:cannot remove '.xxx': invalid wildcard operation
As a workaround, use the following command:
touch dummy.xxx; rm -f *.xxx
Hardlinks cannot be created via the
lncommand. As a workaround, use the following commands:dcl set file source /enter=target
The current implementation of the Strip utility is not fully functional. VSI recommends that you avoid using it until further notice.
The SED utility does not currently work with the
-iflag unless the user has the SYSPRV privilege.The AR tool does not currently support the
deleteandmoveoptions. Using either of these options will return a warning and do nothing.The AR tool incorrectly ignores the
extractandprintoptions. Using either of these options will do nothing.The Make 4.4.90 utility does not work well with shell.
There are currently some issues with redirections in files.
There are currently some issues with tar options (
tar xandtar c)Bash hangs on combination of redirects and pipes.
The
cp -pcommand does not preserve timestamps.Executing bash script under a pipe results in failed reads.
SED hangs if the input does not end in a newline character (from bash).
There are currently some issues with
bashrc(work with pipes).