documentation already adequatedly existed in the description in most
cases. Where it did not, it was added. If no documentation existed
beforehand, then none was added. Some unused dummies for use in the
traversal functions were marked as __unused during the conversion.
Occasionally, local style fixes were applied to lines already being
modified or influenced.
Now make(1) should always build with WARNS=3.
instead of polling for them.
Unfortunately we cannot enable it yet because it panics the kernel
somewhere in kqueue.
Submitted by: Stefan Farfeleder <e0026813@stud3.tuwien.ac.at>
there from being more than 500 processes forked by make(1), to prevent a
forkbomb from happening, in a dumb and mechanical way.
PR: alane
Submitted by: bin/42772
MFC after: 2 weeks
renaming variables to not shadow libc functions or greater scope locals. Kinda
makes one wonder if the extern ones weren't meant in some of these places :)
The only thing I'd still like to do WRT this is possibly combine rstat and
status in compat.c -- that should be fine, as I do not think the codepaths
will want both around at once.
Sponsored by: Bright Path Solutions
in compat.c which doesn't even have preprocessor-conditional-hidden support
code, and add a debugging statement where we might end up with a nil list
somehow, but where I doubt it.
First confirmed userland kill for Flexelint.
Sponsored by: Bright Path Solutions
variable length arguments to a macro. Bump version as this makes DEBUG
statements *always* go to stderr rather than sometimes stdout. There are
a few stragglers, which I will take care of as soon as I can. Mostly these
relate to the need-for-death-of some of the remote job code.
Nearby stylistic nits and XXX added/fixed where appropriate.
which fails the make tests (doesn't understand ${notdef:U}) and therefore
fails on __FBSDID in usr.bin/make/*. -DBOOTSTRAPPING is no help here since
this is before we are using the new share/mk/* files, and it would conflict
with the builtin -DBOOTSTRAPPING support later.. so use a different flag.
this particular GNU flag. It changes into the given directory for the
operation in question. This just goes into said directory at the time of
parsing the argument for getopt(3).
Submitted by: Rachel Hestilow <rachel@jerkcity.com>
we use in sublte ways with relative paths. Until they can be resolved,
back out these changes and put a big comment about why using realpath is
busted.
Approved by: jmallett
MFC After: 100 millifortnights
seen (somewhat) in NetBSD. This catches a few extra recursion cases that
could be hidden by expanding a NIL variable causing an existing variable to
be returned (which caused infinite looping and climbing memory usage in at
least one case).
Obtained from: NetBSD (in principle)
of ReadMakefile as __unused, it's there because this function is used by
the abstracted list interface which normally deals with item handlers which
take two arguments. Add a missing static prototype.
if a given make(1) is feature-compatible with a set of makefiles.
When merged, this will be used to replace the ugly upgrade_checks
hacks in src/Makefile.
Version has the RYYYYMMDDX format, where R is from RELENG_<R> and
X allows for 10 distinguishable changes per day.
Discussed with: bde
it, which means that relative paths will be expanded to absolute paths, and
filenames without a path will end up with their absolute path included as
well. This aids tremendously in debugging a build using our make(1) with
multiple Makefile's, such as when there is a syntax error in a file in a
sub-directory as per <bsd.subdir.mk>. Normally we'd end up with just
"Makefile" known about the Makefile in question, which means that an error
would be useless for someone trying to debug their build system, now we
end up with a complete real pathname for the Makefile.
So mostly this is useful in a debugging context, but possibly others too
(I haven't thought of them yet, but they probably are more useful if you
make Dir_FindFile use realpath(3), but that's another story).
Reviewed by: -current
MFC after: 2 weeks
With rev 1.7 one cannot build src/bin/sh -- because make fails to create
the buildtools before trying to use them. Actually it does compile the
buildtools into .o's before trying to use them, but not all the way into
binaries.
make installed) in gnu/usr.bin/groff/src/preproc/eqn (which, being a
build tool itself, is built with the original make during buildworld).
The problem seems to be that in str_concat(), the string is not
terminated when the length of the second string is 0.
This apparently can happen during null suffix rule processing.
Submitted by: tmm
test if failsafe memory allocation fails, it can't. perror -> warn. Use
failsafe memory allocation provided.
Use .Pa and .Ar. Uppercase (first letter) programname after dot.
has been determined similar to C. That is, one expects a construction
like,
.if defined(TEST) && (${TEST:L} == "test")
Never to generate an error since the second expression should never be
evaluated when TEST is undefined.
However, this was not the case. The above fails with the current
make(1) if TEST is undefined. This patch fixes the above and many
similar cases.
PR: bin/34032
Submitted by: Alan Eldridge <alane@geeksrus.net>
MFC after: 1 week
This should not affect our build process, as
find /usr/src -name Makefile | xargs grep '@[DF]'
has no matches (other than FreeBSD.org email addresses :-)
PR: bin/24377
Submitted by: Mark Valentine <mark@thuvia.demon.co.uk>
Reviewed by: Matthew Emmerton <matt@gsicomp.on.ca>
MFC after: 4 weeks
remove the concept of a 'maintainer' of our make. there really isn't a
need for any one committer to hold an exclusive lock or serve as a filter
for this code.
src/sys/modules/if_ef and possibly other things. I tested the build with
a make based on rev. 1.26, and it worked fine. Since I'm not particularly
inclined to figure out what's going on with this, it's probably prudent
just to back it out for now.
Found by: jkh
Suggested by: jhay
.endif statements but can't be placed in .elif. Basically, the problem
was that ParseSkipLine() didn't handle comments the same way that
ParseReadLine() did, and thus you had errors with comments that are on a
conditional line (i.e. "^.") rather than a non-conditional line.
MFC candidate for 4.3-STABLE and 3.5-STABLE.
PR: 25627
Bug found by: jhs
Fix submitted by: Seth Kingsley <sethk@osd.bsdi.com> (thanks!!)
list was cleared.
Rules with null suffixes would not be rebuilt when the suffixes were
added again.
Adding null suffix rules would fail when a rule for the same source was
declared before the suffix list was cleared.
PR: 23328, 24102
Reviewed by: will
Approved by: rwatson
through the use of a new build directive, MACHINE_CPU, which contains a
list of the CPU generations/features for which optimizations are desired.
This feature will be extended to cover the ports tree in the future.
Currently OpenSSL provides optimizations for i386, i586 and i686-class
CPUs. Currently it has not been tested on an i386 or i486.
Teach make(1) to provide sensible defaults for MACHINE_CPU if it is not
defined (namely, the lowest common denominator CPU we support for each
architecture). Currently this is i386 for the i386 architecture and ev4
for the alpha. sys.mk also sets the variable as a last resort for
consistency with MACHINE_ARCH and bootstrapping from very old versions of
make.
Benchmarks show a significant speed increase even in the i386 case, with
additional improvements for i586 and i686 systems. For maximum performance
define MACHINE_CPU=i686 i586 i386 in /etc/make.conf.
Based on a patch submitted by: Mike Silbersack <silby@silby.com>
Reviewed by: current
was in. This shall be MFC'd in about three days (probably not a good idea
to MFC the stylistic changes though - see below).
PR: 19978
Submitted by: Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
Patch by: roam (slightly modified by me to use NULL not NIL)