diff --git a/config.h-vms.template b/config.h-vms.template index e2dd0264..67b94478 100644 --- a/config.h-vms.template +++ b/config.h-vms.template @@ -330,14 +330,23 @@ /* #undef WANT_CASE_SENSITIVE_TARGETS */ /* VMS specific, V7.0 has opendir() and friends, so it's undefined */ -/* Define first or both if you want to use non-VMS code for opendir() etc. */ +/* If you want to use non-VMS code for opendir() etc. on V7.0 and greater + define the first or both macros AND change the compile command to get the + non-VMS versions linked: (prefix=(all,except=(opendir,... */ /* #undef HAVE_VMSDIR_H */ /* #undef _DIRENT_HAVE_D_NAMLEN */ -/* On older systems with older CRTLs force non-VMS-code */ -#if __CRTL_VER < 70000000 && !defined(HAVE_VMSDIR_H) -#define HAVE_VMSDIR_H 1 +/* On older systems without 7.0 backport of CRTL the first one is defined */ +#ifdef __CRTL_VER +# if __CRTL_VER < 70000000 +# define HAVE_VMSDIR_H 1 +# endif +#else +# if __VMS_VER < 70000000 +# define HAVE_VMSDIR_H 1 +# endif #endif + #if defined(HAVE_VMSDIR_H) && defined(HAVE_DIRENT_H) #undef HAVE_DIRENT_H #endif diff --git a/readme.vms b/readme.vms index dacc3940..d4a9667c 100644 --- a/readme.vms +++ b/readme.vms @@ -11,6 +11,21 @@ seem worth to get it working. There are still some PTRMISMATCH warnings during the compile. Although perl is working on VMS the test scripts don't work. The function $shell is still missing. +There is a known bug in some of the VMS CRTLs. It is in the shipped +versions of VMS V7.2 and V7.2-1 and in the currently (October 1999) +available ECOs for VMS V7.1 and newer versions. It is fixed in versions +shipped with newer VMS versions and all ECO kits after October 1999. It +only shows up during the daylight saving time period (DST): stat() +returns a modification time 1 hour ahead. This results in GNU make +warning messages. For a just created source you will see: + + $ gmake x.exe + gmake.exe;1: *** Warning: File `x.c' has modification time in the future (940582863 > 940579269) + cc /obj=x.obj x.c + link x.obj /exe=x.exe + gmake.exe;1: *** Warning: Clock skew detected. Your build may be incomplete. + + New in 3.78.1: Fix a problem with automatically remaking makefiles. GNU make uses an diff --git a/vmsfunctions.c b/vmsfunctions.c index a36630e7..69ba28c2 100644 --- a/vmsfunctions.c +++ b/vmsfunctions.c @@ -13,7 +13,7 @@ #include #include "vmsdir.h" -#if __VMS_VER < 70000000 +#ifdef HAVE_VMSDIR_H DIR * opendir (dspec)