Date: Tue, 02 Nov 2004 09:49:01 +0000 From: Bob Bishop <rb@gid.co.uk> To: Harti Brandt <harti@freebsd.org> Cc: arch@freebsd.org Subject: Re: Remote stuff in make Message-ID: <6.1.2.0.2.20041102094540.04a658e8@gid.co.uk> In-Reply-To: <20041102100958.S70286@beagle.kn.op.dlr.de> References: <20041102100958.S70286@beagle.kn.op.dlr.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, At 09:23 02/11/2004, Harti Brandt wrote: >Hi all, > >I want to remove the remote stuff from our make to make maintenance >easier. Remote make has been disfunctional from the original import on - >the necessary files have never been imported. The base system doesn't use >that feature (and has no need to), ports have their own remote built stuff >AFIK. If actually someone would need this - there is the pmake port that >really contains this stuff. > >If anybody has a good reason why we need to keep this (and the associated >patches to make it work + the willingness to support it in the future) - >please speak up now. For my money, kill it and don't think twice. However, there's a lot of related nonsense like .NOTPARALLEL and silent manipulation of the -B option which ought to be tidied up too. >Attached is a diff that just removes the #defines and #ifdefs. The MD5 of >the produced make is the same as before. > >harti > > >Index: job.c >=================================================================== >RCS file: /local/cvs/freebsd/src/usr.bin/make/job.c,v >retrieving revision 1.52 >diff -u -r1.52 job.c >--- job.c 23 Oct 2004 21:36:55 -0000 1.52 >+++ job.c 2 Nov 2004 09:19:51 -0000 >@@ -123,12 +123,8 @@ > #include "dir.h" > #include "job.h" > #include "pathnames.h" >-#ifdef REMOTE >-#include "rmt.h" >-# define STATIC >-#else >-# define STATIC static >-#endif >+ >+#define STATIC static > > /* > * error handling variables >@@ -239,14 +235,12 @@ > * running jobs equals the maximum allowed or > * (2) a job can only be run locally, but > * nLocal equals maxLocal */ >-#ifndef RMT_WILL_WATCH > #ifdef USE_KQUEUE > static int kqfd; /* File descriptor obtained by kqueue() */ > #else > static fd_set outputs; /* Set of descriptors of pipes > connected to > * the output channels of children */ > #endif >-#endif > > STATIC GNode *lastNode; /* The node for which output was > most recently > * produced. */ >@@ -254,15 +248,9 @@ > * job when it's not the most-recent job heard > * from */ > >-#ifdef REMOTE >-# define TARG_FMT "--- %s at %s ---\n" /* Default format */ >-# define MESSAGE(fp, gn) \ >- (void) fprintf(fp, targFmt, gn->name, gn->rem.hname); >-#else >-# define TARG_FMT "--- %s ---\n" /* Default format */ >-# define MESSAGE(fp, gn) \ >+#define TARG_FMT "--- %s ---\n" /* Default format */ >+#define MESSAGE(fp, gn) \ > (void) fprintf(fp, targFmt, gn->name); >-#endif > > /* > * When JobStart attempts to run a job remotely but can't, and isn't allowed >@@ -311,15 +299,8 @@ > static int JobPrintCommand(void *, void *); > static int JobSaveCommand(void *, void *); > static void JobClose(Job *); >-#ifdef REMOTE >-static int JobCmpRmtID(Job *, int); >-# ifdef RMT_WILL_WATCH >-static void JobLocalInput(int, Job *); >-# endif >-#else > static void JobFinish(Job *, int *); > static void JobExec(Job *, char **); >-#endif > static void JobMakeArgv(Job *, char **); > static void JobRestart(Job *); > static int JobStart(GNode *, int, Job *); >@@ -348,20 +329,13 @@ > { > Job *job = (Job *) jobp; > int signo = *(int *) signop; >-#ifdef RMT_WANTS_SIGNALS >- if (job->flags & JOB_REMOTE) { >- (void) Rmt_Signal(job, signo); >- } else { >- KILL(job->pid, signo); >- } >-#else >+ > /* > * Assume that sending the signal to job->pid will signal any remote > * job as well. > */ > DEBUGF(JOB, ("JobCondPassSig passing signal %d to child %d.\n", > signo, job->pid)); > KILL(job->pid, signo); >-#endif > return 0; > } > >@@ -454,27 +428,6 @@ > return *(int *) pid - ((Job *) job)->pid; > } > >-#ifdef REMOTE >-/*- >- *----------------------------------------------------------------------- >- * JobCmpRmtID -- >- * Compare the rmtID of the job with the given rmtID and return 0 if they >- * are equal. >- * >- * Results: >- * 0 if the rmtID's match >- * >- * Side Effects: >- * None. >- *----------------------------------------------------------------------- >- */ >-static int >-JobCmpRmtID(void *job, void *rmtID) >-{ >- return(*(int *) rmtID - *(int *) job->rmtID); >-} >-#endif >- > /*- > *----------------------------------------------------------------------- > * JobPrintCommand -- >@@ -702,9 +655,7 @@ > JobClose(Job *job) > { > if (usePipes) { >-#ifdef RMT_WILL_WATCH >- Rmt_Ignore(job->inPipe); >-#elif !defined(USE_KQUEUE) >+#if !defined(USE_KQUEUE) > FD_CLR(job->inPipe, &outputs); > #endif > if (job->outPipe != job->inPipe) { >@@ -759,18 +710,11 @@ > * cases, finish out the job's output before printing the exit > * status... > */ >-#ifdef REMOTE >- KILL(job->pid, SIGCONT); >-#endif > JobClose(job); > if (job->cmdFILE != NULL && job->cmdFILE != stdout) { > (void) fclose(job->cmdFILE); > } > done = TRUE; >-#ifdef REMOTE >- if (job->flags & JOB_REMOTE) >- Rmt_Done(job->rmtID, job->node); >-#endif > } else if (WIFEXITED(*status)) { > /* > * Deal with ignored errors in -B mode. We need to print a message >@@ -787,10 +731,6 @@ > * stuff? > */ > JobClose(job); >-#ifdef REMOTE >- if (job->flags & JOB_REMOTE) >- Rmt_Done(job->rmtID, job->node); >-#endif /* REMOTE */ > } else { > /* > * No need to close things down or anything. >@@ -851,10 +791,6 @@ > } > job->flags |= JOB_RESUME; > (void)Lst_AtEnd(stoppedJobs, (void *)job); >-#ifdef REMOTE >- if (job->flags & JOB_REMIGRATE) >- JobRestart(job); >-#endif > (void) fflush(out); > return; > } else if (WTERMSIG(*status) == SIGCONT) { >@@ -1120,27 +1056,6 @@ > } > return TRUE; > } >-#ifdef RMT_WILL_WATCH >-/*- >- *----------------------------------------------------------------------- >- * JobLocalInput -- >- * Handle a pipe becoming readable. Callback function for Rmt_Watch >- * >- * Results: >- * None >- * >- * Side Effects: >- * JobDoOutput is called. >- * >- *----------------------------------------------------------------------- >- */ >-/*ARGSUSED*/ >-static void >-JobLocalInput(int stream, Job *job) >-{ >- JobDoOutput(job, FALSE); >-} >-#endif /* RMT_WILL_WATCH */ > > /*- > *----------------------------------------------------------------------- >@@ -1186,12 +1101,6 @@ > lastNode = job->node; > } > >-#ifdef RMT_NO_EXEC >- if (job->flags & JOB_REMOTE) { >- goto jobExecFinish; >- } >-#endif /* RMT_NO_EXEC */ >- > if ((cpid = vfork()) == -1) { > Punt("Cannot fork"); > } else if (cpid == 0) { >@@ -1245,20 +1154,12 @@ > # endif > #endif /* USE_PGRP */ > >-#ifdef REMOTE >- if (job->flags & JOB_REMOTE) { >- Rmt_Exec(shellPath, argv, FALSE); >- } else >-#endif /* REMOTE */ >- (void) execv(shellPath, argv); >+ (void) execv(shellPath, argv); > > (void) write(STDERR_FILENO, "Could not execute shell\n", > sizeof("Could not execute shell")); > _exit(1); > } else { >-#ifdef REMOTE >- long omask = sigblock(sigmask(SIGCHLD)); >-#endif > job->pid = cpid; > > if (usePipes && (job->flags & JOB_FIRST) ) { >@@ -1272,9 +1173,7 @@ > #endif > job->curPos = 0; > >-#ifdef RMT_WILL_WATCH >- Rmt_Watch(job->inPipe, JobLocalInput, job); >-#elif defined(USE_KQUEUE) >+#if defined(USE_KQUEUE) > EV_SET(&kev[0], job->inPipe, EVFILT_READ, EV_ADD, 0, 0, job); > EV_SET(&kev[1], job->pid, EVFILT_PROC, EV_ADD | EV_ONESHOT, > NOTE_EXIT, 0, NULL); >@@ -1285,15 +1184,11 @@ > } > #else > FD_SET(job->inPipe, &outputs); >-#endif /* RMT_WILL_WATCH */ >+#endif /* USE_KQUEUE */ > } > > if (job->flags & JOB_REMOTE) { >-#ifndef REMOTE > job->rmtID = 0; >-#else >- job->rmtID = Rmt_LastID(job->pid); >-#endif /* REMOTE */ > } else { > nLocal += 1; > /* >@@ -1304,14 +1199,8 @@ > job->cmdFILE = NULL; > } > } >-#ifdef REMOTE >- (void) sigsetmask(omask); >-#endif > } > >-#ifdef RMT_NO_EXEC >-jobExecFinish: >-#endif > /* > * Now the job is actually running, add it to the table. > */ >@@ -1391,80 +1280,41 @@ > static void > JobRestart(Job *job) > { >-#ifdef REMOTE >- int host; >-#endif > > if (job->flags & JOB_REMIGRATE) { >- if ( >-#ifdef REMOTE >- verboseRemigrates || >-#endif >- DEBUG(JOB)) { >+ if (DEBUG(JOB)) { > (void) fprintf(stdout, "*** remigrating %x(%s)\n", > job->pid, job->node->name); > (void) fflush(stdout); > } > >-#ifdef REMOTE >- if (!Rmt_ReExport(job->pid, job->node, &host)) { >- if (verboseRemigrates || DEBUG(JOB)) { >- (void) fprintf(stdout, "*** couldn't migrate...\n"); >+ if (nLocal != maxLocal) { >+ /* >+ * Job cannot be remigrated, but there's room on the local >+ * machine, so resume the job and note that another >+ * local job has started. >+ */ >+ if (DEBUG(JOB)) { >+ (void) fprintf(stdout, "*** resuming on local machine\n"); > (void) fflush(stdout); > } >-#endif >- if (nLocal != maxLocal) { >- /* >- * Job cannot be remigrated, but there's room on the local >- * machine, so resume the job and note that another >- * local job has started. >- */ >- if ( >-#ifdef REMOTE >- verboseRemigrates || >-#endif >- DEBUG(JOB)) { >- (void) fprintf(stdout, "*** resuming on local machine\n"); >- (void) fflush(stdout); >- } >- KILL(job->pid, SIGCONT); >- nLocal +=1; >-#ifdef REMOTE >- job->flags &= ~(JOB_REMIGRATE|JOB_RESUME|JOB_REMOTE); >- job->flags |= JOB_CONTINUING; >-#else >- job->flags &= ~(JOB_REMIGRATE|JOB_RESUME); >-#endif >- } else { >- /* >- * Job cannot be restarted. Mark the table as full and >- * place the job back on the list of stopped jobs. >- */ >- if ( >-#ifdef REMOTE >- verboseRemigrates || >-#endif >- DEBUG(JOB)) { >- (void) fprintf(stdout, "*** holding\n"); >- (void) fflush(stdout); >- } >- (void)Lst_AtFront(stoppedJobs, (void *)job); >- jobFull = TRUE; >- DEBUGF(JOB, ("Job queue is full.\n")); >- return; >- } >-#ifdef REMOTE >+ KILL(job->pid, SIGCONT); >+ nLocal +=1; >+ job->flags &= ~(JOB_REMIGRATE|JOB_RESUME); > } else { > /* >- * Clear out the remigrate and resume flags. Set the continuing >- * flag so we know later on that the process isn't exiting just >- * because of a signal. >+ * Job cannot be restarted. Mark the table as full and >+ * place the job back on the list of stopped jobs. > */ >- job->flags &= ~(JOB_REMIGRATE|JOB_RESUME); >- job->flags |= JOB_CONTINUING; >- job->rmtID = host; >+ if (DEBUG(JOB)) { >+ (void) fprintf(stdout, "*** holding\n"); >+ (void) fflush(stdout); >+ } >+ (void)Lst_AtFront(stoppedJobs, (void *)job); >+ jobFull = TRUE; >+ DEBUGF(JOB, ("Job queue is full.\n")); >+ return; > } >-#endif > > (void)Lst_AtEnd(jobs, (void *)job); > nJobs += 1; >@@ -1486,43 +1336,23 @@ > JobMakeArgv(job, argv); > > DEBUGF(JOB, ("Restarting %s...", job->node->name)); >-#ifdef REMOTE >- if ((job->node->type&OP_NOEXPORT) || >- (nLocal < maxLocal && runLocalFirst) >-# ifdef RMT_NO_EXEC >- || !Rmt_Export(shellPath, argv, job) >-# else >- || !Rmt_Begin(shellPath, argv, job->node) >-# endif >-#endif >- { >- if (((nLocal >= maxLocal) && !(job->flags & JOB_SPECIAL))) { >- /* >- * Can't be exported and not allowed to run locally -- put it >- * back on the hold queue and mark the table full >- */ >- DEBUGF(JOB, ("holding\n")); >- (void)Lst_AtFront(stoppedJobs, (void *)job); >- jobFull = TRUE; >- DEBUGF(JOB, ("Job queue is full.\n")); >- return; >- } else { >- /* >- * Job may be run locally. >- */ >- DEBUGF(JOB, ("running locally\n")); >- job->flags &= ~JOB_REMOTE; >- } >- } >-#ifdef REMOTE >- else { >+ if (((nLocal >= maxLocal) && !(job->flags & JOB_SPECIAL))) { >+ /* >+ * Can't be exported and not allowed to run locally -- put it >+ * back on the hold queue and mark the table full >+ */ >+ DEBUGF(JOB, ("holding\n")); >+ (void)Lst_AtFront(stoppedJobs, (void *)job); >+ jobFull = TRUE; >+ DEBUGF(JOB, ("Job queue is full.\n")); >+ return; >+ } else { > /* >- * Can be exported. Hooray! >+ * Job may be run locally. > */ >- DEBUGF(JOB, ("exporting\n")); >- job->flags |= JOB_REMOTE; >+ DEBUGF(JOB, ("running locally\n")); >+ job->flags &= ~JOB_REMOTE; > } >-#endif > JobExec(job, argv); > } else { > /* >@@ -1532,14 +1362,8 @@ > DEBUGF(JOB, ("Resuming %s...", job->node->name)); > if (((job->flags & JOB_REMOTE) || > (nLocal < maxLocal) || >-#ifdef REMOTE >- (((job->flags & JOB_SPECIAL) && >- (job->node->type & OP_NOEXPORT)) && >- (maxLocal == 0))) && >-#else > ((job->flags & JOB_SPECIAL) && > (maxLocal == 0))) && >-#endif > (nJobs != maxJobs)) > { > /* >@@ -1552,12 +1376,7 @@ > Boolean error; > int status; > >-#ifdef RMT_WANTS_SIGNALS >- if (job->flags & JOB_REMOTE) { >- error = !Rmt_Signal(job, SIGCONT); >- } else >-#endif /* RMT_WANTS_SIGNALS */ >- error = (KILL(job->pid, SIGCONT) != 0); >+ error = (KILL(job->pid, SIGCONT) != 0); > > if (!error) { > /* >@@ -1839,27 +1658,11 @@ > } > } > >-#ifdef REMOTE >- if (!(gn->type & OP_NOEXPORT) && !(runLocalFirst && nLocal < maxLocal)) { >-#ifdef RMT_NO_EXEC >- local = !Rmt_Export(shellPath, argv, job); >-#else >- local = !Rmt_Begin(shellPath, argv, job->node); >-#endif /* RMT_NO_EXEC */ >- if (!local) { >- job->flags |= JOB_REMOTE; >- } >- } else >-#endif >- local = TRUE; >+ local = TRUE; > > if (local && (((nLocal >= maxLocal) && > !(job->flags & JOB_SPECIAL) && >-#ifdef REMOTE >- (!(gn->type & OP_NOEXPORT) || (maxLocal != 0)) >-#else > (maxLocal != 0) >-#endif > ))) > { > /* >@@ -2192,14 +1995,7 @@ > nJobs -= 1; > DEBUGF(JOB, ("Job queue is no longer full.\n")); > jobFull = FALSE; >-#ifdef REMOTE >- if (!(job->flags & JOB_REMOTE)) { >- DEBUGF(JOB, ("Job queue has one fewer local process.\n")); >- nLocal -= 1; >- } >-#else > nLocal -= 1; >-#endif > } > > JobFinish(job, &status); >@@ -2236,34 +2032,9 @@ > LstNode ln; > Job *job; > #endif >-#ifdef RMT_WILL_WATCH >- int pnJobs; /* Previous nJobs */ >-#endif > > (void) fflush(stdout); >-#ifdef RMT_WILL_WATCH >- pnJobs = nJobs; > >- /* >- * It is possible for us to be called with nJobs equal to 0. This happens >- * if all the jobs finish and a job that is stopped cannot be run >- * locally (eg if maxLocal is 0) and cannot be exported. The job will >- * be placed back on the stoppedJobs queue, Job_Empty() will return >false, >- * Make_Run will call us again when there's nothing for which to wait. >- * nJobs never changes, so we loop forever. Hence the check. It could >- * be argued that we should sleep for a bit so as not to swamp the >- * exportation system with requests. Perhaps we should. >- * >- * NOTE: IT IS THE RESPONSIBILITY OF Rmt_Wait TO CALL Job_CatchChildren >- * IN A TIMELY FASHION TO CATCH ANY LOCALLY RUNNING JOBS THAT EXIT. >- * It may use the variable nLocal to determine if it needs to call >- * Job_CatchChildren (if nLocal is 0, there's nothing for which to >- * wait...) >- */ >- while (nJobs != 0 && pnJobs == nJobs) { >- Rmt_Wait(); >- } >-#else > if (usePipes) { > #ifdef USE_KQUEUE > if ((nfds = kevent(kqfd, NULL, 0, kev, KEV_SIZE, NULL)) == -1) { >@@ -2309,7 +2080,6 @@ > } > #endif /* !USE_KQUEUE */ > } >-#endif /* RMT_WILL_WATCH */ > } > > /*- >@@ -2379,11 +2149,7 @@ > > lastNode = NULL; > >- if (maxJobs == 1 || beVerbose == 0 >-#ifdef REMOTE >- || noMessages >-#endif >- ) { >+ if (maxJobs == 1 || beVerbose == 0) { > /* > * If only one job can run at a time, there's no need for a banner, > * no is there? >@@ -2423,7 +2189,7 @@ > * we're giving each job its own process group (since then it won't get > * signals from the terminal driver as we own the terminal) > */ >-#if defined(RMT_WANTS_SIGNALS) || defined(USE_PGRP) >+#if defined(USE_PGRP) > if (signal(SIGTSTP, SIG_IGN) != SIG_IGN) { > (void) signal(SIGTSTP, JobPassSig); > } >@@ -2450,9 +2216,7 @@ > JobStart(begin, JOB_SPECIAL, (Job *)0); > while (nJobs) { > Job_CatchOutput(); >-#ifndef RMT_WILL_WATCH > Job_CatchChildren(!usePipes); >-#endif /* RMT_WILL_WATCH */ > } > } > postCommands = Targ_FindNode(".END", TARG_CREATE); >@@ -2757,80 +2521,13 @@ > Error("*** %s removed", file); > } > } >-#ifdef RMT_WANTS_SIGNALS >- if (job->flags & JOB_REMOTE) { >- /* >- * If job is remote, let the Rmt module do the killing. >- */ >- if (!Rmt_Signal(job, signo)) { >- /* >- * If couldn't kill the thing, finish it out now with an >- * error code, since no exit report will come in likely. >- */ >- int status; >- >- status.w_status = 0; >- status.w_retcode = 1; >- JobFinish(job, &status); >- } >- } else if (job->pid) { >- KILL(job->pid, signo); >- } >-#else > if (job->pid) { > DEBUGF(JOB, ("JobInterrupt passing signal to child %d.\n", > job->pid)); > KILL(job->pid, signo); > } >-#endif /* RMT_WANTS_SIGNALS */ > } > >-#ifdef REMOTE >- (void)Lst_Open(stoppedJobs); >- while ((ln = Lst_Next(stoppedJobs)) != NULL) { >- job = (Job *) Lst_Datum(ln); >- >- if (job->flags & JOB_RESTART) { >- DEBUGF(JOB, "JobInterrupt skipping job on stopped queue" >- "-- it was waiting to be restarted.\n"); >- continue; >- } >- if (!Targ_Precious(job->node)) { >- char *file = (job->node->path == NULL ? >- job->node->name : >- job->node->path); >- if (eunlink(file) == 0) { >- Error("*** %s removed", file); >- } >- } >- /* >- * Resume the thing so it will take the signal. >- */ >- DEBUGF(JOB, ("JobInterrupt passing CONT to stopped child %d.\n", >job->pid)); >- KILL(job->pid, SIGCONT); >-#ifdef RMT_WANTS_SIGNALS >- if (job->flags & JOB_REMOTE) { >- /* >- * If job is remote, let the Rmt module do the killing. >- */ >- if (!Rmt_Signal(job, SIGINT)) { >- /* >- * If couldn't kill the thing, finish it out now with an >- * error code, since no exit report will come in likely. >- */ >- int status; >- status.w_status = 0; >- status.w_retcode = 1; >- JobFinish(job, &status); >- } >- } else if (job->pid) { >- DEBUGF(JOB, "JobInterrupt passing interrupt to stopped child >%d.\n", >- job->pid); >- KILL(job->pid, SIGINT); >- } >-#endif /* RMT_WANTS_SIGNALS */ >- } >-#endif > Lst_Close(stoppedJobs); > > if (runINTERRUPT && !touchFlag) { >@@ -2841,9 +2538,7 @@ > JobStart(interrupt, JOB_IGNDOTS, (Job *)0); > while (nJobs) { > Job_CatchOutput(); >-#ifndef RMT_WILL_WATCH > Job_CatchChildren(!usePipes); >-#endif /* RMT_WILL_WATCH */ > } > } > } >@@ -2870,9 +2565,7 @@ > > while (nJobs) { > Job_CatchOutput(); >-#ifndef RMT_WILL_WATCH > Job_CatchChildren(!usePipes); >-#endif /* RMT_WILL_WATCH */ > } > } > } >@@ -2899,9 +2592,7 @@ > aborting = ABORT_WAIT; > while (nJobs != 0) { > Job_CatchOutput(); >-#ifndef RMT_WILL_WATCH > Job_CatchChildren(!usePipes); >-#endif /* RMT_WILL_WATCH */ > } > aborting = 0; > } >@@ -2939,18 +2630,8 @@ > * kill the child process with increasingly drastic signals > to make > * darn sure it's dead. > */ >-#ifdef RMT_WANTS_SIGNALS >- if (job->flags & JOB_REMOTE) { >- Rmt_Signal(job, SIGINT); >- Rmt_Signal(job, SIGKILL); >- } else { >- KILL(job->pid, SIGINT); >- KILL(job->pid, SIGKILL); >- } >-#else > KILL(job->pid, SIGINT); > KILL(job->pid, SIGKILL); >-#endif /* RMT_WANTS_SIGNALS */ > } > } > >@@ -2961,51 +2642,6 @@ > continue; > } > >-#ifdef REMOTE >-/*- >- *----------------------------------------------------------------------- >- * JobFlagForMigration -- >- * Handle the eviction of a child. Called from RmtStatusChange. >- * Flags the child as remigratable and then suspends it. Takes >- * the ID of the host we used, for matching children. >- * >- * Results: >- * none. >- * >- * Side Effects: >- * The job descriptor is flagged for remigration. >- * >- *----------------------------------------------------------------------- >- */ >-void >-JobFlagForMigration(int hostID) >-{ >- Job *job; /* job descriptor for dead child */ >- LstNode jnode; /* list element for finding job */ >- >- DEBUGF(JOB, ("JobFlagForMigration(%d) called.\n", hostID)); >- jnode = Lst_Find(jobs, (void *)hostID, JobCmpRmtID); >- >- if (jnode == NULL) { >- jnode = Lst_Find(stoppedJobs, (void *)hostID, JobCmpRmtID); >- if (jnode == NULL) { >- if (DEBUG(JOB)) { >- Error("Evicting host(%d) not in table", hostID); >- } >- return; >- } >- } >- job = (Job *) Lst_Datum(jnode); >- >- DEBUGF(JOB, ("JobFlagForMigration(%d) found job '%s'.\n", hostID, >job->node->name)); >- >- KILL(job->pid, SIGSTOP); >- >- job->flags |= JOB_REMIGRATE; >-} >- >-#endif >- > /*- > *----------------------------------------------------------------------- > * JobRestartJobs -- >Index: job.h >=================================================================== >RCS file: /local/cvs/freebsd/src/usr.bin/make/job.h,v >retrieving revision 1.22 >diff -u -r1.22 job.h >--- job.h 23 Oct 2004 21:34:41 -0000 1.22 >+++ job.h 2 Nov 2004 09:20:39 -0000 >@@ -207,28 +207,6 @@ > > extern char *shellPath; > extern char *shellName; >- >-/* >- * If REMOTE is defined then these things need exposed, otherwise they are >- * static to job.c! >- */ >-#ifdef REMOTE >-extern char *targFmt; /* Format string for banner that separates >- * output from multiple jobs. Contains a >- * single %s where the name of the node being >- * made should be put. */ >-extern GNode *lastNode; /* Last node for which a banner was printed. >- * If Rmt module finds it necessary to print >- * a banner, it should set this to the node >- * for which the banner was printed */ >-extern int nJobs; /* Number of jobs running (local and >remote) */ >-extern int nLocal; /* Number of jobs running locally */ >-extern Lst jobs; /* List of active job descriptors */ >-extern Lst stoppedJobs; /* List of jobs that are stopped or didn't >- * quite get started */ >-extern Boolean jobFull; /* Non-zero if no more jobs should/will >start*/ >-#endif >- > extern int maxJobs; /* Number of jobs that may run */ > > >Index: main.c >=================================================================== >RCS file: /local/cvs/freebsd/src/usr.bin/make/main.c,v >retrieving revision 1.92 >diff -u -r1.92 main.c >--- main.c 23 Oct 2004 21:34:41 -0000 1.92 >+++ main.c 2 Nov 2004 09:19:51 -0000 >@@ -168,11 +168,7 @@ > int c; > > optind = 1; /* since we're called more than once */ >-#ifdef REMOTE >-# define OPTFLAGS "BC:D:E:I:L:PSV:Xd:ef:ij:km:nqrstv" >-#else >-# define OPTFLAGS "BC:D:E:I:PSV:Xd:ef:ij:km:nqrstv" >-#endif >+#define OPTFLAGS "BC:D:E:I:PSV:Xd:ef:ij:km:nqrstv" > rearg: while((c = getopt(argc, argv, OPTFLAGS)) != -1) { > switch(c) { > case 'C': >@@ -198,20 +194,6 @@ > compatMake = TRUE; > MFLAGS_append("-B", NULL); > break; >-#ifdef REMOTE >- case 'L': { >- char *endptr; >- >- maxLocal = strtol(optarg, &endptr, 10); >- if (maxLocal < 0 || *endptr != '\0') { >- warnx("illegal number, -L argument -- %s", >- optarg); >- usage(); >- } >- MFLAGS_append("-L", optarg); >- break; >- } >-#endif > case 'P': > usePipes = FALSE; > MFLAGS_append("-P", NULL); >@@ -302,9 +284,7 @@ > optarg); > usage(); > } >-#ifndef REMOTE > maxLocal = maxJobs; >-#endif > MFLAGS_append("-j", optarg); > break; > } >@@ -599,11 +579,7 @@ > jobsRunning = FALSE; > > maxLocal = DEFMAXLOCAL; /* Set default local max > concurrency */ >-#ifdef REMOTE >- maxJobs = DEFMAXJOBS; /* Set default max concurrency */ >-#else > maxJobs = maxLocal; >-#endif > forceJobs = FALSE; /* No -j flag */ > compatMake = FALSE; /* No compat mode */ > >_______________________________________________ >freebsd-arch@freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-arch >To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org" -- Bob Bishop +44 (0)118 940 1243 rb@gid.co.uk fax +44 (0)118 940 1295
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6.1.2.0.2.20041102094540.04a658e8>