Fixes for VMS from Hartmut Becker.
authorPaul Smith <psmith@gnu.org>
Fri, 10 Jun 2005 20:16:28 +0000 (20:16 +0000)
committerPaul Smith <psmith@gnu.org>
Fri, 10 Jun 2005 20:16:28 +0000 (20:16 +0000)
ChangeLog
job.c
makefile.vms
vmsjobs.c

index 6482a38..86966eb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2005-06-10  Paul D. Smith  <psmith@gnu.org>
+        
+        VMS build updates from Hartmut Becker <Hartmut.Becker@hp.com>:
+        
+        * vmsjobs.c [VMS]: Updates to compile on VMS: add some missing
+        headers; make vmsWaitForChildren() static; extern vmsify().
+        * job.c [VMS]: Move vmsWaitForChildren() prototype to be global.
+        Don't create child_execute_job() here (it's in vmsjobs.c).
+        * makefile.vms (job.obj) [VMS]: Add vmsjobs.c as a prerequisite.
+
 2005-06-09  Paul D. Smith  <psmith@gnu.org>
 
         * variable.c (push_new_variable_scope): File variables point
diff --git a/job.c b/job.c
index 8349445..b805eda 100644 (file)
--- a/job.c
+++ b/job.c
@@ -98,6 +98,7 @@ static int amiga_batch_file;
 # endif
 # include <starlet.h>
 # include <lib$routines.h>
+static void vmsWaitForChildren PARAMS ((int *));
 #endif
 
 #ifdef WINDOWS32
@@ -535,7 +536,6 @@ reap_children (int block, int err)
          if (any_local)
            {
 #ifdef VMS
-              static void vmsWaitForChildren PARAMS ((int *));
              vmsWaitForChildren (&status);
              pid = c->pid;
 #else
@@ -1905,7 +1905,7 @@ child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp)
   return pid;
 }
 
-#elif !defined (_AMIGA) && !defined (__MSDOS__)
+#elif !defined (_AMIGA) && !defined (__MSDOS__) && !defined (VMS)
 
 /* UNIX:
    Replace the current process with one executing the command in ARGV.
@@ -1926,7 +1926,7 @@ child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp)
   /* Run the command.  */
   exec_command (argv, envp);
 }
-#endif /* !AMIGA && !__MSDOS__ */
+#endif /* !AMIGA && !__MSDOS__ && !VMS */
 #endif /* !WINDOWS32 */
 \f
 #ifndef _AMIGA
index 6ed86c1..09c471a 100644 (file)
@@ -116,7 +116,7 @@ clean:
 
 # Automatically generated dependencies.
 commands.obj: commands.c make.h dep.h commands.h filedef.h variable.h job.h
-job.obj: job.c make.h commands.h job.h filedef.h variable.h
+job.obj: job.c vmsjobs.c make.h commands.h job.h filedef.h variable.h
 dir.obj: dir.c make.h
 file.obj: file.c make.h commands.h dep.h filedef.h variable.h
 misc.obj: misc.c make.h dep.h
index bc15276..0f658fe 100644 (file)
--- a/vmsjobs.c
+++ b/vmsjobs.c
@@ -4,10 +4,16 @@
    This file must be #included in job.c, as it accesses static functions.
 */
 
+#include <string.h>
+#include <descrip.h>
+#include <clidef.h>
+
+extern char *vmsify PARAMS ((char *name, int type));
+
 static int vms_jobsefnmask = 0;
 
 /* Wait for nchildren children to terminate */
-void
+static void
 vmsWaitForChildren(int *status)
 {
   while (1)
@@ -91,9 +97,6 @@ vms_handle_apos (char *p)
   return p;
 }
 
-#include <descrip.h>
-#include <clidef.h>
-
 /* This is called as an AST when a child process dies (it won't get
    interrupted by anything except a higher level AST).
 */
@@ -196,6 +199,7 @@ vmsHandleChildTerm(struct child *child)
 #define MAXCMDLEN 200
 
 /* local helpers to make ctrl+c and ctrl+y working, see below */
+#include <iodef.h>
 #include <libclidef.h>
 #include <ssdef.h>