[vim/vim] solve VMS build issues (PR #20131)

12 views
Skip to first unread message

Zoltan Arpadffy

unread,
May 4, 2026, 2:39:42 AM (4 days ago) May 4
to vim/vim, Subscribed

OpenVMS version needs to build on VAX, ALPHA, IA64 and X86_64 architectures, some of them strictly C89 compliant without many new C features and includes capabilities.

This pull request is an attempt to solve all the VMS related build issues on all platforms for the recent Vim version 9.2

Please review


You can view, comment on, or merge this pull request online at:

  https://github.com/vim/vim/pull/20131

Commit Summary

File Changes

(10 files)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20131@github.com>

Zoltan Arpadffy

unread,
May 4, 2026, 3:52:00 AM (4 days ago) May 4
to vim/vim, Push

@arpadffy pushed 1 commit.

  • e3bad10 correct the #ifdef HAVE_STDINT_H


View it on GitHub or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20131/before/934ddf851ab2c763993ea93d535cb0c1ae6050d4/after/e3bad1052d10f999a67a22c7bb9b1f963ed0d2f0@github.com>

Christ van Willegen

unread,
May 4, 2026, 4:42:03 AM (4 days ago) May 4
to vim...@googlegroups.com, nor...@github.com
Hi,

There's a typo in a comment: 

-# define LIB_CVTX_TO_INTERNAL_TIME lib$cvts_to_internal_time // IEEE
+// allow fallback fon older Alphas
+# ifdef lib$cvts_to_internal_time
+#  define LIB_CVTX_TO_INTERNAL_TIME lib$cvts_to_internal_time // IEEE
+# else

Christ van Willegen

Zoltan Arpadffy

unread,
May 4, 2026, 4:52:18 AM (4 days ago) May 4
to vim/vim, Push

@arpadffy pushed 1 commit.


View it on GitHub or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20131/before/e3bad1052d10f999a67a22c7bb9b1f963ed0d2f0/after/0c3e98a545eb8b2fc3e3883deae80e0a9ec36eae@github.com>

Christian Brabandt

unread,
May 4, 2026, 3:51:40 PM (4 days ago) May 4
to vim/vim, Subscribed

@chrisbra commented on this pull request.


In src/os_vms_conf.h:

> @@ -58,7 +58,9 @@
 // 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 some types from stdint - older VMS do not have stdint.h
+#define UINT8_T  unsigned char
+#define UINT16_T unsigned short

Instead of defining those, would the following make more sense?

   #ifndef HAVE_STDINT_H
   typedef unsigned char  uint8_t;
   typedef unsigned short uint16_t;
   typedef unsigned int   uint32_t;
   #endif

Then we can get rid of the conditionals in all the other C files.


In src/os_unix.c:

>      pid = fork();
+# endif

This looks suspicious. Doesn't this break this function for Vim on VMS? Is this actually working for you? echo system(['ls'])?

Perhaps we need this:

#ifndef VMS
pid = fork();
#else
pid = -1;
#endif
if (pid == -1)
{
    UNBLOCK_SIGNALS(&curset);
    close(fd_out[0]);
    close(fd_out[1]);
    emsg(_("\nCannot fork\n"));
    return NULL;
}


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20131/review/4222915851@github.com>

Zoltan Arpadffy

unread,
May 4, 2026, 4:45:44 PM (4 days ago) May 4
to vim/vim, Subscribed
arpadffy left a comment (vim/vim#20131)
This sounds like a very elegant solution.
Let me try on all architectures... and I'll get back to you.

Thanks,
Z

On Mon, 4 May 2026 at 21:50, Christian Brabandt ***@***.***>
wrote:

> ***@***.**** commented on this pull request.
> ------------------------------
>
> In src/os_vms_conf.h
> <https://github.com/vim/vim/pull/20131#discussion_r3184013602>:
>
> > @@ -58,7 +58,9 @@
> // 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 some types from stdint - older VMS do not have stdint.h
> +#define UINT8_T unsigned char
> +#define UINT16_T unsigned short
>
> Instead of defining those, would the following make more sense?
>
> #ifndef HAVE_STDINT_H
> typedef unsigned char uint8_t;
> typedef unsigned short uint16_t;
> typedef unsigned int uint32_t;
> #endif
>
> Then we can get rid of the conditionals in all the other C files.
> ------------------------------
>
> In src/os_unix.c
> <https://github.com/vim/vim/pull/20131#discussion_r3184053073>:
>
> > pid = fork();
> +# endif
>
> This looks suspicious. Doesn't this break this function for Vim on VMS? Is
> this actually working for you? echo system(['ls'])?
>
> Perhaps we need this:
>
> #ifndef VMSpid = fork();#elsepid = -1;#endifif (pid == -1)
> {
> UNBLOCK_SIGNALS(&curset);
> close(fd_out[0]);
> close(fd_out[1]);
> emsg(_("\nCannot fork\n"));
> return NULL;
> }
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/vim/vim/pull/20131#pullrequestreview-4222915851>, or
> unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AG7S6QBTPH3C74SNILTVQCL4ZDYCHAVCNFSM6AAAAACYPXOGI2VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHM2DEMRSHEYTKOBVGE>
> .
> Triage notifications on the go with GitHub Mobile for iOS
> <https://apps.apple.com/app/apple-store/id1477376905
> or Android
> <https://play.google.com/store/apps/details
>
> You are receiving this because you authored the thread.Message ID:
> ***@***.***>
>


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20131/c4374349182@github.com>

Zoltan Arpadffy

unread,
May 4, 2026, 5:10:57 PM (4 days ago) May 4
to vim/vim, Push

@arpadffy pushed 1 commit.

  • 93b424d Merge branch 'vim:master' into master


View it on GitHub or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20131/before/0c3e98a545eb8b2fc3e3883deae80e0a9ec36eae/after/93b424d35b749351ebeaa08a66349e7a6e9a3aff@github.com>

Zoltan Arpadffy

unread,
May 4, 2026, 6:38:22 PM (4 days ago) May 4
to vim/vim, Push

@arpadffy pushed 4 commits.

  • d1588ff Revert "fix tailing spaces"
  • bb36908 Revert "correct the #ifdef HAVE_STDINT_H"
  • f3cec9d Revert "solve VMS build issues"
  • 326205b Define needed types when stdint.h is missing


View it on GitHub or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20131/before/93b424d35b749351ebeaa08a66349e7a6e9a3aff/after/326205b85c6b333238d024a67ae81eb2736d3f95@github.com>

Zoltan Arpadffy

unread,
May 4, 2026, 7:01:18 PM (4 days ago) May 4
to vim/vim, Subscribed

@arpadffy commented on this pull request.


In src/os_unix.c:

>      pid = fork();
+# endif

VMS use system, it does not have fork()... and the shell output works as expected


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20131/review/4224124829@github.com>

Christian Brabandt

unread,
May 5, 2026, 3:47:40 PM (3 days ago) May 5
to vim/vim, Subscribed

@chrisbra commented on this pull request.


In src/os_unix.c:

>      pid = fork();
+# endif

Okay, if you say it works for you then I guess this is fine


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20131/review/4231136420@github.com>

Zoltan Arpadffy

unread,
1:03 PM (1 hour ago) 1:03 PM
to vim/vim, Push

@arpadffy pushed 1 commit.

  • 4da5b04 Merge branch 'vim:master' into master


View it on GitHub or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20131/before/326205b85c6b333238d024a67ae81eb2736d3f95/after/4da5b04e4dc9889ee841b8531c4f346de528c7a3@github.com>

Reply all
Reply to author
Forward
0 new messages