diff options
Diffstat (limited to 'doc/gawktexi.in')
-rw-r--r-- | doc/gawktexi.in | 46 |
1 files changed, 40 insertions, 6 deletions
diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 51b90877..fc465648 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -34012,7 +34012,7 @@ The older designation ``VMS'' is used throughout to refer to OpenVMS. To compile @command{gawk} under VMS, there is a @code{DCL} command procedure that issues all the necessary @code{CC} and @code{LINK} commands. There is -also a @file{Makefile} for use with the @code{MMS} or @code{MMK} utility. +also a @file{Makefile} for use with the @code{MMS} and @code{MMK} utilities. From the source directory, use either: @example @@ -34033,8 +34033,8 @@ or: $ @kbd{MMK/DESCRIPTION=[.vms]descrip.mms gawk} @end example -@code{MMK} is an open source freeware near clone of @code{MMS} and -can better handle @code{ODS-5} volumes with upper- and lower-case filenames. +@code{MMK} is an open source, free, near-clone of @code{MMS} and +can better handle @code{ODS-5} volumes with upper- and lowercase filenames. @code{MMK} is available from @uref{https://github.com/endlesssoftware/mmk}. With @code{ODS-5} volumes and extended parsing enabled, the case of the target @@ -34060,9 +34060,10 @@ a PCSI kit for compatible with the GNV product. @appendixsubsubsec Compiling @command{gawk} Dynamic Extensions on VMS Dynamic extensions need to be compiled with the same compiler options for -floating point, pointer size, and symbol name handling as @command{gawk}. +floating point, pointer size, and symbol name handling as were used +to compile @command{gawk} itself. Alpha and Itanium should use IEEE floating point. The pointer size is 32 bits, -and the symbol name handling is to be exact case with CRC shortening for +and the symbol name handling should be exact case with CRC shortening for symbols longer than 32 bits. For Alpha and Itanium: @@ -34176,6 +34177,39 @@ flag is required to force Unix-style parsing rather than @code{DCL} parsing. If other dash-type options (or multiple parameters such as data files to process) are present, there is no ambiguity and @option{--} can be omitted. +@cindex exit status, of VMS +The @code{exit} value is a Unix-style value and is encoded to a VMS exit +status value when the program exits. + +The VMS severity bits will be set based on the @code{exit} value. +A failure is indicated by 1 and VMS sets the @code{ERROR} status. +A fatal error is indicated by 2 and VMS will set the @code{FATAL} status. +All other values will have the @code{SUCCESS} status. The exit value is +encoded to comply with VMS coding standards and will have the +@code{C_FACILITY_NO} of @code{0x350000} with the constant @code{0xA000} +added to the number shifted over by 3 bits to make room for the severity codes. + +To extract the actual @command{gawk} exit code from the VMS status use: + +@example +unix_status = (vms_status .and. &x7f8) / 8 +@end example + +@noindent +A C program that uses @code{exec()} to call @command{gawk} will get the original +Unix-style exit value. + +Older versions of @command{gawk} treated a Unix exit code 0 as 1, a failure +as 2, a fatal error as 4, and passed all the other numbers through. +This violated the VMS exit status coding requirements. + +@cindex floating-point, VAX/VMS +VAX/VMS floating point uses unbiased rounding. @xref{Round Function}. + +VMS reports time values in GMT unless one of the @code{SYS$TIMEZONE_RULE} +or @code{TZ} logical names is set. Older versions of VMS, such as VAX/VMS +7.3 do not set these logical names. + @c @cindex directory search @c @cindex path, search @cindex search paths @@ -34193,7 +34227,7 @@ translation and not a multitranslation @code{RMS} searchlist. The VMS GNV package provides a build environment similar to POSIX with ports of a collection of open source tools. The @command{gawk} found in the GNV base kit is an older port. Currently the GNV project is being reorganized -to be individual PCSI packages for each component. +to supply individual PCSI packages for each component. See @uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}. The normal build procedure for @command{gawk} produces a program that |