Everhart,Glenn From: John D. Amidon [john.d.amidon@cpmx.saic.com] Sent: Sunday, April 19, 1998 6:15 PM To: Info-VAX@Mvb.Saic.Com Subject: Re: CVS for VMS 7.1 Alpha? >>>>> "Jim" == Jim Kingdon writes: >> I had CVS working on a VMS 6.2 Alpha system, but we had to upgrade to VMS >> 7.1. Now it crashes in . . . getpass ["cvs login" command] Jim> I've seen this too. Jim> I'm still not sure how to fix it. CVS is trying to use curses to read Jim> a password without echoing it to the screen, but if SMG$ or a low-level Jim> call (RMS or SYS$QIO or whatever) to turn off echoing would be a better Jim> way, I'd consider that. Jim> Building under VMS 7.1 might help too, I don't know. There are Jim> annoying problems with include files (which I suppose I should fix Jim> anyway). We have built the latest 1.9.26 on OpenVMS 7.1 and will be submitting the patches shortly. The `login' problem is gone. However, we are still looking at the `release' command which does not work. Basically there are two problems with compiling on OpenVMS 7.1, choosing the correct 'C' standard and the misuse of `lstat' rather than the macro `CVS_LSTAT'. These are hacks but small ones ;) If these patches are applied correctly, CVS should build without error on OpenVMS. The first one was solved by applying the following patch to `vms.h': =================================================================== RCS file: /export/repository/gnu/cvs/vms/vms.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -p -u -r1.1.1.1 -r1.2 --- gnu/cvs/vms/vms.h 1998/04/04 06:04:24 1.1.1.1 +++ /export/repository/gnu/cvs/vms/vms.h 1998/04/04 11:53:53 1.2 @@ -1,6 +1,8 @@ /* Determined from CC RTL function prototypes in online documentation */ -#define mode_t unsigned int +#if !defined(__CVS_VMS_H__) +#define __CVS_VMS_H__ + #define fork(x) vfork(x) @@ -26,9 +28,17 @@ extern int fnmatch(char *pattern, char * #include "pwd.h" #include "pipe.h" +#if !defined(_DECC_V4_SOURCE) int unlink(char *path); int link(char *from, char *to); +#else +typedef __off_t off_t; +typedef __ino_t ino_t; +#define mode_t unsigned int +#endif #define stat(a, b) wrapped_stat(a, b) #undef POSIX + +#endif and by adding the definition of `_DECC_V4_SOURCE' to the `/define' statements in the build_diff.com, build_src.com, build_vms.com, build_zlib.com, and build_lib.com. In addition, also add `__CVS_VMS_H__' to the '/define' statement for build_lib.com. The second was fixed by applying the following patch to `stat.c' in the `vms' directory: =================================================================== RCS file: /export/repository/gnu/cvs/vms/stat.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -p -u -r1.1.1.1 -r1.2 --- gnu/cvs/vms/stat.c 1998/04/04 06:04:24 1.1.1.1 +++ /export/repository/gnu/cvs/vms/stat.c 1998/04/04 11:53:53 1.2 @@ -31,3 +31,14 @@ struct stat *buffer; return rs; } + +/* + * lstat is non-existent on VMS + * fake here so we don't have to change other sources + */ +int lstat (path, buffer) +const char *path; +struct stat *buffer; +{ + return wrapped_stat (path, buffer); +} However, I believe if everybody followed the rules and used the macros where they are suppose to this patch would not be needed. Let me know if I can be of further assistance. -- --------------------------------------------------------------------------- John D. Amidon, TransCore, 3500 Parkway Lane, Suite 600, Norcross, GA 30092 e-mail: john.d.amidon@cpmx.saic.com | V:+1 770 447 6831 | D:+1 770 449 7268 ---------------------------------------------------------------------------