patch 9.2.0491: VMS: various build issues
Commit:
https://github.com/vim/vim/commit/d8c4774273eff95eb07a6723f92f388108efb487
Author: Zoltan Arpadffy <[email protected]>
Date: Sat May 16 08:42:47 2026 +0000
patch 9.2.0491: VMS: various build issues
Problem: VMS: various build issues
Solution: Fix issues for VMS (Zoltan Arpadffy)
closes: #20131
Signed-off-by: Zoltan Arpadffy <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
diff --git a/src/Make_vms.mms b/src/Make_vms.mms
index a238a8ab9..e019897fa 100644
--- a/src/Make_vms.mms
+++ b/src/Make_vms.mms
@@ -2,7 +2,7 @@
# Makefile for Vim on OpenVMS
#
# Maintainer: Zoltan Arpadffy <[email protected]>
-# Last change: 2025-07-04 Steven M. Schweda <[email protected]>
+# Last change: 2026-05-04
#
# This script has been tested on VMS 6.2 to 9.2 on VAX, ALPHA, IA64 and X86_64
# with MMS and MMK
@@ -49,6 +49,10 @@ MODEL = HUGE
# If you have XPM installed you might want to build Motif version with toolbar
# XPM = YES
+# Large-file support. Unavailable on VAX and very old Alpha.
+# To disable, define NOLARGE.
+# NOLARGE = YES
+
# Comment out if you want the compiler version with :ver command.
# NOTE: This part can make some complications if you're using some
# predefined symbols/flags for your compiler. If does, just leave behind
@@ -108,23 +112,23 @@ ALPHA_X_ALPHA = 1
IA64_X_IA64 = 1
VAX_X_VAX = 1
X86_64_X_X86_64 = 1
-.IFDEF ARCH # ARCH
+.IFDEF ARCH # ARCH
ARCH_NAME = $(ARCH)
-.ELSE # ARCH
+.ELSE # ARCH
ARCH_NAME = $(MMS$ARCH_NAME)
-.ENDIF # ARCH
-.IFDEF $(ARCH_NAME)_X_ALPHA # $(ARCH_NAME)_X_ALPHA
+.ENDIF # ARCH
+.IFDEF $(ARCH_NAME)_X_ALPHA # $(ARCH_NAME)_X_ALPHA
__ALPHA__ = 1
-.ENDIF # $(ARCH_NAME)_X_ALPHA
-.IFDEF $(ARCH_NAME)_X_IA64 # $(ARCH_NAME)_X_IA64
+.ENDIF # $(ARCH_NAME)_X_ALPHA
+.IFDEF $(ARCH_NAME)_X_IA64 # $(ARCH_NAME)_X_IA64
__IA64__ = 1
-.ENDIF # $(ARCH_NAME)_X_IA64
-.IFDEF $(ARCH_NAME)_X_VAX # $(ARCH_NAME)_X_VAX
+.ENDIF # $(ARCH_NAME)_X_IA64
+.IFDEF $(ARCH_NAME)_X_VAX # $(ARCH_NAME)_X_VAX
__VAX__ = 1
-.ENDIF # $(ARCH_NAME)_X_VAX
-.IFDEF $(ARCH_NAME)_X_X86_64 # $(ARCH_NAME)_X_X86_64
+.ENDIF # $(ARCH_NAME)_X_VAX
+.IFDEF $(ARCH_NAME)_X_X86_64 # $(ARCH_NAME)_X_X86_64
__X86_64__ = 1
-.ENDIF # $(ARCH_NAME)_X_X86_64
+.ENDIF # $(ARCH_NAME)_X_X86_64
.ELSE # MMS$ARCH_NAME
.IFDEF __MMK__ # __MMK__
.IFDEF ARCH # ARCH
@@ -234,8 +238,7 @@ PREFIX = /prefix=all/name=(upper,short)
/repository=[.$(DEST)]
# This makes Alpha consistent.
FLOAT = /float = ieee_float /ieee_mode = denorm_results
-# Large-file support. Unavailable on VAX and very old Alpha. To
-# disable, define NOLARGE.
+# Large-file support. Unavailable on VAX and very old Alpha.
.IFDEF NOLARGE
.ELSE
LARGE_DEF = , "_LARGEFILE"
@@ -811,15 +814,14 @@ $(TARGET) : $(OBJ)
.c.obj :
# Override /optimize for selected modules on VAX.
.IFDEF __VAX__ # __VAX__
- @ mod = f$parse( "$@", , , "NAME", "SYNTAX_ONLY")
- @ mod = "+"+ f$edit( mod, "LOWERCASE")+ "+"
- @ optim_qual = ""
- @ if (f$locate( mod, "+$(VAX_NOOPTIM_LIST)+") .lt. -
+ -@ mod = f$parse( "$@", , , "NAME", "SYNTAX_ONLY")
+ -@ mod = "+"+ f$edit( mod, "LOWERCASE")+ "+"
+ -@ optim_qual = ""
+ -@ if (f$locate( mod, "+$(VAX_NOOPTIM_LIST)+") .lt. -
f$length( "+$(VAX_NOOPTIM_LIST)+")) then optim_qual = "/nooptim"
- @ if (f$locate( mod, "+$(VAX_NOOPTIM_LIST)+") .lt. -
+ -@ if (f$locate( mod, "+$(VAX_NOOPTIM_LIST)+") .lt. -
f$length( "+$(VAX_NOOPTIM_LIST)+")) then -
- @ write sys$output -
- " *** NOTE: USING SPECIAL /NOOPTIMIZE RULE. ***"
+ write sys$output "*** NOTE: USING SPECIAL /NOOPTIMIZE RULE. ***"
$(CC_DEF) $(ALL_CFLAGS) 'optim_qual' $< /object = $@
.ELSE # __VAX__
$(CC_DEF) $(ALL_CFLAGS) $< /object = $@
@@ -1468,8 +1470,8 @@ lua_env :
[.$(DEST)]gui_gtk_x11.obj : gui_gtk_x11.c vim.h [.$(DEST)]config.h feature.h
os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h option.h ex_cmds.h proto.h \
- errors.h globals.h gui_gtk_f.h [-.runtime]vim32x32_png.h \
- [-.runtime]vim16x16_png.h [-.runtime]vim48x48_png.h version.h
+ errors.h globals.h gui_gtk_f.h [-.runtime]vim32x32.xpm \
+ [-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm version.h
[.$(DEST)]gui_x11.obj : gui_x11.c vim.h [.$(DEST)]config.h feature.h os_unix.h
\
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h option.h ex_cmds.h proto.h \
diff --git a/src/clipboard.c b/src/clipboard.c
index 745a8c47a..902f9d603 100644
--- a/src/clipboard.c
+++ b/src/clipboard.c
@@ -3611,7 +3611,7 @@ clip_provider_paste(char_u *reg, char_u *provider)
}
*curval++ = NULL;
- if (*reg_type != NUL && (STRLEN(reg_type) <= 0
+ if (*reg_type != NUL && (STRLEN(reg_type) == 0
|| get_yank_type(®_type, &yank_type, &block_len) == FAIL))
{
emsg(e_invalid_argument);
diff --git a/src/fuzzy.c b/src/fuzzy.c
index 2847a2071..b6d595a70 100644
--- a/src/fuzzy.c
+++ b/src/fuzzy.c
@@ -31,7 +31,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
-
+#define USING_FLOAT_STUFF
#include "vim.h"
#if defined(FEAT_EVAL) || defined(FEAT_PROTO)
diff --git a/src/os_unix.c b/src/os_unix.c
index 12285b8e4..5cfc422b7 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -5950,7 +5950,11 @@ mch_get_cmd_output_direct(
}
BLOCK_SIGNALS(&curset);
+# ifdef VMS
+ pid = 0; // VMS does not have fork
+# else
pid = fork();
+# endif
if (pid == -1)
{
UNBLOCK_SIGNALS(&curset);
diff --git a/src/os_vms.c b/src/os_vms.c
index bb93544f0..17fa06774 100644
--- a/src/os_vms.c
+++ b/src/os_vms.c
@@ -858,7 +858,12 @@ RealWaitForChar(
* appropriate time conversion function accordingly.
*/
#if __IEEE_FLOAT
-# define LIB_CVTX_TO_INTERNAL_TIME lib$cvts_to_internal_time // IEEE
+// allow fallback for older Alphas
+# ifdef lib$cvts_to_internal_time
+# define LIB_CVTX_TO_INTERNAL_TIME lib$cvts_to_internal_time // IEEE
+# else
+# define LIB_CVTX_TO_INTERNAL_TIME lib$cvtf_to_internal_time
+# endif
#else
# define LIB_CVTX_TO_INTERNAL_TIME lib$cvtf_to_internal_time // VAX
#endif // __IEEE_FLOAT CVTS
diff --git a/src/os_vms_conf.h b/src/os_vms_conf.h
index 37be6ddfc..ddc83b3dc 100644
--- a/src/os_vms_conf.h
+++ b/src/os_vms_conf.h
@@ -58,9 +58,6 @@
// Define to `int' if <sys/types.h> doesn't define.
// #undef uid_t
-// Define to `unsigned int' or other type that is 32 bit.
-#define UINT32_T unsigned int
-
// Define to `int' if <sys/types.h> doesn't define.
// #undef gid_t
@@ -169,7 +166,6 @@
# define ULONG_LONG_MAX (4294967295U)
#else // ALPHA, IA64, X86_64
-# define HAVE_FSEEKO /* Use off_t. */
# define HAVE_GETTIMEOFDAY
# define HAVE_USLEEP
# define HAVE_STRCASECMP
@@ -186,7 +182,11 @@
# define HAVE_ISNAN
# endif
-# define HAVE_XOS_R_H
+# if defined(X86_64)
+# define HAVE_FSEEKO
+# define HAVE_STDINT_H
+# define HAVE_XOS_R_H
+# endif
#endif /* VAX [else] */
@@ -208,7 +208,7 @@
# define HAVE_LOCALE_H
# define BROKEN_LOCALE
# undef DYNAMIC_ICONV
-# define HAVE_STRFTIME
+# define HAVE_STRFTIME
#endif
#if defined(USE_ICONV)
@@ -231,3 +231,10 @@
# define USE_FONTSET
# undef X_LOCALE
#endif
+
+// Define needed types from stdint - older VMS do not have stdint.h
+#ifndef HAVE_STDINT_H
+ typedef unsigned char uint8_t;
+ typedef unsigned short uint16_t;
+ typedef unsigned int uint32_t;
+#endif
diff --git a/src/version.c b/src/version.c
index 0a4a84e29..7b05c7c45 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 491,
/**/
490,
/**/
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1wOAsO-007e6Y-Rt%40256bit.org.