* Installed VMS fixes.

This commit is contained in:
Paul Smith 1999-07-21 16:06:18 +00:00
parent 588da9812e
commit c69d4c95bf
5 changed files with 69 additions and 37 deletions

View File

@ -398,13 +398,20 @@
1999-02-16 Glenn D. Wolf <Glenn_Wolf@email.sps.mot.com> 1999-02-16 Glenn D. Wolf <Glenn_Wolf@email.sps.mot.com>
* arscan.c (ar_scan): [VMS] Initialized VMS_member_date before * arscan.c (ar_scan) [VMS]: Initialized VMS_member_date before
calling lbr$get_index since if the archive is empty, calling lbr$get_index since if the archive is empty,
VMS_get_member_info won't get called at all, and any leftover date VMS_get_member_info won't get called at all, and any leftover date
will be used. This bug shows up if any member of any archive is will be used. This bug shows up if any member of any archive is
made, followed by a dependency check on a different, empty made, followed by a dependency check on a different, empty
archive. archive.
1998-12-13 Martin Zinser <zinser@decus.decus.de>
* config.h-vms [VMS]: Set _POSIX_C_SOURCE. Redefine the getopt
functions so we don't use the broken VMS versions.
* makefile.com [VMS]: Allow debugging.
* dir.c (dir_setup_glob) [VMS]: Don't extern stat() on VMS.
1998-11-30 Paul D. Smith <psmith@gnu.org> 1998-11-30 Paul D. Smith <psmith@gnu.org>
* signame.c (init_sig): Check the sizes of signals being set up to * signame.c (init_sig): Check the sizes of signals being set up to
@ -877,7 +884,7 @@
1998-05-11 Rob Tulloh <rob_tulloh@tivoli.com> 1998-05-11 Rob Tulloh <rob_tulloh@tivoli.com>
* job.c (construct_command_argv_internal): [WINDOWS32] Turn off * job.c (construct_command_argv_internal) [WINDOWS32]: Turn off
echo when using a batch file, and make sure the command ends in a echo when using a batch file, and make sure the command ends in a
newline. newline.
@ -1010,8 +1017,8 @@
Tue Oct 07 15:00:00 1997 Phil Brooks <phillip_brooks@hp.com> Tue Oct 07 15:00:00 1997 Phil Brooks <phillip_brooks@hp.com>
* make.h: [WINDOWS32] make case sensitivity configurable * make.h [WINDOWS32]: make case sensitivity configurable
* dir.c: [WINDOWS32] make case sensitivity configurable * dir.c [WINDOWS32]: make case sensitivity configurable
* README.W32: Document case sensitivity * README.W32: Document case sensitivity
* config.ami: Share case warping code with Windows * config.ami: Share case warping code with Windows
@ -1019,20 +1026,20 @@ Mon Oct 6 18:48:45 CDT 1997 Rob Tulloh <rob_tulloh@dev.tivoli.com>
* w32/subproc/sub_proc.c: Added support for MKS toolkit shell * w32/subproc/sub_proc.c: Added support for MKS toolkit shell
(turn on HAVE_MKS_SHELL). (turn on HAVE_MKS_SHELL).
* read.c: [WINDOWS32] Fixed a problem with multiple target rules * read.c [WINDOWS32]: Fixed a problem with multiple target rules
reported by Gilbert Catipon (gcatipon@tibco.com). If multiple reported by Gilbert Catipon (gcatipon@tibco.com). If multiple
path tokens in a rule did not have drive letters, make would path tokens in a rule did not have drive letters, make would
incorrectly concatenate the 2 tokens together. incorrectly concatenate the 2 tokens together.
* main.c/variable.c: [WINDOWS32] changed SHELL detection code to * main.c/variable.c [WINDOWS32]: changed SHELL detection code to
follow what MSDOS did. In addition to watching for SHELL variable follow what MSDOS did. In addition to watching for SHELL variable
updates, make's main will attempt to default the value of SHELL updates, make's main will attempt to default the value of SHELL
before and after makefiles are parsed. before and after makefiles are parsed.
* job.c/job.h: [WINDOWS32] The latest changes made to enable use * job.c/job.h [WINDOWS32]: The latest changes made to enable use
of the GNUWIN32 shell from make could cause make to fail due to a of the GNUWIN32 shell from make could cause make to fail due to a
concurrency condition between parent and child processes. Make concurrency condition between parent and child processes. Make
now creates a batch file per job instead of trying to reuse the now creates a batch file per job instead of trying to reuse the
same singleton batch file. same singleton batch file.
* job.c/job.h/function.c/config.h.W32: [WINDOWS32] Renamed macro * job.c/job.h/function.c/config.h.W32 [WINDOWS32]: Renamed macro
from HAVE_CYGNUS_GNUWIN32_TOOLS to BATCH_MODE_ONLY_SHELL. Reworked from HAVE_CYGNUS_GNUWIN32_TOOLS to BATCH_MODE_ONLY_SHELL. Reworked
logic to reduce complexity. WINDOWS32 now uses the unixy_shell logic to reduce complexity. WINDOWS32 now uses the unixy_shell
variable to detect Bourne-shell compatible environments. There is variable to detect Bourne-shell compatible environments. There is
@ -1048,19 +1055,19 @@ Mon Oct 6 18:48:45 CDT 1997 Rob Tulloh <rob_tulloh@dev.tivoli.com>
Mon Oct 6 00:04:25 1997 Rob Tulloh <rob_tulloh@dev.tivoli.com> Mon Oct 6 00:04:25 1997 Rob Tulloh <rob_tulloh@dev.tivoli.com>
* main.c: [WINDOWS32] The function define_variable() does not * main.c [WINDOWS32]: The function define_variable() does not
handle NULL. Test before calling it to set Path. handle NULL. Test before calling it to set Path.
* main.c: [WINDOWS32] Search Path again after makefiles have been * main.c [WINDOWS32]: Search Path again after makefiles have been
parsed to detect sh.exe. parsed to detect sh.exe.
* job.c: [WINDOWS32] Added support for Cygnus GNU WIN32 tools. * job.c [WINDOWS32]: Added support for Cygnus GNU WIN32 tools.
To use, turn on HAVE_CYGNUS_GNUWIN32_TOOLS in config.h.W32. To use, turn on HAVE_CYGNUS_GNUWIN32_TOOLS in config.h.W32.
* config.h.W32: Added HAVE_CYGNUS_GNUWIN32_TOOLS macro. * config.h.W32: Added HAVE_CYGNUS_GNUWIN32_TOOLS macro.
Sun Oct 5 22:43:59 1997 John W. Eaton <jwe@bevo.che.wisc.edu> Sun Oct 5 22:43:59 1997 John W. Eaton <jwe@bevo.che.wisc.edu>
* glob/glob.c (glob_in_dir): [VMS] Globbing shouldn't be * glob/glob.c (glob_in_dir) [VMS]: Globbing shouldn't be
case-sensitive. case-sensitive.
* job.c (child_execute_job): [VMS] Use a VMS .com file if the * job.c (child_execute_job) [VMS]: Use a VMS .com file if the
command contains a newline (e.g. from a define/enddef block). command contains a newline (e.g. from a define/enddef block).
* vmsify.c (vmsify): Return relative pathnames wherever possible. * vmsify.c (vmsify): Return relative pathnames wherever possible.
* vmsify.c (vmsify): An input string like "../.." returns "[--]". * vmsify.c (vmsify): An input string like "../.." returns "[--]".
@ -1070,22 +1077,22 @@ Wed Oct 1 15:45:09 1997 Rob Tulloh <rob_tulloh@tivoli.com>
* NMakefile: Changed nmake to $(MAKE). * NMakefile: Changed nmake to $(MAKE).
* subproc.bat: Take the make command name from the command * subproc.bat: Take the make command name from the command
line. If no command name was given, default to nmake. line. If no command name was given, default to nmake.
* job.c: [WINDOWS32/MSDOS] Fix memory stomp: temporary file names * job.c [MSDOS, WINDOWS32]: Fix memory stomp: temporary file names
are now always created in heap memory. are now always created in heap memory.
* w32/subproc/sub_proc.c: New implementation of make_command_line() * w32/subproc/sub_proc.c: New implementation of make_command_line()
which is more compatible with different Bourne shell implementations. which is more compatible with different Bourne shell implementations.
Deleted the now obsolete fix_command_line() function. Deleted the now obsolete fix_command_line() function.
* main.c: [WINDOWS32] Any arbitrary spelling of Path can be * main.c [WINDOWS32]: Any arbitrary spelling of Path can be
detected. Make will ensure that the special spelling `Path' is detected. Make will ensure that the special spelling `Path' is
inserted into the environment when the path variable is propagated inserted into the environment when the path variable is propagated
within itself and to make's children. within itself and to make's children.
* main.c: [WINDOWS32] Detection of sh.exe was occurring too * main.c [WINDOWS32]: Detection of sh.exe was occurring too
soon. The 2nd check for the existence of sh.exe must come after soon. The 2nd check for the existence of sh.exe must come after
the call to read_all_makefiles(). the call to read_all_makefiles().
Fri Sep 26 01:14:18 1997 <zinser@axp602.gsi.de> Fri Sep 26 01:14:18 1997 <zinser@axp602.gsi.de>
* makefile.com: [VMS] Fixed definition of sys. * makefile.com [VMS]: Fixed definition of sys.
* readme.vms: Comments on what's changed lately. * readme.vms: Comments on what's changed lately.
Fri Sep 26 01:14:18 1997 John W. Eaton <jwe@bevo.che.wisc.edu> Fri Sep 26 01:14:18 1997 John W. Eaton <jwe@bevo.che.wisc.edu>
@ -1136,7 +1143,7 @@ Fri Aug 29 02:01:27 1997 Paul D. Smith <psmith@baynetworks.com>
Thu Aug 28 19:39:06 1997 Rob Tulloh <rob_tulloh@tivoli.com> Thu Aug 28 19:39:06 1997 Rob Tulloh <rob_tulloh@tivoli.com>
* job.c (exec_command): [WINDOWS32] If exec_command() is invoked * job.c (exec_command) [WINDOWS32]: If exec_command() is invoked
from main() to re-exec make, the call to execvp() would from main() to re-exec make, the call to execvp() would
incorrectly return control to parent shell before the exec'ed incorrectly return control to parent shell before the exec'ed
command could run to completion. I believe this is a feature of command could run to completion. I believe this is a feature of
@ -1156,7 +1163,7 @@ Thu Aug 28 17:04:47 1997 Paul D. Smith <psmith@baynetworks.com>
* configure.in: Check for pstat_getdynamic for getloadvg on HP. * configure.in: Check for pstat_getdynamic for getloadvg on HP.
* job.c (start_job_command): [VMS,_AMIGA] Don't perform empty * job.c (start_job_command) [VMS, _AMIGA]: Don't perform empty
command optimization on these systems; it doesn't make sense. command optimization on these systems; it doesn't make sense.
Wed Aug 27 17:09:32 1997 Paul D. Smith <psmith@baynetworks.com> Wed Aug 27 17:09:32 1997 Paul D. Smith <psmith@baynetworks.com>
@ -1188,7 +1195,7 @@ Sat Aug 23 1997 Eli Zaretskii <eliz@is.elta.co.il>
Fri Aug 22 1997 Eli Zaretskii <eliz@is.elta.co.il> Fri Aug 22 1997 Eli Zaretskii <eliz@is.elta.co.il>
* job.c (start_job_command): [__MSDOS__] Don't test for "/bin/sh" * job.c (start_job_command) [__MSDOS__]: Don't test for "/bin/sh"
literally, use value of unixy_shell instead. literally, use value of unixy_shell instead.
* filedef.h (NEW_MTIME): Use 1 less than maximum possible value if * filedef.h (NEW_MTIME): Use 1 less than maximum possible value if
@ -1210,7 +1217,7 @@ Fri Aug 8 15:18:09 1997 John W. Eaton <jwe@bevo.che.wisc.edu>
Thu Aug 7 22:24:03 1997 John W. Eaton <jwe@bevo.che.wisc.edu> Thu Aug 7 22:24:03 1997 John W. Eaton <jwe@bevo.che.wisc.edu>
* ar.c: [VMS] Don't declare ar_member_touch. * ar.c [VMS]: Don't declare ar_member_touch.
Delete VMS version of ar_member_date. Delete VMS version of ar_member_date.
Enable non-VMS versions of ar_member_date and ar_member_date_1 for Enable non-VMS versions of ar_member_date and ar_member_date_1 for
VMS too. VMS too.
@ -1223,11 +1230,11 @@ Thu Aug 7 22:24:03 1997 John W. Eaton <jwe@bevo.che.wisc.edu>
* remake.c: Delete declaration of vms_stat. * remake.c: Delete declaration of vms_stat.
(name_mtime): Don't call vms_stat. (name_mtime): Don't call vms_stat.
(f_mtime): [VMS] Funky time value manipulation no longer necessary. (f_mtime) [VMS]: Funky time value manipulation no longer necessary.
* file.c (print_file): [VMS] Use ctime, not cvt_time. * file.c (print_file): [VMS] Use ctime, not cvt_time.
* make.h: [VMS] Don't define POSIX. * make.h [VMS]: Don't define POSIX.
* makefile.com (filelist): Include ar and arscan. * makefile.com (filelist): Include ar and arscan.
Also include them in the link commands. Also include them in the link commands.
@ -1507,9 +1514,9 @@ Thu Jul 25 19:53:31 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
when killing final space and dash before setting MFLAGS. when killing final space and dash before setting MFLAGS.
From Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>: From Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>:
* dir.c [__MSDOS__] [DJGPP > 1]: Include <libc/dosio.h> and defin * dir.c [__MSDOS__ && DJGPP > 1]: Include <libc/dosio.h> and defin
`__opendir_flags' initialized to 0. `__opendir_flags' initialized to 0.
[__MSDOS__] (dosify) [DJGPP > 1]: Return name unchanged if _USE_LFN. (dosify) [__MSDOS__ && DJGPP > 1]: Return name unchanged if _USE_LFN.
(find_directory) [__MSDOS__ && DJGPP > 1]: If _USE_LGN, set (find_directory) [__MSDOS__ && DJGPP > 1]: If _USE_LGN, set
__opendir_flags to __OPENDIR_PRESERVE_CASE. __opendir_flags to __OPENDIR_PRESERVE_CASE.

8
NEWS
View File

@ -1,6 +1,6 @@
GNU make NEWS -*-indented-text-*- GNU make NEWS -*-indented-text-*-
History of user-visible changes. History of user-visible changes.
13 Apr 1999 21 Jul 1999
Copyright (C) 1992,93,94,95,96,97,98,1999 Free Software Foundation, Inc. Copyright (C) 1992,93,94,95,96,97,98,1999 Free Software Foundation, Inc.
See the end for copying conditions. See the end for copying conditions.
@ -18,15 +18,15 @@ Version 3.78
causes the text provided to be printed as a warning message, but make causes the text provided to be printed as a warning message, but make
proceeds normally. proceeds normally.
* A new function, $(apply ...) is provided. This allows users to create * A new function, $(call ...) is provided. This allows users to create
their own parameterized macros and invoke them later. This their own parameterized macros and invoke them later. Original
implementation of this feature was provided by Han-Wen Nienhuys implementation of this feature was provided by Han-Wen Nienhuys
<hanwen@cs.uu.nl>. <hanwen@cs.uu.nl>.
* Make defines a new variable, .LIBPATTERNS. This variable controls how * Make defines a new variable, .LIBPATTERNS. This variable controls how
library dependency expansion (dependencies like ``-lfoo'') is performed. library dependency expansion (dependencies like ``-lfoo'') is performed.
* Make allows CRLF sequences as well as traditional LF, for * Make accepts CRLF sequences as well as traditional LF, for
compatibility with makefiles created on other operating systems. compatibility with makefiles created on other operating systems.
* Make accepts a new option: -R, or --no-builtin-variables. This option * Make accepts a new option: -R, or --no-builtin-variables. This option

View File

@ -123,8 +123,12 @@
with this defined. */ with this defined. */
/* #undef _POSIX_1_SOURCE */ /* #undef _POSIX_1_SOURCE */
#include <sys/types.h>
#include <ctype.h>
#include <signal.h>
/* Define if you need to in order for stat and other things to work. */ /* Define if you need to in order for stat and other things to work. */
/* #undef _POSIX_SOURCE */ #define _POSIX_C_SOURCE 1
/* Define as the return type of signal handlers (int or void). */ /* Define as the return type of signal handlers (int or void). */
#define RETSIGTYPE void #define RETSIGTYPE void
@ -321,6 +325,14 @@
#define INCLUDEDIR "sys$sysroot:[syslib]" #define INCLUDEDIR "sys$sysroot:[syslib]"
#define LIBDIR "sys$sysroot:[syslib]" #define LIBDIR "sys$sysroot:[syslib]"
/* Avoid broken RTL functions on OpenVMS */
#include <unixlib.h>
#define getopt gnu_getopt
#define optarg gnu_optarg
#define optopt gnu_optopt
#define optind gnu_optind
#define opterr gnu_opterr
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) #if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
#undef PARAMS #undef PARAMS
#define PARAMS(protos) protos #define PARAMS(protos) protos

2
dir.c
View File

@ -1061,7 +1061,9 @@ void
dir_setup_glob (gl) dir_setup_glob (gl)
glob_t *gl; glob_t *gl;
{ {
#ifndef VMS
extern int stat (); extern int stat ();
#endif
/* Bogus sunos4 compiler complains (!) about & before functions. */ /* Bogus sunos4 compiler complains (!) about & before functions. */
gl->gl_opendir = open_dirstream; gl->gl_opendir = open_dirstream;

View File

@ -3,9 +3,10 @@ $! Makefile.com - builds GNU Make for VMS
$! $!
$! P1 is non-empty if you want to link with the VAXCRTL library instead $! P1 is non-empty if you want to link with the VAXCRTL library instead
$! of the shareable executable $! of the shareable executable
$! P2 = DEBUG will build an image with debug information
$! $!
$! In case of problems with the install you might contact me at $! In case of problems with the install you might contact me at
$! zinser@decus.decus.de (preferred) or eurmpz@eur.sas.com $! zinser@decus.decus.de (preferred) or martin_zinser@exchange.de
$! $!
$! Look for the compiler used $! Look for the compiler used
$! $!
@ -18,8 +19,8 @@ $ else
$ ccopt = "/decc/prefix=all" $ ccopt = "/decc/prefix=all"
$ if f$trnlnm("SYS").eqs."" $ if f$trnlnm("SYS").eqs.""
$ then $ then
$ if f$trnlnm("DECC$LIBRARY_INCLUDE").nes."" $ if f$trnlnm("DECC$LIBRARY_INCLUDE").nes.""
$ then $ then
$ define sys decc$library_include: $ define sys decc$library_include:
$ else $ else
$ if f$search("SYS$COMMON:[DECC$LIB.REFERENCE]DECC$RTLDEF.DIR").nes."" - $ if f$search("SYS$COMMON:[DECC$LIB.REFERENCE]DECC$RTLDEF.DIR").nes."" -
@ -27,10 +28,20 @@ $ if f$search("SYS$COMMON:[DECC$LIB.REFERENCE]DECC$RTLDEF.DIR").nes."" -
$ if f$search("SYS$COMMON:[DECC$LIB.REFERENCE]SYS$STARLET_C.DIR").nes."" - $ if f$search("SYS$COMMON:[DECC$LIB.REFERENCE]SYS$STARLET_C.DIR").nes."" -
then lval = lval+"SYS$COMMON:[DECC$LIB.REFERENCE.SYS$STARLET_C]," then lval = lval+"SYS$COMMON:[DECC$LIB.REFERENCE.SYS$STARLET_C],"
$ lval=lval+"SYS$LIBRARY:" $ lval=lval+"SYS$LIBRARY:"
$ define sys 'lval $ define sys 'lval
$ endif $ endif
$ endif $ endif
$ endif $ endif
$!
$! Should we build a debug image
$!
$ if (p2.eqs."DEBUG")
$ then
$ ccopt = ccopt + "/noopt/debug"
$ lopt = "/debug"
$ else
$ lopt = ""
$ endif
$ filelist = "alloca ar arscan commands default dir expand file function implicit job main misc read remake remote-stub rule signame variable version vmsfunctions vmsify vpath [.glob]glob [.glob]fnmatch getopt1 getopt" $ filelist = "alloca ar arscan commands default dir expand file function implicit job main misc read remake remote-stub rule signame variable version vmsfunctions vmsify vpath [.glob]glob [.glob]fnmatch getopt1 getopt"
$ copy config.h-vms config.h $ copy config.h-vms config.h
$ n=0 $ n=0
@ -45,10 +56,10 @@ $ goto loop
$ linkit: $ linkit:
$ close optf $ close optf
$ if p1 .nes. "" then goto link_using_library $ if p1 .nes. "" then goto link_using_library
$ link/exe=make make.opt/opt $ link/exe=make make.opt/opt'lopt
$ exit $ exit
$ link_using_library: $ link_using_library:
$ link/exe=make make.opt/opt,sys$library:vaxcrtl/lib $ link/exe=make make.opt/opt,sys$library:vaxcrtl/lib'lopt
$! $!
$ compileit : subroutine $ compileit : subroutine
$ ploc = f$locate("]",p1) $ ploc = f$locate("]",p1)