|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
|
| #
1.85 |
|
06-Jul-2025 |
rillig |
make: clean up
|
| #
1.84 |
|
22-Apr-2025 |
rillig |
make: clean up
Replace 'unsigned int' with simply 'unsigned'.
In compat.c, skipping whitespace is not needed, as the loop above already skips it.
In job.c, remove the unused header <sys/file.h>.
Inline the TMPPAT macro, as it is only needed in a single place.
|
| #
1.83 |
|
22-Apr-2025 |
rillig |
make: group the code for handling the job token pool
|
| #
1.82 |
|
22-Apr-2025 |
rillig |
make: move struct Job from job.h to job.c
The content of this struct is an implementation detail, and other parts of make only need to access very few parts of it.
|
| #
1.81 |
|
03-Jan-2025 |
rillig |
make: clean up job handling
|
| #
1.80 |
|
07-Jul-2024 |
rillig |
make: only generate code for cleanup functions in CLEANUP mode
|
|
Revision tags: perseant-exfatfs-base-20240630 perseant-exfatfs-base
|
| #
1.79 |
|
28-Jun-2024 |
rillig |
branches: 1.79.2; make: reduce usage of the UNCONST hack
|
| #
1.78 |
|
19-Dec-2023 |
rillig |
make: clean up comments
No binary change, except for line numbers in assertions.
|
|
Revision tags: netbsd-10-1-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
|
| #
1.77 |
|
15-Dec-2021 |
rillig |
make: format comments according to /usr/share/misc/style
Assisted by indent(1), with manual corrections due to its many remaining bugs.
No functional change.
|
| #
1.76 |
|
15-Dec-2021 |
rillig |
make: use consistent indentation for statements and continuations
No binary change, except for line numbers in assertions in suff.c.
|
| #
1.75 |
|
15-Dec-2021 |
rillig |
make: remove redundant comments for multiple-inclusion guards
|
| #
1.74 |
|
15-Dec-2021 |
rillig |
make: mark several functions whose result must be used
Suggested by sjg, to catch more bugs like the memory leak in cond.c 1.303 from 2021-12-13.
No binary change.
|
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
| #
1.73 |
|
03-Apr-2021 |
rillig |
make: use C99 bool type instead of defining its own
No functional change.
|
| #
1.72 |
|
05-Feb-2021 |
sjg |
Avoid strdup in mkTempFile
Require caller to pass a buffer and size if they want the tempfile not unlinked.
Add Job_TempFile to handle blocking signals around call to mkTempFile, so that meta_open_filemon can use it in jobs mode.
|
| #
1.71 |
|
30-Dec-2020 |
rillig |
make(1): format multi-line comments
|
| #
1.70 |
|
15-Dec-2020 |
rillig |
make(1): indent job.h with tabs instead of spaces
|
| #
1.69 |
|
12-Dec-2020 |
rillig |
make(1): move Job.xtraced to ShellWriter
This flag was placed wrong in the Job since it is only necessary as long as the shell commands are written to the shell file.
Resetting it in JobStart and JobExec was completely misguided since that is far away from writing the shell commands; this should have been done in JobPrintCommands instead.
The status of this flag doesn't need to be printed in debugging mode since it is controlled by a single command line option (-dx) and does not interact with all the other switches.
|
| #
1.68 |
|
12-Dec-2020 |
rillig |
make(1): in jobs mode, extract writing of shell commands
Right now, the test sh-flags.mk demonstrates many variants to configure echoing of the shell commands (-s, .SILENT, '@'), error handling (-i, .IGNORE, '-') and whether the commands are run (-n, -N, .MAKE, .RECURSIVE, '+').
Even more variants are possible by configuring the shell to have error control. None of the built-in shell definitions has error control, so it is unlikely that anybody uses them, but who knows.
Being able to configure these details at 3 levels is good, but what makes all this really hard to understand is that some of these switches interact in non-obvious ways. For example, in jobs mode, a single command can change job->ignerr (in JobPrintSpecialsEchoCtl), which will affect all further commands of that job.
The goal of this refactoring is to make the code easier to understand by making the switches on the job level constant and by moving all modifications to them to the ShellWriter.
|
| #
1.67 |
|
10-Dec-2020 |
rillig |
make(1): negate Job.silent to echo
This gets rid of a few explicit negations and an implicit negation in the variable name.
|
| #
1.66 |
|
10-Dec-2020 |
rillig |
make(1): unpack struct JobFlags
The job flags are only used individually.
|
| #
1.65 |
|
10-Dec-2020 |
rillig |
make(1): split JobFlags into separate fields
Having all these flags in a single bitmask makes it harder to see where exactly they can possibly be used since their state could also be modified using the unsuspicious job->flags = 0. Using individual names just leaves the single memset, and that is only used during initialization.
|
| #
1.64 |
|
29-Nov-2020 |
rillig |
make(1): use space instead of tab for preprocessor directives
|
| #
1.63 |
|
14-Nov-2020 |
rillig |
make(1): fix grammar: setup -> set up
|
| #
1.62 |
|
14-Nov-2020 |
rillig |
make(1): rename JobState to JobStatus
The status is only part of the whole state of a job.
|
| #
1.61 |
|
08-Nov-2020 |
rillig |
make(1): remove unused JOB_IGNDOTS
It had been used in 1993 at least, don't know when it was finally removed.
|
| #
1.60 |
|
07-Nov-2020 |
rillig |
make(1): fix type of Job.suspended
|
| #
1.59 |
|
07-Nov-2020 |
rillig |
make(1): clean up JobStart
Initialize the fields in declaration order. Initialize Job.flags in a single assignment.
|
| #
1.58 |
|
26-Oct-2020 |
rillig |
make(1): group the command line options and arguments
By having a single struct that holds all command line options and arguments, it is easy to see in the code when such a command line argument is modified. It also cleans up the namespace since the command line options don't follow a common naming style. Having them in a struct also means that there is a single place for putting the documentation, not two as before.
The struct also suggests to extract the initialization code out of main, which is still too large, having more than 400 lines of code and covering far too many topics.
|
| #
1.57 |
|
23-Oct-2020 |
rillig |
make(1): convert JobState and JobFlags to enum types
Both GCC and Clang complained when JobFindPid had its parameter "status" as an int. Strangely both compilers complained about a comparison between unsigned and signed int, even though enums are defined to be int, not unsigned.
|
| #
1.56 |
|
19-Oct-2020 |
rillig |
make(1): move struct Shell from job.h to job.c
This type is only needed in job.c.
|
| #
1.55 |
|
05-Oct-2020 |
rillig |
make(1): prepare job.c, main.c, parse.c, suff.c for WARNS=6
In job.c, GCC 5 complains about the macro FILENO that it has type unsigned int, which is then passed as the argument of dup2, which expects a simple int. Maybe this workaround from 1995 is not necessary anymore, or maybe it is but can be restricted to the few affected platforms.
This leaves meta.c and the filemon files to be converted. I didn't do them since they are not well covered by the unit tests.
|
| #
1.54 |
|
28-Sep-2020 |
rillig |
make(1): format job.h consistently
|
| #
1.53 |
|
28-Sep-2020 |
rillig |
make(1): split Job.jobPipe into 2 separate fields
Just because these file descriptors have to be in an array when they are created is not reason enough to keep this array and a few access macros in the Job struct. It's better to have separate fields, as they can be documented independently.
|
| #
1.52 |
|
27-Sep-2020 |
rillig |
make(1): rewrite documentation of Job
The comment above a struct is supposed to give a high-level overview. The previous comment didn't do that but instead listed the struct fields in declaration order in a numbered list, which was not helpful.
|
| #
1.51 |
|
27-Sep-2020 |
rillig |
make(1): normalize whitespace in source code
There is no more space tab. Either only tabs or only spaces or tabs followed by spaces, but not spaces followed by tabs.
|
| #
1.50 |
|
27-Sep-2020 |
rillig |
make(1): remove nonexistent function from header
|
| #
1.49 |
|
27-Sep-2020 |
rillig |
make(1): fix type of Shell.noPLen
|
| #
1.48 |
|
21-Sep-2020 |
rillig |
make(1): add specific typedefs for lists
These typedefs are only intended to help human readers, they do not provide any type-safety. They also make the pointers explicit, which had been hidden before by the typedef for Lst and LstNode. Typing a few '*' is less work than finding out which of the many types are pointers and which aren't.
In meta.c, the variable "ln" served two completely different purposes, which have been split again. Register allocation is the job of the compiler, not of the human source code reader.
|
| #
1.47 |
|
29-Aug-2020 |
rillig |
make(1): remove ReturnStatus, SUCCESS and FAILURE
These are used in so few places now that it is easier to use a simple Boolean for them.
|
| #
1.46 |
|
27-Aug-2020 |
rillig |
make(1): remove unused declarations from job.h
|
| #
1.45 |
|
22-Aug-2020 |
rillig |
make(1): remove form feeds in the code
|
| #
1.44 |
|
13-Aug-2020 |
rillig |
make(1): follow naming conventions for multiple-inclusion guards
This avoids undefined behavior.
|
| #
1.43 |
|
03-Jul-2020 |
rillig |
make(1): remove trailing whitespace
|
|
Revision tags: netbsd-8-3-RELEASE netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 netbsd-7-2-RELEASE pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base tls-maxphys-base
|
| #
1.42 |
|
05-Jul-2013 |
sjg |
If commandShell hasErrCtl is true, set shellErrFlag for use by CompatRunCommand() so that behavior in jobs and compat mode remains consistent.
|
|
Revision tags: agc-symver-base
|
| #
1.41 |
|
05-Mar-2013 |
christos |
Add a .STALE special target that gets invoked when dependency files contain stail entries.
|
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 dholland-make-base netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
|
| #
1.40 |
|
13-Sep-2010 |
sjg |
branches: 1.40.6; 1.40.12; Add meta.c which implements "meta" mode for make. In this mode, a .meta file is created for each target, capturing the expanded commands used, any command output, and if filemon(9) is available, a record of system calls which are of interest. Not enabled unless USE_META=yes is set when building make. Also, if FILEMON_H exists, meta.c will be compiled to use filemon(9).
|
|
Revision tags: matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
|
| #
1.39 |
|
11-Apr-2009 |
apb |
Honour the TMPDIR environment variable instead of always using /tmp as a place to store temporary files.
|
| #
1.38 |
|
13-Dec-2008 |
dsl |
branches: 1.38.2; Use NULL instead of -1 cast to the relavant type (usually via NIL). This was a suggestion from christos - so blame him if there is a deep reason for using -1 :-)
|
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
|
| #
1.37 |
|
15-Feb-2008 |
christos |
back all changes out until I fix it properly.
|
|
Revision tags: christos-broken
|
| #
1.36 |
|
15-Feb-2008 |
dholland |
fix typo in comment
|
| #
1.35 |
|
14-Feb-2008 |
christos |
- use pid_t/size_t as appropriate instead of int. - use %ld to print pids. - fix a bit of lint. - WARNS=4
|
|
Revision tags: cube-autoconf-base matt-armv6-base
|
| #
1.34 |
|
01-Oct-2007 |
sjg |
Add the ability to tweak the token output before targets in job mode. Eg. .MAKE.JOB.PREFIX=${.newline}---${.MAKE:T}[${.MAKE.PID}] would produce ---make[1234] target ---
|
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 matt-mips64-base wrstuden-fixsa-base netbsd-4-base
|
| #
1.33 |
|
11-Oct-2006 |
dsl |
branches: 1.33.8; There is no need to resize the pollfd array, it can only ever have 2+maxJobs entries, so allocate at startup. Use an 'int jobPipe[2]' within the job structure, and create pipes directly into it. Common up the code that creates all the pipes - making them all non-block on the read side in the process. Call Job_CatchChildren() directly from Job_CatchOutput() so that it only gets called when a child actually exits. NB: Something causes a 'pregnant pause' if (for example) you call 'nbmake obj' in src/tools. Introduced between netbsd 3 and 4.
|
| #
1.32 |
|
09-Oct-2006 |
dsl |
Rip out the code for the undocumented -P (don't use pipes for command output) option. I'm sure it is baggage from the past.
|
| #
1.31 |
|
09-Oct-2006 |
dsl |
Instead of trying to report all the 'job suspended' and 'job resumed' messages whan make itself is suspended (ie by ^Z) before make actually suspends, supress the messages during this sequence. This means we don't care that they would be output after the suspend and we can stop attempting to reap child status from withing the signal handler (which doesn't work for recursive parallel makes). The code simplification means that we can remove much of the code that blocked signals - since the signal handlers (expect that for ^C and friends) now do almost no work.
|
| #
1.30 |
|
23-Sep-2006 |
dsl |
Complete revamp of the way make handles job control signals. - Send each type of signal to its own handler. - Only call JobFinish when a process exits, in particular don't 'fake up' 'exitstatus' for jobs being continued, nor call it for suspends. - When a job is stopped, use an entire variable to remember the fact, so we know we need to send a SIGCONT. Don't change any other state. - In order to report '*** [job3] Suspended' before we suspend ourselves we have to call waitpid() from the signal handler - where we don't want to process job termination events. Save the exit status and process later. The code now handles: - jobs that suspend themselves - jobs exiting while suspended - jobs that don't actually suspend at all Hoewever it still does printfs() from the signal handler, and I haven't yet stopped it thrashing the signal mask.
|
| #
1.29 |
|
22-Sep-2006 |
dsl |
Replace the two lists 'job_list' (previously 'jobs') and 'stoppedJobs' with a table that is malloced with 'maxJobs' entries. Add a 'job_state' field to the Job type that exactly follows which of the old lists the job was on (or not). Change all the code that scanned the lists to scan the array. No logic changes in this commit. (Soon we'll no longer need to lock out signals for the changes to job statuses that are done from signal handlers now that there is no linked list.)
|
|
Revision tags: abandoned-netbsd-4-base
|
| #
1.28 |
|
29-Jun-2006 |
rillig |
Fixed the bug reported in PR 33866, which is that the :Q operator does not handle newlines correctly. Ok'ed by christos.
|
|
Revision tags: chap-midi-nbase chap-midi-base
|
| #
1.27 |
|
31-Mar-2006 |
dsl |
There is no need to count jobs and job tokens. If we don't create the job pipe, use the '-j n' option to limit the number of tokens we will remove from the pipe.
|
| #
1.26 |
|
13-Mar-2006 |
dsl |
JOB_FIRST is always set (since we only execute the shell once for every target). Nuke it.
|
| #
1.25 |
|
11-Mar-2006 |
dsl |
Remove most of the code seemed to be there to support 'remote jobs'. It isn't clear that it ever worked, if it did it has almost certainly bitrotted in the last 12 years. I'm not even sure all the required components were present. I suspect it was written to attempt to use a 'farm' of diskless sun3s. In any case the apparant random assignment fo jobs to other systems doesn't actually seem like a good idea! Things like 'distcc' han be used to help slow systems run native builds. Removing this code also simplifies make, and should let me speed up some of its processing - without worrying about bitrotting it further.
|
| #
1.24 |
|
22-Jan-2006 |
dsl |
Make .NOTPARALLEL stop the job engine issuing more than one token (instead of trying to de-jobify the make. You can now put .NOTPARALLEL in a submake of a recursive make (where it is using a job-token pipe from the outer make and have it only run a single job. You can also specify .NOTPARRALEL in the root makefile of a large recursive make and have the submakes run multiple commands. Add some diagnostics printfs (enabled with -dp) to the parser.
|
| #
1.23 |
|
04-Jan-2006 |
dsl |
Expunge last references to jobTokensFree
|
| #
1.22 |
|
04-Jan-2006 |
dsl |
When a parallel make job completes, always put the job token back into the job_pipe and collect another one for the next job. If we are aborting, remove all the 'normal' job tokens and add an 'error' one. If we get an 'error' token, remove any other tokens, re-insert the error token and exit (with error 'cos that is easier). Add the current pid to some of the DEBUG(JOB) traces. Combined effect is that parallel makes actually stop some fairly shortly after an error, rather than running on long enough to fill the scrollback.
|
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-3-base netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
| #
1.21 |
|
20-Dec-2003 |
jmc |
Fixes for PR#18573 (make -j not stopping correctly on error). Using -e in sh/ksh to stop on error doesn't work with grouped commands. At least for any SUSE compliant sh(1). Instead, extend the Shell struct and add errOut which provides a template to use to check error status from commands.
|
| #
1.20 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22365, verified by myself.
|
| #
1.19 |
|
01-Aug-2003 |
sjg |
Allow .SHELL: to control the shell used by compat mode too. Add a shell spec for ksh - a nice portable posix shell. Document .SHELL:
|
| #
1.18 |
|
14-Jul-2003 |
christos |
Pass WARNS=3
|
|
Revision tags: fvdl_fs64_base
|
| #
1.17 |
|
16-Nov-2002 |
gson |
Fixed race condition that would cause make -j to pause for five seconds if a SIGCHLD arrived while make was not blocked in poll(), by making the SIGCHLD handler write to a pipe included in the poll. Avoided the need to implement a duplicate fix for the USE_SELECT case by emulating poll() in terms of select() when USE_SELECT is defined. Fixes bin/18895.
|
| #
1.16 |
|
15-Jun-2002 |
wiz |
Remove !__STDC__ stuff, de-__P(), ANSIfy, and de-register.
|
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
| #
1.15 |
|
01-Jun-2001 |
sjg |
A number of semi-related changes. 1. make -dx turns on DEBUG_SHELL which causes sh -x to be used where possible. 2. PrintOnError() is now called when make is stopping due to an error. This routine reports the curdir and the value of any variables listed in MAKE_PRINT_VAR_ON_ERROR. 3. Variables set via command line, are propagated to child-makes via MAKEFLAGS. This behaviour appears to be necessary for POSIX (according to the GNU folk anyway). 4. Do not reset MAKEFILE when reading ".depend" as this rather eliminates the usefulness of ${MAKEFILE}. 5. Added ${.newline} as a simple means of being able to include \n in the result of a :@ loop expansion. 6. Set ${MAKE_VERSION} if defined. Need to come up with a useful value.
Reviewed: christos
|
| #
1.14 |
|
30-Dec-2000 |
sommerfeld |
Include token counts in trace output. Don't let tokensFree go negative.
|
| #
1.13 |
|
30-Dec-2000 |
sommerfeld |
Avoid token leaks when aborting after an error.
|
| #
1.12 |
|
30-Dec-2000 |
sommerfeld |
Do lazy token release - don't return tokens to the pipe unless we're waiting for something or we're done.
|
| #
1.11 |
|
30-Dec-2000 |
sommerfeld |
Add a token-passing scheme to allow a recursive make to successfully use -j; all make's in a recursive build cooperate to limit the total number of jobs, using a token-passing scheme.
The current token passing algorithm is similar to the one implemented by gmake; there is a single pipe which is inherited through the entire process hierarchy; tokens are obtained by reading a byte from the "read end" of the pipe, and are returned by writing them to the "write end". This exact algorithm is likely to change in the future.
Implementation details: - Use the new trace facility to allow measurement of the effectiveness of different token-passing schemes - Get a token in MakeStartJobs(), return it in Make_Update() - Eliminate Job_Full() and the jobFull global since they are redundant with token system. - Add an "internal" -J option (to pass the token pipe fd's down to submakes) and a -T option for tracing. - Change how compatMake is forced so that -j means something when inherited by submakes. - When waiting for a token, poll the token-passing pipe as well as the output pipes of existing jobs.
|
| #
1.10 |
|
05-Dec-2000 |
sommerfeld |
correct performance regression of recent change from select() to poll() for parallel make: - Make the poll() code behave more like the select() code: sleep for a bit waiting for output rather than busy-wait (eww). - Install a no-op SIGCHLD handler so that poll/select wake up early (with -1/EINTR) when a child exits. - Change the default sleep time from 500ms to 5 seconds since we now wake up promptly when a child exits.
|
| #
1.9 |
|
04-Dec-2000 |
christos |
oops forgot to commit this one.
|
| #
1.8 |
|
03-Dec-2000 |
christos |
use 6 X's instead of 5 for portability.
|
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
| #
1.7 |
|
04-May-2000 |
drochner |
conditionalize prototypes for REMOTE support (seems that REMOTE support is incomplete anyway)
|
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
| #
1.6 |
|
26-Mar-1998 |
christos |
PR/5210: Hauke Fath: make core dumps with .SHELL Unfortunately this revealed a deeper problem with the brk_string code. To fix it: - remove sharing of the buffer between brk_string invocations - change the semantics of brk_string so that the argument array starts with 0, and return the buffer where the strings are stored
|
|
Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
|
| #
1.5 |
|
06-Nov-1996 |
christos |
branches: 1.5.2; - Merge in FreeBSD and Lite2 changes. - Fix bug where a non-archive target with a .a suffix would always be considered to be out of date, since it does not have a TOC.
|
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
| #
1.4 |
|
14-Jun-1995 |
christos |
branches: 1.4.6; - $NetBSD$ rcsids - Fixed so that .[A-Z]* targets that do not match keywords are ignored as Posix mandates - Added .PHONY target keyword
|
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
| #
1.3 |
|
05-Mar-1994 |
cgd |
fixes/improvements from Christos Zoulas <christos@deshaw.com>.
|
| #
1.2 |
|
01-Aug-1993 |
mycroft |
Add RCS identifiers.
|
| #
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|