bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Complete build session of CVS-1_11_18 VMS client


From: Piet Schuermans
Subject: Complete build session of CVS-1_11_18 VMS client
Date: Sun, 30 Jan 2005 09:05:42 +0100

On request of several people I provide the complete CVS-1_11_18 VMS client build session on our Alpha platform OpenVms 7.3-2 using Compaq C version 6.5 – 001. Step-by-step session with the encountered problems and chosen workarounds. The change I made in the cvs files package to get the cvs client workable differ from my previous submitted e-mail. I took more time to address the problems and discussed possible workarounds options with other people. There are 11 problems encountered and one issue to solve to get a workable cvs-1_11_18 client for VMS ( 7.3-2 with using Compaq C compiler version 6.5 - 001)

Start the build process from the CVS root. (Execute script file build.com)

USERS.PS.TOOLS.CVS.CVS-1_11_18>@build.com
Compiling Zlib sources...

CC   /prefix=all EXAMPLE.C
CC   /prefix=all ADLER32.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB ADLER32.OBJ
CC   /prefix=all COMPRESS.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB COMPRESS.OBJ
CC   /prefix=all CRC32.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB CRC32.OBJ
CC   /prefix=all GZIO.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB GZIO.OBJ
CC   /prefix=all UNCOMPR.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB UNCOMPR.OBJ
CC   /prefix=all DEFLATE.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB DEFLATE.OBJ
CC   /prefix=all TREES.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB TREES.OBJ
CC   /prefix=all ZUTIL.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB ZUTIL.OBJ
CC   /prefix=all INFLATE.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFLATE.OBJ
CC   /prefix=all INFBLOCK.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFBLOCK.OBJ
CC   /prefix=all INFTREES.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFTREES.OBJ
CC   /prefix=all INFCODES.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFCODES.OBJ
CC   /prefix=all INFUTIL.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFUTIL.OBJ
CC   /prefix=all INFFAST.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFFAST.OBJ
 libz available
link example,libz.olb/lib
CC   /prefix=all MINIGZIP.C
link minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib
%LINK-F-OPENIN, error opening X11VMS:[USERS.PS.TOOLS.CVS.CVS-1_11_18.ZLIB]XVMSUt -RMS-F-DEV, error in device name or inappropriate device type for operation %MMS-F-ABORT, For target MINIGZIP.EXE, CLI returned abort status: %X1064109C.

Problem  -1-
- Our system is missing the X11vms:xvmsutils.olb

Workarounds
Either compiling the ZLIB sources without the MMS (VMS make utility) by Modify the build scrip [zlib]make_vms.com Or change the dependency file descrip.mms and remove building the example.exe.

I modified the file descrip.mms
[...S-1_11_18.ZLIB]>diff descrip.mms
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.ZLIB]DESCRIP.MMS;2
   17   all : example.exe
   18           @ write sys$output " Example applications available"
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.ZLIB]DESCRIP.MMS;1
   17   all : example.exe minigzip.exe
   18           @ write sys$output " Example applications available"
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.ZLIB]DESCRIP.MMS;2
   25   # minigzip.exe : minigzip.obj libz.olb
26 # link minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib
   27
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.ZLIB]DESCRIP.MMS;1
   25   minigzip.exe : minigzip.obj libz.olb
26 link minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib
   27
************

Restart the build script in the root directory.
USERS.PS.TOOLS.CVS.CVS-1_11_18>@build
Compiling Zlib sources ...

CC   /prefix=all EXAMPLE.C
CC   /prefix=all ADLER32.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB ADLER32.OBJ
CC   /prefix=all COMPRESS.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB COMPRESS.OBJ
CC   /prefix=all CRC32.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB CRC32.OBJ
CC   /prefix=all GZIO.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB GZIO.OBJ
CC   /prefix=all UNCOMPR.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB UNCOMPR.OBJ
CC   /prefix=all DEFLATE.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB DEFLATE.OBJ
CC   /prefix=all TREES.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB TREES.OBJ
CC   /prefix=all ZUTIL.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB ZUTIL.OBJ
CC   /prefix=all INFLATE.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFLATE.OBJ
CC   /prefix=all INFBLOCK.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFBLOCK.OBJ
CC   /prefix=all INFTREES.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFTREES.OBJ
CC   /prefix=all INFCODES.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFCODES.OBJ
CC   /prefix=all INFUTIL.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFUTIL.OBJ
CC   /prefix=all INFFAST.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFFAST.OBJ
 libz available
link example,libz.olb/lib
 Example applications available
Zlib build completed

$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTS
$ CC diff.c

# include "fnmatch.h" /* Our substitute */
..^
%CC-F-NOINCLFILEF, Cannot find file "fnmatch.h" specified in #include directive. at line number 29 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.DIFF]DIFF.1
USERS.PS.TOOLS.CVS.CVS-1_11_18>

Problem 2 can not find the “fnmatch.h” in the local directory or in the include directory path.

Workaround:
I renamed the [.lib]FNMATCH.H_IN file  to [.lib]fnmatch.h

Rebuild from root directory and we get a large amount of errors and warning messages
USERS.PS.TOOLS.CVS.CVS-1_11_18>@build
Compiling Zlib sources ...

 Example applications available
Zlib build completed
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTS
$ CC diff.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC analyze.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC cmpbuf.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC dir.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC io.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC util.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC context.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC ed.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC ifdef.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC normal.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC side.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ CC version.c
$ CC diff3.c

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1
$ library/create diff.olb diff.obj,analyze.obj,cmpbuf.obj,-
dir.obj,io.obj,util.obj,context.obj,ed.obj,ifdef.obj,normal.obj,-
side.obj,version.obj,diff3.obj
%LIBRAR-W-COMCOD, compilation warnings in module DIFF file TOOLS$DISK:[USERS.PS1 %LIBRAR-W-COMCOD, compilation warnings in module ANALYZE file TOOLS$DISK:[USERS1 %LIBRAR-W-COMCOD, compilation warnings in module CMPBUF file TOOLS$DISK:[USERS.1 %LIBRAR-W-COMCOD, compilation warnings in module DIR file TOOLS$DISK:[USERS.PS.1 %LIBRAR-W-COMCOD, compilation warnings in module IO file TOOLS$DISK:[USERS.PS.T1 %LIBRAR-W-COMCOD, compilation warnings in module UTIL file TOOLS$DISK:[USERS.PS1 %LIBRAR-W-COMCOD, compilation warnings in module CONTEXT file TOOLS$DISK:[USERS1 %LIBRAR-W-COMCOD, compilation warnings in module ED file TOOLS$DISK:[USERS.PS.T1 %LIBRAR-W-COMCOD, compilation warnings in module IFDEF file TOOLS$DISK:[USERS.P1 %LIBRAR-W-COMCOD, compilation warnings in module NORMAL file TOOLS$DISK:[USERS.1 %LIBRAR-W-COMCOD, compilation warnings in module SIDE file TOOLS$DISK:[USERS.PS1 %LIBRAR-W-COMCOD, compilation warnings in module DIFF3 file TOOLS$DISK:[USERS.P1
$ set noverify
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTS
$ CC filesubr.c

static inline size_t
..............^
%CC-E-NOSEMI, Missing ";".
at line number 52 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]XSIZE.1

static inline size_t
..............^
%CC-E-NOSEMI, Missing ";".
at line number 63 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]XSIZE.1

static inline size_t
..............^
%CC-E-NOSEMI, Missing ";".
at line number 73 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]XSIZE.1

static inline size_t
..............^
%CC-E-NOSEMI, Missing ";".
at line number 83 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]XSIZE.1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-MISMATPARAM, In this declaration, parameter 1 has a different type than s. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

       int link (const char *__existing, const char *__new);
...........^
%CC-W-NOTCOMPAT, In this declaration, the type of "link" is not compatible with. at line number 663 in module UNISTD of text library SYS$COMMON:[SYSLIB]DECC$RTL1

last_component (path)
^
%CC-W-NOTCOMPAT, In this declaration, the type of "last_component" is not compa. at line number 941 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]FILES1
USERS.PS.TOOLS.CVS.CVS-1_11_18>

Problem 3 the keyword “inline” in the file [.lib]xsize.h result in an compiler error E all the other message and reports are mostly warnings.

Workaround
Add compile preprocessing lines for VMS in the config.h file on [.vms] to define “inline”

[...VS-1_11_18.VMS]>diff config.h
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]CONFIG.H;2
   16   #define inline
   17
   18   /* VMS is case insensitive */
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]CONFIG.H;1
   16   /* VMS is case insensitive */
************

Problem 4 (not a real problem but annoying message) the link type incompatibility.

Workaround  modify vms.h and
[...VS-1_11_18.VMS]>diff vms.h
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]VMS.H;2
   40
   41   /* int link(char *from, char *to); */
   42
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]VMS.H;1
   40   int link(char *from, char *to);
   41
************

Rebuild from root directory
USERS.PS.TOOLS.CVS.CVS-1_11_18>@build
Compiling Zlib sources ...

 Example applications available
Zlib build completed
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTS
$ CC diff.c
$ CC analyze.c
$ CC cmpbuf.c
$ CC dir.c
$ CC io.c
$ CC util.c
$ CC context.c
$ CC ed.c
$ CC ifdef.c
$ CC normal.c
$ CC side.c
$ CC version.c
$ CC diff3.c
$ library/create diff.olb diff.obj,analyze.obj,cmpbuf.obj,-
dir.obj,io.obj,util.obj,context.obj,ed.obj,ifdef.obj,normal.obj,-
side.obj,version.obj,diff3.obj
$ set noverify
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTS
$ CC filesubr.c

  return (sum >= size1 ? sum : SIZE_MAX);
...............................^
%CC-E-UNDECLARED, In this statement, "SIZE_MAX" is not declared.
at line number 59 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]XSIZE.1

last_component (path)
^
%CC-W-NOTCOMPAT, In this declaration, the type of "last_component" is not compa. at line number 941 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]FILES1
USERS.PS.TOOLS.CVS.CVS-1_11_18>

Problem 5: SIZE_MAX is not defined

Workaround define SIZE_MAX in the [.lib]XSIZE.H file or define SIZE_MAX in [.vms]config.h In my humble opinion I would have place the definition #define SIZE_MAX ((size_t) –1) in XSIZE.H But after some discussion to leave the generic source files untouched the definition was added to the config.h file.

[...VS-1_11_18.VMS]>diff config.h
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]CONFIG.H;3
   17   #define SIZE_MAX ((size_t) -1)
   18
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]CONFIG.H;2
   17
************

Problem 6:  last_component is type warning that can easily be corrected.

Workaround: Add in the file filesubr.c the keyword “const” as in the last_component definition in [.src]cvs.h
[...VS-1_11_18.VMS]>diff filesubr.c
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]FILESUBR.C;2
  940   const char *
  941   last_component (path)
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]FILESUBR.C;1
  940   char *
  941   last_component (path)
************

Lets rebuild from the root directory:
USERS.PS.TOOLS.CVS.CVS-1_11_18>@build
Compiling Zlib sources ...

 Example applications available
Zlib build completed
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTS
$ CC diff.c
$ CC analyze.c
$ CC cmpbuf.c
$ CC dir.c
$ CC io.c
$ CC util.c
$ CC context.c
$ CC ed.c
$ CC ifdef.c
$ CC normal.c
$ CC side.c
$ CC version.c
$ CC diff3.c
$ library/create diff.olb diff.obj,analyze.obj,cmpbuf.obj,-
dir.obj,io.obj,util.obj,context.obj,ed.obj,ifdef.obj,normal.obj,-
side.obj,version.obj,diff3.obj
$ set noverify
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTS
$ CC filesubr.c
$ CC filutils.c
$ CC getpass.c
$ CC getwd.c
$ CC misc.c
$ CC ndir.c
$ CC pipe.c
$ CC piped_child.c
$ CC pwd.c
$ CC rcmd.c
$ CC readlink.c
$ CC rmdir.c
$ CC stat.c
$ CC startserver.c
$ CC unlink.c
$ CC utime.c
$ CC /NOSTANDARD vmsmunch.c
$ CC waitpid.c
$ library/create openvmslib.olb filesubr.obj,-
filutils.obj,getpass.obj,getwd.obj,misc.obj,ndir.obj,pipe.obj,-
pwd.obj,rcmd.obj,readlink.obj,rmdir.obj,stat.obj,startserver.obj,-
unlink.obj,utime.obj,vmsmunch.obj,waitpid.obj
$ set noverify
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTS
$ CC fnmatch.c
$ CC getdate.c

    if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Minutes" is bei.
at line number 585 in file /u/scjones/cvs-nightly/lib/getdate.y

    if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
.......................................^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Seconds" is bei.
at line number 585 in file /u/scjones/cvs-nightly/lib/getdate.y

        if (Hours < 0 || Hours > 23)
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Hours" is being.
at line number 589 in file /u/scjones/cvs-nightly/lib/getdate.y

    if (Year < 0)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Year" is being .
at line number 633 in file /u/scjones/cvs-nightly/lib/getdate.y

    if ((tod = ToSeconds(Hours, Minutes, Seconds, Meridian)) < 0)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(tod=ToSeconds(.
at line number 661 in file /u/scjones/cvs-nightly/lib/getdate.y

now += 7 * SECSPERDAY * (DayOrdinal <= 0 ? DayOrdinal : DayOrdinal - 1);
.............................^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "DayOrdinal" is .
at line number 697 in file /u/scjones/cvs-nightly/lib/getdate.y

        if (Start < 0)
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Start" is being.
at line number 981 in file /u/scjones/cvs-nightly/lib/getdate.y

    return Start == -1 ? 0 : Start;
...........^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "Start" is bein.
at line number 1000 in file /u/scjones/cvs-nightly/lib/getdate.y
$ CC getline.c
$ CC getopt.c

     char *const *argv;
..........^
%CC-E-PROMOTMATCH, In the definition of the function "cvs_getopt", the promoted. at line number 674 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOP1

     const char *optstring;
................^
%CC-E-PROMOTMATCH, In the definition of the function "cvs_getopt", the promoted. at line number 675 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOP1
USERS.PS.TOOLS.CVS.CVS-1_11_18>

Problem 7: Severe errors in getopt.c and some type incompatibility errors

To get more compiler details I recompiled getopt.c with an additional flag.
USERS.PS.TOOLS.CVS.CVS-1_11_18> CC /warnings=verbose  getopt.c

     char *const *argv;
..........^
%CC-E-PROMOTMATCH, In the definition of the function "cvs_getopt", the promoted type of argv is incompatible with the type of the corresponding parameter in a prior declaration. at line number 674 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.C;1 Description: The promoted type of a parameter of an old-style function declaration does not match the type given earlier in a prototype declaration of the function. User Action: Correct the data types so they match. Compaq also recommends that old-style function definitions be replaced by prototype-format definitions.

     const char *optstring;
................^
%CC-E-PROMOTMATCH, In the definition of the function "cvs_getopt", the promoted type of optstring is incompatible with the type of the corresponding parameter in a prior declaration. at line number 675 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.C;1 Description: The promoted type of a parameter of an old-style function declaration does not match the type given earlier in a prototype declaration of the function. User Action: Correct the data types so they match. Compaq also recommends that old-style function definitions be replaced by prototype-format definitions.

My workaround let to several discussions. I do agree that the chosen option is not elegant but workable.
[...VS-1_11_18.LIB]>diff getopt.c
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.C;2
  671   #ifdef __VMS_VER
  672   int getopt (int argc, char *const *argv, const char *optstring)
  673   #else
  674   int
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.C;1
  671   int
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.C;2
  679   #endif
  680   {
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.C;1
  676   {
************

rebuild from the root directory
USERS.PS.TOOLS.CVS.CVS-1_11_18>@build
Compiling Zlib sources ...

 Example applications available
Zlib build completed
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
$ CC diff.c
$ CC analyze.c
$ CC cmpbuf.c
$ CC dir.c
$ CC io.c
$ CC util.c
$ CC context.c
$ CC ed.c
$ CC ifdef.c
$ CC normal.c
$ CC side.c
$ CC version.c
$ CC diff3.c
$ library/create diff.olb diff.obj,analyze.obj,cmpbuf.obj,-
dir.obj,io.obj,util.obj,context.obj,ed.obj,ifdef.obj,normal.obj,-
side.obj,version.obj,diff3.obj
$ set noverify
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
$ CC filesubr.c
$ CC filutils.c
$ CC getpass.c
$ CC getwd.c
$ CC misc.c
$ CC ndir.c
$ CC pipe.c
$ CC piped_child.c
$ CC pwd.c
$ CC rcmd.c
$ CC readlink.c
$ CC rmdir.c
$ CC stat.c
$ CC startserver.c
$ CC unlink.c
$ CC utime.c
$ CC /NOSTANDARD vmsmunch.c
$ CC waitpid.c
$ library/create openvmslib.olb filesubr.obj,-
filutils.obj,getpass.obj,getwd.obj,misc.obj,ndir.obj,pipe.obj,-
pwd.obj,rcmd.obj,readlink.obj,rmdir.obj,stat.obj,startserver.obj,-
unlink.obj,utime.obj,vmsmunch.obj,waitpid.obj
$ set noverify
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
$ CC fnmatch.c
$ CC getdate.c

    if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Minutes" is being compared with a relational operator to a constant whose value is not greater than zero. This might not be what you intended.
at line number 585 in file /u/scjones/cvs-nightly/lib/getdate.y

    if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
.......................................^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Seconds" is being compared with a relational operator to a constant whose value is not greater than zero. This might not be what you intended.
at line number 585 in file /u/scjones/cvs-nightly/lib/getdate.y

        if (Hours < 0 || Hours > 23)
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Hours" is being compared with a relational operator to a constant wh ose value is not greater than zero. This might not be what you intended.
at line number 589 in file /u/scjones/cvs-nightly/lib/getdate.y

    if (Year < 0)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Year" is being compared with a relational operator to a constant who
se value is not greater than zero.  This might not be what you intended.
at line number 633 in file /u/scjones/cvs-nightly/lib/getdate.y

    if ((tod = ToSeconds(Hours, Minutes, Seconds, Meridian)) < 0)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(tod=ToSeconds(...))" is being compared with a relational operator t o a constant whose value is not greater than zero. This might not be what you intended.
at line number 661 in file /u/scjones/cvs-nightly/lib/getdate.y

now += 7 * SECSPERDAY * (DayOrdinal <= 0 ? DayOrdinal : DayOrdinal - 1);
.............................^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "DayOrdinal" is being compared with a relational operator to a consta nt whose value is not greater than zero. This might not be what you intended.
at line number 697 in file /u/scjones/cvs-nightly/lib/getdate.y

        if (Start < 0)
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Start" is being compared with a relational operator to a constant wh ose value is not greater than zero. This might not be what you intended.
at line number 981 in file /u/scjones/cvs-nightly/lib/getdate.y

    return Start == -1 ? 0 : Start;
...........^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "Start" is being compared with an equality operator to a constant wh
ose value is negative.  This might not be what you intended.
at line number 1000 in file /u/scjones/cvs-nightly/lib/getdate.y
$ CC getline.c
$ CC getopt.c

int getopt (int argc, char *const *argv, const char *optstring)
....^
%CC-W-NOTCOMPAT, In this declaration, the type of "cvs_getopt" is not compatible with the type of a previous declaration of "cvs_get
opt" at line number 537 in file SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1.
at line number 672 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.C;2
$ CC getopt1.c
$ CC md5.c
$ CC regex.c
$ CC savecwd.c
$ CC sighandle.c
$ CC stripslash.c
$ CC valloc.c
$ CC xgetwd.c
$ CC yesno.c
$ library/create gnulib.olb fnmatch.obj,getdate.obj,getline.obj,-
getopt.obj,getopt1.obj,md5.obj,regex.obj,savecwd.obj,sighandle.obj,-
stripslash.obj,valloc.obj,xgetwd.obj,yesno.obj
%LIBRAR-W-COMCOD, compilation warnings in module GETOPT file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.OBJ;1
$ set noverify
$ CC :== CC/NOOPT/DEB/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIR=([-],[-.VMS],[-.LIB])/PREFIX=ALL
$ CC add.c
$ CC admin.c
$ CC annotate.c
$ CC buffer.c
$ CC checkin.c
$ CC checkout.c
$ CC classify.c
$ CC client.c
$ CC commit.c

            if (!newfile && headtime != -1)
............................^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "headtime" is being compared with an equality operator to a constant
 whose value is negative.  This might not be what you intended.
at line number 2197 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]COMMIT.C;1
$ CC create_adm.c
$ CC cvsrc.c
$ CC diff.c
$ CC edit.c
$ CC entries.c
$ CC error.c
$ CC expand_path.c
$ CC fileattr.c
$ CC find_names.c
$ CC hash.c
$ CC history.c
$ CC ignore.c
$ CC import.c
$ CC lock.c
$ CC log.c
$ CC login.c
$ CC logmsg.c
$ CC main.c
$ CC mkmodules.c
$ CC modules.c
$ CC myndbm.c
$ CC no_diff.c
$ CC parseinfo.c
$ CC patch.c
$ CC rcs.c
$ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.diff]) rcscmds.c
$ CC recurse.c
$ CC release.c
$ CC remove.c
$ CC repos.c
$ CC root.c
$ CC run.c
$ CC scramble.c
$ CC server.c
$ CC status.c
$ CC subr.c
$ CC tag.c
$ CC update.c
$ CC version.c

    (void) fputs (PACKAGE_STRING, stdout);
..................^
%CC-E-UNDECLARED, In this statement, "PACKAGE_STRING" is not declared.
at line number 64 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]VERSION.C;1
USERS.PS.TOOLS.CVS.CVS-1_11_18>

Problem 8: Missing definition of PACKAGE_STRING and the not yet corrected type incompatibility warnings

Workaround: Define the PACKAGE_STRING in the config.h files on [.vms]
[...VS-1_11_18.VMS]>diff config.h
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]CONFIG.H;4
18 #define PACKAGE_STRING "Concurrent Versions System (CVS) 1.11.18 VMS"
   19
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]CONFIG.H;3
   18
************

Rebuild from the root directory
USERS.PS.TOOLS.CVS.CVS-1_11_18>@build
Compiling Zlib sources ...

 Example applications available
Zlib build completed
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
$ CC diff.c
$ CC analyze.c
$ CC cmpbuf.c
$ CC dir.c
$ CC io.c
$ CC util.c
$ CC context.c
$ CC ed.c
$ CC ifdef.c
$ CC normal.c
$ CC side.c
$ CC version.c
$ CC diff3.c
$ library/create diff.olb diff.obj,analyze.obj,cmpbuf.obj,-
dir.obj,io.obj,util.obj,context.obj,ed.obj,ifdef.obj,normal.obj,-
side.obj,version.obj,diff3.obj
$ set noverify
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
$ CC filesubr.c
$ CC filutils.c
$ CC getpass.c
$ CC getwd.c
$ CC misc.c
$ CC ndir.c
$ CC pipe.c
$ CC piped_child.c
$ CC pwd.c
$ CC rcmd.c
$ CC readlink.c
$ CC rmdir.c
$ CC stat.c
$ CC startserver.c
$ CC unlink.c
$ CC utime.c
$ CC /NOSTANDARD vmsmunch.c
$ CC waitpid.c
$ library/create openvmslib.olb filesubr.obj,-
filutils.obj,getpass.obj,getwd.obj,misc.obj,ndir.obj,pipe.obj,-
pwd.obj,rcmd.obj,readlink.obj,rmdir.obj,stat.obj,startserver.obj,-
unlink.obj,utime.obj,vmsmunch.obj,waitpid.obj
$ set noverify
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
$ CC fnmatch.c
$ CC getdate.c

    if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Minutes" is being compared with a relational operator to a constant whose value is not greater than zero. This might not be what you intended.
at line number 585 in file /u/scjones/cvs-nightly/lib/getdate.y

    if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
.......................................^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Seconds" is being compared with a relational operator to a constant whose value is not greater than zero. This might not be what you intended.
at line number 585 in file /u/scjones/cvs-nightly/lib/getdate.y

        if (Hours < 0 || Hours > 23)
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Hours" is being compared with a relational operator to a constant wh ose value is not greater than zero. This might not be what you intended.
at line number 589 in file /u/scjones/cvs-nightly/lib/getdate.y

    if (Year < 0)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Year" is being compared with a relational operator to a constant who
se value is not greater than zero.  This might not be what you intended.
at line number 633 in file /u/scjones/cvs-nightly/lib/getdate.y

    if ((tod = ToSeconds(Hours, Minutes, Seconds, Meridian)) < 0)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(tod=ToSeconds(...))" is being compared with a relational operator t o a constant whose value is not greater than zero. This might not be what you intended.
at line number 661 in file /u/scjones/cvs-nightly/lib/getdate.y

now += 7 * SECSPERDAY * (DayOrdinal <= 0 ? DayOrdinal : DayOrdinal - 1);
.............................^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "DayOrdinal" is being compared with a relational operator to a consta nt whose value is not greater than zero. This might not be what you intended.
at line number 697 in file /u/scjones/cvs-nightly/lib/getdate.y

        if (Start < 0)
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Start" is being compared with a relational operator to a constant wh ose value is not greater than zero. This might not be what you intended.
at line number 981 in file /u/scjones/cvs-nightly/lib/getdate.y

    return Start == -1 ? 0 : Start;
...........^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "Start" is being compared with an equality operator to a constant wh
ose value is negative.  This might not be what you intended.
at line number 1000 in file /u/scjones/cvs-nightly/lib/getdate.y
$ CC getline.c
$ CC getopt.c

int getopt (int argc, char *const *argv, const char *optstring)
....^
%CC-W-NOTCOMPAT, In this declaration, the type of "cvs_getopt" is not compatible with the type of a previous declaration of "cvs_get
opt" at line number 537 in file SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1.
at line number 672 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.C;2
$ CC getopt1.c
$ CC md5.c
$ CC regex.c
$ CC savecwd.c
$ CC sighandle.c
$ CC stripslash.c
$ CC valloc.c
$ CC xgetwd.c
$ CC yesno.c
$ library/create gnulib.olb fnmatch.obj,getdate.obj,getline.obj,-
getopt.obj,getopt1.obj,md5.obj,regex.obj,savecwd.obj,sighandle.obj,-
stripslash.obj,valloc.obj,xgetwd.obj,yesno.obj
%LIBRAR-W-COMCOD, compilation warnings in module GETOPT file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.OBJ;2
$ set noverify
$ CC :== CC/NOOPT/DEB/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIR=([-],[-.VMS],[-.LIB])/PREFIX=ALL
$ CC add.c
$ CC admin.c
$ CC annotate.c
$ CC buffer.c
$ CC checkin.c
$ CC checkout.c
$ CC classify.c
$ CC client.c
$ CC commit.c

            if (!newfile && headtime != -1)
............................^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "headtime" is being compared with an equality operator to a constant
 whose value is negative.  This might not be what you intended.
at line number 2197 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]COMMIT.C;1
$ CC create_adm.c
$ CC cvsrc.c
$ CC diff.c
$ CC edit.c
$ CC entries.c
$ CC error.c
$ CC expand_path.c
$ CC fileattr.c
$ CC find_names.c
$ CC hash.c
$ CC history.c
$ CC ignore.c
$ CC import.c
$ CC lock.c
$ CC log.c
$ CC login.c
$ CC logmsg.c
$ CC main.c
$ CC mkmodules.c
$ CC modules.c
$ CC myndbm.c
$ CC no_diff.c
$ CC parseinfo.c
$ CC patch.c
$ CC rcs.c
$ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.diff]) rcscmds.c
$ CC recurse.c
$ CC release.c
$ CC remove.c
$ CC repos.c
$ CC root.c
$ CC run.c
$ CC scramble.c
$ CC server.c
$ CC status.c
$ CC subr.c
$ CC tag.c
$ CC update.c
$ CC version.c
$ CC vers_ts.c
$ CC watch.c
$ CC wrapper.c
$ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.zlib]) zlib.c
$ LIBRARY/CREATE cvslib.olb add.obj,admin.obj,annotate.obj,buffer.obj,checkin.obj,-
checkout.obj,-
classify.obj,client.obj,commit.obj,create_adm.obj,cvsrc.obj,-
diff.obj,edit.obj,entries.obj,error.obj,expand_path.obj,fileattr.obj,-
find_names.obj,hash.obj,history.obj,ignore.obj,import.obj,-
lock.obj,log.obj,login.obj,logmsg.obj,mkmodules.obj,modules.obj,myndbm.o bj,-
no_diff.obj,-
parseinfo.obj,patch.obj,rcs.obj,rcscmds.obj,recurse.obj,release.obj,-
remove.obj,repos.obj,root.obj,run.obj,scramble.obj,server.obj,-
status.obj,-
subr.obj,tag.obj,update.obj,version.obj,vers_ts.obj,watch.obj,wrapper.ob j,-
zlib.obj
$ link/nodeb/exe=cvs.exe main.obj,cvslib.olb/lib,[-.vms]openvmslib.olb/lib,-
    [-.zlib]libz.olb/lib,[-.diff]diff.olb/lib,[-.lib]gnulib.olb/lib
%LINK-W-WRNERS, compilation warnings
in module GETOPT file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GNULIB.OLB;2
%LINK-W-MULDEF, symbol DECC$UTIME multiply defined
in module DECC$SHR_EV56 file SYS$COMMON:[SYSLIB]DECC$SHR_EV56.EXE;1
%LINK-W-MULDEF, symbol DECC$LINK multiply defined
in module DECC$SHR_EV56 file SYS$COMMON:[SYSLIB]DECC$SHR_EV56.EXE;1
%LINK-W-NUDFSYMS, 6 undefined symbols:
%LINK-I-UDFSYM,         ISEMPTY
%LINK-I-UDFSYM,         OSX_FILENAME_CLASSES
%LINK-I-UDFSYM,         POP
%LINK-I-UDFSYM,         POP_STRING
%LINK-I-UDFSYM,         PUSH
%LINK-I-UDFSYM,         PUSH_STRING
%LINK-W-USEUNDEF, undefined symbol OSX_FILENAME_CLASSES referenced
        in psect $LINK$ offset %X00000198
in module HASH file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CVSLIB.OLB;1
%LINK-W-USEUNDEF, undefined symbol PUSH_STRING referenced
        in psect $LINK$ offset %X00000870
in module CLIENT file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CVSLIB.OLB;1
%LINK-W-USEUNDEF, undefined symbol POP referenced
        in psect $LINK$ offset %X00000990
in module CLIENT file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CVSLIB.OLB;1
%LINK-W-USEUNDEF, undefined symbol PUSH referenced
        in psect $LINK$ offset %X000009A0
in module CLIENT file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CVSLIB.OLB;1
%LINK-W-USEUNDEF, undefined symbol ISEMPTY referenced
        in psect $LINK$ offset %X00000280
in module MODULES file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CVSLIB.OLB;1
%LINK-W-USEUNDEF, undefined symbol PUSH_STRING referenced
        in psect $LINK$ offset %X000002F0
in module MODULES file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CVSLIB.OLB;1
%LINK-W-USEUNDEF, undefined symbol POP_STRING referenced
        in psect $LINK$ offset %X000004E0
in module MODULES file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CVSLIB.OLB;1
%LINK-W-USEUNDEF, undefined symbol OSX_FILENAME_CLASSES referenced
        in psect $LINK$ offset %X00000340
in module FILESUBR file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]OPENVMSLIB.OLB;3
%LINK-W-USEUNDEF, undefined symbol OSX_FILENAME_CLASSES referenced
        in psect $LINK$ offset %X00000020
in module FNMATCH file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GNULIB.OLB;2
$ set noverify
USERS.PS.TOOLS.CVS.CVS-1_11_18>

FINISHED? No we have a executable image CVS.EXE but still several compiler and link warnings !!

Problem 9: the missing / undefined symbols

Workaround: The missing items are in [.src]stack.c but that source is not part of the vms build_src script So I just added build_src.com and added stack.c to be part of the compiling and link process.
USERS.PS.TOOLS.CVS.CVS-1_11_18>diff build_src.com
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]BUILD_SRC.COM;2
   48   $ CC stack.c
   49   $ CC subr.c
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]BUILD_SRC.COM;1
   48   $ CC subr.c
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]BUILD_SRC.COM;2
   66   status.obj,stack.obj,-
67 subr.obj,tag.obj,update.obj,version.obj,vers_ts.obj,watch.obj,wrapper.ob j,-
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]BUILD_SRC.COM;1
   65   status.obj,-
66 subr.obj,tag.obj,update.obj,version.obj,vers_ts.obj,watch.obj,wrapper.ob j,-
************

rerun the local [.src] build script to see the remaining errors or warnings .

USERS.PS.TOOLS.CVS.CVS-1_11_18>@build_src
$ CC :== CC/NOOPT/DEB/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIR=([-],[-.VMS],[-.LIB])/PREFIX=ALL
$ CC add.c
$ CC admin.c
$ CC annotate.c
$ CC buffer.c
$ CC checkin.c
$ CC checkout.c
$ CC classify.c
$ CC client.c
$ CC commit.c

            if (!newfile && headtime != -1)
............................^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "headtime" is being compared with an equality operator to a constant
 whose value is negative.  This might not be what you intended.
at line number 2197 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]COMMIT.C;1
$ CC create_adm.c
$ CC cvsrc.c
$ CC diff.c
$ CC edit.c
$ CC entries.c
$ CC error.c
$ CC expand_path.c
$ CC fileattr.c
$ CC find_names.c
$ CC hash.c
$ CC history.c
$ CC ignore.c
$ CC import.c
$ CC lock.c
$ CC log.c
$ CC login.c
$ CC logmsg.c
$ CC main.c
$ CC mkmodules.c
$ CC modules.c
$ CC myndbm.c
$ CC no_diff.c
$ CC parseinfo.c
$ CC patch.c
$ CC rcs.c
$ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.diff]) rcscmds.c
$ CC recurse.c
$ CC release.c
$ CC remove.c
$ CC repos.c
$ CC root.c
$ CC run.c
$ CC scramble.c
$ CC server.c
$ CC status.c
$ CC stack.c
$ CC subr.c
$ CC tag.c
$ CC update.c
$ CC version.c
$ CC vers_ts.c
$ CC watch.c
$ CC wrapper.c
$ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.zlib]) zlib.c
$ LIBRARY/CREATE cvslib.olb add.obj,admin.obj,annotate.obj,buffer.obj,checkin.obj,-
checkout.obj,-
classify.obj,client.obj,commit.obj,create_adm.obj,cvsrc.obj,-
diff.obj,edit.obj,entries.obj,error.obj,expand_path.obj,fileattr.obj,-
find_names.obj,hash.obj,history.obj,ignore.obj,import.obj,-
lock.obj,log.obj,login.obj,logmsg.obj,mkmodules.obj,modules.obj,myndbm.o bj,-
no_diff.obj,-
parseinfo.obj,patch.obj,rcs.obj,rcscmds.obj,recurse.obj,release.obj,-
remove.obj,repos.obj,root.obj,run.obj,scramble.obj,server.obj,-
status.obj,stack.obj,-
subr.obj,tag.obj,update.obj,version.obj,vers_ts.obj,watch.obj,wrapper.ob j,-
zlib.obj
$ link/nodeb/exe=cvs.exe main.obj,cvslib.olb/lib,[-.vms]openvmslib.olb/lib,-
    [-.zlib]libz.olb/lib,[-.diff]diff.olb/lib,[-.lib]gnulib.olb/lib
%LINK-W-WRNERS, compilation warnings
in module GETOPT file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GNULIB.OLB;2
%LINK-W-MULDEF, symbol DECC$UTIME multiply defined
in module DECC$SHR_EV56 file SYS$COMMON:[SYSLIB]DECC$SHR_EV56.EXE;1
%LINK-W-MULDEF, symbol DECC$LINK multiply defined
in module DECC$SHR_EV56 file SYS$COMMON:[SYSLIB]DECC$SHR_EV56.EXE;1
%LINK-W-NUDFSYMS, 1 undefined symbol:
%LINK-I-UDFSYM,         OSX_FILENAME_CLASSES
%LINK-W-USEUNDEF, undefined symbol OSX_FILENAME_CLASSES referenced
        in psect $LINK$ offset %X00000198
in module HASH file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CVSLIB.OLB;2
%LINK-W-USEUNDEF, undefined symbol OSX_FILENAME_CLASSES referenced
        in psect $LINK$ offset %X00000340
in module FILESUBR file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]OPENVMSLIB.OLB;3
%LINK-W-USEUNDEF, undefined symbol OSX_FILENAME_CLASSES referenced
        in psect $LINK$ offset %X00000020
in module FNMATCH file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GNULIB.OLB;2
$ set noverify

Finished??
No although we have again a executable image which will give a nice crash when used.

PROBLEM 10: OSX_FILENAME_CLASSES on VMS? In the OPENVSLIB.OLB? Doubtful, we running VMS not MAC OSX so there is still an problem.

Workaround: The OSX_FILENAME_CLASSES are defined in the [.lib]system.h file Its easy to find there are some nice comment lines. The problem is that the VMS compiler will also hit the only MAXOSX intended lines. Let make clear that the number of operating systems on this planet is larger then two. ;-)

[...VS-1_11_18.LIB]>diff system.h
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]SYSTEM.H;2
  504   #if defined(MACOS) || defined(TARGET_OS_MAC)
505 # define FOLD_FN_CHAR(c) (OSX_filename_classes[(unsigned char) (c)])
  506   extern unsigned char OSX_filename_classes[];
  507   #endif
  508
  509   # endif /* __CYGWIN32__ || WOE32 */
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]SYSTEM.H;1
504 # define FOLD_FN_CHAR(c) (OSX_filename_classes[(unsigned char) (c)])
  505   extern unsigned char OSX_filename_classes[];
  506   # endif /* __CYGWIN32__ || WOE32 */
************

Now delete all *.obj and *.olb in the cvs-1_11_18 directories and rebuild from the root directory

USERS.PS.TOOLS.CVS.CVS-1_11_18>del [...]*.olb;*
USERS.PS.TOOLS.CVS.CVS-1_11_18>del [...]*.obj;*

USERS.PS.TOOLS.CVS.CVS-1_11_18>@build
Compiling Zlib sources ...

CC   /prefix=all EXAMPLE.C
CC   /prefix=all ADLER32.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB ADLER32.OBJ
CC   /prefix=all COMPRESS.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB COMPRESS.OBJ
CC   /prefix=all CRC32.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB CRC32.OBJ
CC   /prefix=all GZIO.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB GZIO.OBJ
CC   /prefix=all UNCOMPR.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB UNCOMPR.OBJ
CC   /prefix=all DEFLATE.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB DEFLATE.OBJ
CC   /prefix=all TREES.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB TREES.OBJ
CC   /prefix=all ZUTIL.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB ZUTIL.OBJ
CC   /prefix=all INFLATE.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFLATE.OBJ
CC   /prefix=all INFBLOCK.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFBLOCK.OBJ
CC   /prefix=all INFTREES.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFTREES.OBJ
CC   /prefix=all INFCODES.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFCODES.OBJ
CC   /prefix=all INFUTIL.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFUTIL.OBJ
CC   /prefix=all INFFAST.C
If "''F$Search("LIBZ.OLB")'" .EQS. "" Then LIBRARY/Create LIBZ.OLB
LIBRARY/REPLACE LIBZ.OLB INFFAST.OBJ
 libz available
link example,libz.olb/lib
 Example applications available
Zlib build completed
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
$ CC diff.c
$ CC analyze.c
$ CC cmpbuf.c
$ CC dir.c
$ CC io.c
$ CC util.c
$ CC context.c
$ CC ed.c
$ CC ifdef.c
$ CC normal.c
$ CC side.c
$ CC version.c
$ CC diff3.c
$ library/create diff.olb diff.obj,analyze.obj,cmpbuf.obj,-
dir.obj,io.obj,util.obj,context.obj,ed.obj,ifdef.obj,normal.obj,-
side.obj,version.obj,diff3.obj
$ set noverify
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
$ CC filesubr.c
$ CC filutils.c
$ CC getpass.c
$ CC getwd.c
$ CC misc.c
$ CC ndir.c
$ CC pipe.c
$ CC piped_child.c
$ CC pwd.c
$ CC rcmd.c
$ CC readlink.c
$ CC rmdir.c
$ CC stat.c
$ CC startserver.c
$ CC unlink.c
$ CC utime.c
$ CC /NOSTANDARD vmsmunch.c
$ CC waitpid.c
$ library/create openvmslib.olb filesubr.obj,-
filutils.obj,getpass.obj,getwd.obj,misc.obj,ndir.obj,pipe.obj,-
pwd.obj,rcmd.obj,readlink.obj,rmdir.obj,stat.obj,startserver.obj,-
unlink.obj,utime.obj,vmsmunch.obj,waitpid.obj
$ set noverify
$ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/ PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
$ CC fnmatch.c
$ CC getdate.c

    if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Minutes" is being compared with a relational operator to a constant whose value is not greater than zero. This might not be what you intended.
at line number 585 in file /u/scjones/cvs-nightly/lib/getdate.y

    if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
.......................................^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Seconds" is being compared with a relational operator to a constant whose value is not greater than zero. This might not be what you intended.
at line number 585 in file /u/scjones/cvs-nightly/lib/getdate.y

        if (Hours < 0 || Hours > 23)
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Hours" is being compared with a relational operator to a constant wh ose value is not greater than zero. This might not be what you intended.
at line number 589 in file /u/scjones/cvs-nightly/lib/getdate.y

    if (Year < 0)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Year" is being compared with a relational operator to a constant who
se value is not greater than zero.  This might not be what you intended.
at line number 633 in file /u/scjones/cvs-nightly/lib/getdate.y

    if ((tod = ToSeconds(Hours, Minutes, Seconds, Meridian)) < 0)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(tod=ToSeconds(...))" is being compared with a relational operator t o a constant whose value is not greater than zero. This might not be what you intended.
at line number 661 in file /u/scjones/cvs-nightly/lib/getdate.y

now += 7 * SECSPERDAY * (DayOrdinal <= 0 ? DayOrdinal : DayOrdinal - 1);
.............................^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "DayOrdinal" is being compared with a relational operator to a consta nt whose value is not greater than zero. This might not be what you intended.
at line number 697 in file /u/scjones/cvs-nightly/lib/getdate.y

        if (Start < 0)
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Start" is being compared with a relational operator to a constant wh ose value is not greater than zero. This might not be what you intended.
at line number 981 in file /u/scjones/cvs-nightly/lib/getdate.y

    return Start == -1 ? 0 : Start;
...........^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "Start" is being compared with an equality operator to a constant wh
ose value is negative.  This might not be what you intended.
at line number 1000 in file /u/scjones/cvs-nightly/lib/getdate.y
$ CC getline.c
$ CC getopt.c

int getopt (int argc, char *const *argv, const char *optstring)
....^
%CC-W-NOTCOMPAT, In this declaration, the type of "cvs_getopt" is not compatible with the type of a previous declaration of "cvs_get
opt" at line number 537 in file SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1.
at line number 672 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.C;2
$ CC getopt1.c
$ CC md5.c
$ CC regex.c
$ CC savecwd.c
$ CC sighandle.c
$ CC stripslash.c
$ CC valloc.c
$ CC xgetwd.c
$ CC yesno.c
$ library/create gnulib.olb fnmatch.obj,getdate.obj,getline.obj,-
getopt.obj,getopt1.obj,md5.obj,regex.obj,savecwd.obj,sighandle.obj,-
stripslash.obj,valloc.obj,xgetwd.obj,yesno.obj
%LIBRAR-W-COMCOD, compilation warnings in module GETOPT file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.OBJ;1
$ set noverify
$ CC :== CC/NOOPT/DEB/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIR=([-],[-.VMS],[-.LIB])/PREFIX=ALL
$ CC add.c
$ CC admin.c
$ CC annotate.c
$ CC buffer.c
$ CC checkin.c
$ CC checkout.c
$ CC classify.c
$ CC client.c
$ CC commit.c

            if (!newfile && headtime != -1)
............................^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "headtime" is being compared with an equality operator to a constant
 whose value is negative.  This might not be what you intended.
at line number 2197 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]COMMIT.C;1
$ CC create_adm.c
$ CC cvsrc.c
$ CC diff.c
$ CC edit.c
$ CC entries.c
$ CC error.c
$ CC expand_path.c
$ CC fileattr.c
$ CC find_names.c
$ CC hash.c
$ CC history.c
$ CC ignore.c
$ CC import.c
$ CC lock.c
$ CC log.c
$ CC login.c
$ CC logmsg.c
$ CC main.c
$ CC mkmodules.c
$ CC modules.c
$ CC myndbm.c
$ CC no_diff.c
$ CC parseinfo.c
$ CC patch.c
$ CC rcs.c
$ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.diff]) rcscmds.c
$ CC recurse.c
$ CC release.c
$ CC remove.c
$ CC repos.c
$ CC root.c
$ CC run.c
$ CC scramble.c
$ CC server.c
$ CC status.c
$ CC stack.c
$ CC subr.c
$ CC tag.c
$ CC update.c
$ CC version.c
$ CC vers_ts.c
$ CC watch.c
$ CC wrapper.c
$ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.zlib]) zlib.c
$ LIBRARY/CREATE cvslib.olb add.obj,admin.obj,annotate.obj,buffer.obj,checkin.obj,-
checkout.obj,-
classify.obj,client.obj,commit.obj,create_adm.obj,cvsrc.obj,-
diff.obj,edit.obj,entries.obj,error.obj,expand_path.obj,fileattr.obj,-
find_names.obj,hash.obj,history.obj,ignore.obj,import.obj,-
lock.obj,log.obj,login.obj,logmsg.obj,mkmodules.obj,modules.obj,myndbm.o bj,-
no_diff.obj,-
parseinfo.obj,patch.obj,rcs.obj,rcscmds.obj,recurse.obj,release.obj,-
remove.obj,repos.obj,root.obj,run.obj,scramble.obj,server.obj,-
status.obj,stack.obj,-
subr.obj,tag.obj,update.obj,version.obj,vers_ts.obj,watch.obj,wrapper.ob j,-
zlib.obj
$ link/nodeb/exe=cvs.exe main.obj,cvslib.olb/lib,[-.vms]openvmslib.olb/lib,-
    [-.zlib]libz.olb/lib,[-.diff]diff.olb/lib,[-.lib]gnulib.olb/lib
%LINK-W-WRNERS, compilation warnings
in module GETOPT file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GNULIB.OLB;1
%LINK-W-MULDEF, symbol DECC$UTIME multiply defined
in module DECC$SHR_EV56 file SYS$COMMON:[SYSLIB]DECC$SHR_EV56.EXE;1
%LINK-W-MULDEF, symbol DECC$LINK multiply defined
in module DECC$SHR_EV56 file SYS$COMMON:[SYSLIB]DECC$SHR_EV56.EXE;1
$ set noverify

Lets test the image.
USERS.PS.TOOLS.CVS.CVS-1_11_18>cvs :==$TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]cvs.exe
USERS.PS.TOOLS.CVS.CVS-1_11_18>cvs
Usage: cvs [cvs-options] command [command-options-and-arguments]
  where cvs-options are -q, -n, etc.
    (specify --help-options for a list of options)
  where command is add, admin, etc.
    (specify --help-commands for a list of commands
     or --help-synonyms for a list of command synonyms)
  where command-options-and-arguments depend on the specific command
    (specify -H followed by a command name for command-specific help)
  Specify --help to receive this message

The Concurrent Versions System (CVS) is a tool for version control.
For CVS updates and additional information, see
    the CVS home page at http://www.cvshome.org/ or
    Pascal Molli's CVS site at http://www.loria.fr/~molli/cvs-index.html
USERS.PS.TOOLS.CVS.CVS-1_11_18>cvs version
Client: Concurrent Versions System (CVS) 1.11.18 VMS (client)
Server:
Concurrent Versions System (CVS) 1.11.17 (client/server)socket
USERS.PS.TOOLS.CVS.CVS-1_11_18>

Finished?
Almost – The created executable image works but there are several type incomparability warnings. Moreover, this image does return a nice error message when accessing data from the repository.

ISSUE 1.
Example
USERS.PS.TOOLS.CVS>cvs checkout smile
cvs: cannot write to stderr: socket operation on non-socket
USERS.PS.TOOLS.CVS>
USERS.PS.TOOLS.CVS>cvs -t checkout smile
-> main loop with CVSROOT=:pserver:address@hidden:/mls6/cvsroot
-> safe_location( where=(null) )
 -> Connecting to wcudev(10.60.1.70):2401
cvs: cannot write to stderr: socket operation on non-socket
-> Lock_Cleanup()
USERS.PS.TOOLS.CVS>

Add the link switch /debug and redo the link process. And run the debug image and you will find that the select statement in the handle_m and handle_e functions within the client.c source return an error that stops the process of checking out a repository module.

Workaround:
I replaced both hanle_e and handle_m functions with an earlier versions this workaround is only bypassing the real problem with the select statement. I will try to submit more details on this problem in a separated e-mail.

I agree that following solution is not acceptable nevertheless; this will make the cvs-1_11_18 client work on VMS. I did not use the preprocessing statements because this solution is only temporary.

[...VS-1_11_18.SRC]>diff client.c
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;2
 3088    /*
 3089       FD_ZERO (&wfds);
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
 3088       FD_ZERO (&wfds);
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;2
 3094   */    fwrite (args, len, sizeof (*args), stdout);
 3095       putc ('\n', stdout);
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
 3093       fwrite (args, len, sizeof (*args), stdout);
 3094       putc ('\n', stdout);
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;2
 3147   /*
 3148       FD_ZERO (&wfds);
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
 3146       FD_ZERO (&wfds);
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;2
 3151        *
 3152        * If stderr has problems, then adding a call to
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
 3149       /*
 3150        * If stderr has problems, then adding a call to
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;2
 3156        *
 3157       if (s < 1)
 3158           fperrmsg (stdout, 1, errno, "cannot write to stderr");
 3159   */
 3160      fwrite (args, len, sizeof (*args), stderr);
 3161       putc ('\n', stderr);
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
 3154        */
 3155       if (s < 1)
 3156           fperrmsg (stdout, 1, errno, "cannot write to stderr");
 3157       fwrite (args, len, sizeof (*args), stderr);
 3158       putc ('\n', stderr);
************

 Rebuild using the local [.src]build_src.com script
[...VS-1_11_18.SRC]>@build_src
$ CC :== CC/NOOPT/DEB/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H-
/INCLUDE_DIR=([-],[-.VMS],[-.LIB])/PREFIX=ALL
$ CC add.c
$ CC admin.c
$ CC annotate.c
$ CC buffer.c
$ CC checkin.c
$ CC checkout.c
$ CC classify.c
$ CC client.c
$ CC commit.c

            if (!newfile && headtime != -1)
............................^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "headtime" is being compared with an equality operator to a constant
 whose value is negative.  This might not be what you intended.
at line number 2197 in file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]COMMIT.C;1
$ CC create_adm.c
$ CC cvsrc.c
$ CC diff.c
$ CC edit.c
$ CC entries.c
$ CC error.c
$ CC expand_path.c
$ CC fileattr.c
$ CC find_names.c
$ CC hash.c
$ CC history.c
$ CC ignore.c
$ CC import.c
$ CC lock.c
$ CC log.c
$ CC login.c
$ CC logmsg.c
$ CC main.c
$ CC mkmodules.c
$ CC modules.c
$ CC myndbm.c
$ CC no_diff.c
$ CC parseinfo.c
$ CC patch.c
$ CC rcs.c
$ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.diff]) rcscmds.c
$ CC recurse.c
$ CC release.c
$ CC remove.c
$ CC repos.c
$ CC root.c
$ CC run.c
$ CC scramble.c
$ CC server.c
$ CC status.c
$ CC stack.c
$ CC subr.c
$ CC tag.c
$ CC update.c
$ CC version.c
$ CC vers_ts.c
$ CC watch.c
$ CC wrapper.c
$ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.zlib]) zlib.c
$ LIBRARY/CREATE cvslib.olb add.obj,admin.obj,annotate.obj,buffer.obj,checkin.obj,-
checkout.obj,-
classify.obj,client.obj,commit.obj,create_adm.obj,cvsrc.obj,-
diff.obj,edit.obj,entries.obj,error.obj,expand_path.obj,fileattr.obj,-
find_names.obj,hash.obj,history.obj,ignore.obj,import.obj,-
lock.obj,log.obj,login.obj,logmsg.obj,mkmodules.obj,modules.obj,myndbm.o bj,-
no_diff.obj,-
parseinfo.obj,patch.obj,rcs.obj,rcscmds.obj,recurse.obj,release.obj,-
remove.obj,repos.obj,root.obj,run.obj,scramble.obj,server.obj,-
status.obj,stack.obj,-
subr.obj,tag.obj,update.obj,version.obj,vers_ts.obj,watch.obj,wrapper.ob j,-
zlib.obj
$ link/nodeb/exe=cvs.exe main.obj,cvslib.olb/lib,[-.vms]openvmslib.olb/lib,-
    [-.zlib]libz.olb/lib,[-.diff]diff.olb/lib,[-.lib]gnulib.olb/lib
%LINK-W-WRNERS, compilation warnings
in module GETOPT file TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GNULIB.OLB;1
%LINK-W-MULDEF, symbol DECC$UTIME multiply defined
in module DECC$SHR_EV56 file SYS$COMMON:[SYSLIB]DECC$SHR_EV56.EXE;1
%LINK-W-MULDEF, symbol DECC$LINK multiply defined
in module DECC$SHR_EV56 file SYS$COMMON:[SYSLIB]DECC$SHR_EV56.EXE;1
$ set noverify
[...VS-1_11_18.SRC]>

Lets repeat the checkout instruction
USERS.PS.TOOLS.CVS>cvs checkout smile
-f checkout: Updating smile
U smile/bsearch.c
U smile/faces.in
U smile/getopt.c
U smile/ltoa.c
U smile/make_vms.com
U smile/makefile
U smile/mkfaces.c
U smile/other
U smile/patchlevel.h
U smile/readme
U smile/smiley.1
U smile/smiley.c
U smile/smiley.h
U smile/smiley.hlp
USERS.PS.TOOLS.CVS>

Remaining Items:
-1- solve the compiler warnings
-2- analyze the ISSUE 1 problem

Problem 11 the incompatible type warnings.

Workaround:
Most of these problems have to do with the time_t type
It’s possible to cast the variables to either a long or int.

In [.src]commit.c I only added (long)
[...VS-1_11_18.SRC]>diff commit.c
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]COMMIT.C;2
 2197               if (!newfile && (long)headtime != -1)
 2198               {
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]COMMIT.C;1
 2197               if (!newfile && headtime != -1)
 2198               {
************

and in [.lib]getdate.c
[...VS-1_11_18.LIB]>diff getdate.c
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;4
590 if ( (long)Minutes < 0 || (long)Minutes > 59 || (long)Seconds < 0 || (long)Seconds > 59)
  591           return -1;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
590 if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
  591           return -1;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;4
  594           if ((long)Hours < 0 || (long)Hours > 23)
  595               return -1;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
  594           if (Hours < 0 || Hours > 23)
  595               return -1;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;4
  598           if ((long)Hours < 1 || (long)Hours > 12)
  599               return -1;
  600           if ((long)Hours == 12)
  601               Hours = 0;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
  598           if (Hours < 1 || Hours > 12)
  599               return -1;
  600           if (Hours == 12)
  601               Hours = 0;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;4
  604           if ((long)Hours < 1 || (long)Hours > 12)
  605               return -1;
  606           if ((long)Hours == 12)
  607               Hours = 0;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
  604           if (Hours < 1 || Hours > 12)
  605               return -1;
  606           if (Hours == 12)
  607               Hours = 0;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;4
  638       if ((long)Year < 0)
  639           Year = -Year;
  640       if ((long)Year < 69)
  641           Year += 2000;
  642       else if ((long)Year < 100)
  643           Year += 1900;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
  638       if (Year < 0)
  639           Year = -Year;
  640       if (Year < 69)
  641           Year += 2000;
  642       else if (Year < 100)
  643           Year += 1900;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;4
  648       if ((long)Year < EPOCH || (long)Year > 2038
  649        || (long)Month < 1 || (long)Month > 12
  650        /* Lint fluff:  "conversion from long may lose accuracy" */
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
  648       if (Year < EPOCH || Year > 2038
  649        || Month < 1 || Month > 12
  650        /* Lint fluff:  "conversion from long may lose accuracy" */
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;4
666 if ( (long)(tod = ToSeconds(Hours, Minutes, Seconds, Meridian)) < 0)
  667           return -1;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
666 if ((tod = ToSeconds(Hours, Minutes, Seconds, Meridian)) < 0)
  667           return -1;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;4
702 now += 7 * SECSPERDAY * ((long)DayOrdinal <= 0 ? DayOrdinal : DayOrdinal - 1);
  703       return DSTcorrect(Start, now);
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
702 now += 7 * SECSPERDAY * (DayOrdinal <= 0 ? DayOrdinal : DayOrdinal - 1);
  703       return DSTcorrect(Start, now);
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;4
  986           if ( (long)Start < 0)
  987               return -1;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
  986           if (Start < 0)
  987               return -1;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;4
 1005       return (long)Start == -1 ? 0 : Start;
 1006   }
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
 1005       return Start == -1 ? 0 : Start;
 1006   }
************

A last total rebuild and its finished. The only remaining items are two issues.
ISSUE 1 the changes in client.c
ISSUE 2 not yet discussed it’s a problem that occurred since cvs-1_9 its limited to VMS and has to do with file renaming Entries.Backup to Entries.; when checking out a large number of files/directories and subdirectories. Workaround: Perform a cvs update after encountering this error. More details may follow in a separated mail the bug-dev list.

Piet Schuermans

reply via email to

[Prev in Thread] Current Thread [Next in Thread]