Commit Graph

12528 Commits

Author SHA1 Message Date
joerg
aa44bc3b18 Bump CONFIG_VERSION. 2014-08-24 20:22:18 +00:00
apb
089825332f Let "make clean" delete the files and dirs created by some of the tests. 2014-08-24 17:17:24 +00:00
apb
71a54383f7 In either a variable assignmentor a command, backslash-backslash-newline
does not escape the newline.  This is compatible with gmake.
2014-08-24 16:47:12 +00:00
apb
b4e732f551 Our practice is that an even number of backslashes before a newline
in a variable assignment simply stores the backslashes as part of the
value, and treats the newline as though it was not escaped.  This
is compatible with GNU make.
2014-08-24 16:08:14 +00:00
apb
175bed92d9 Our practice, despite what POSIX might say, is that "\#"
in a variable assignment stores "#" as part of the value.
The "\" is not taken literally, and the "#" does not begin a comment.
2014-08-24 15:10:13 +00:00
apb
c80311840b Convert the variable printing tests to use .USE rules,
to ensure that the value printed always comes from the expected variable.
2014-08-24 14:38:38 +00:00
apb
ae2e300da1 Adjust tests to correct for the fact that end-of-line comments
in variable assignments should not be included in the value.

Also fix more typos.
2014-08-24 14:04:35 +00:00
apb
c761b26f2c Fix more typos in variable names. 2014-08-24 13:11:49 +00:00
apb
e989f440f6 Fix typos in variable names, and in a comment. 2014-08-24 13:07:25 +00:00
apb
b3edfc2816 Add tests for backslash escaping in make(1).
Many of these tests fail, and I have populated the escape.exp file with
the results that I expect, not with the results that make(1) actually
produces.

Also update the set lists for these tests.
2014-08-24 11:52:45 +00:00
christos
69f7fee3bd fix output based on new sources 2014-08-23 16:08:42 +00:00
christos
6076cfd13e Instead of adding the test in 48095 I added the tests in 48096. Add the
missing test now.
2014-08-23 15:21:35 +00:00
christos
defa6c58f6 PR/46096: Jarmo Jaakkola: fix many problems with dependencies (PR 49086)
Quite extensive rewrite of the Suff module.  Some ripple effects into
Parse and Targ modules too.

Dependency searches in general were made to honor explicit rules so
implicit and explicit sources are no longer applied on targets that
do not invoke a transformation rule.

Archive member dependency search was rewritten.  Explicit rules now
work properly and $(.TARGET) is set correctly.  POSIX semantics for
lib(member.o) and .s1.a rules are supported.

.SUFFIXES list maintenance was rewritten so that scanning of existing
rules works when suffixes are added and that clearing the suffix list
removes single suffix rules too.  Transformation rule nodes are now
mixed with regular nodes so they are available as regular targets too
if needed (especially after the known suffixes are cleared).

The .NULL target was documented in the manual page, especially to
warn against using it when a single suffix rule would work.
A deprecation warning was also added to the manual and make also
warns the user if it encounters .NULL.

Search for suffix rules no longer allows the explicit dependencies
to override the selected transformation rule.  A check is made in
the search that the transformation that would be tried does not
already exist in the chain.  This prevents getting stuck in an infinite
loop under specific circumstances.  Local variables are now set
before node's children are expanded so dynamic sources work in
multi-stage transformations.  Make_HandleUse() no longer expands
the added children for transformation nodes, preventing triple
expansion and allowing the Suff module to properly postpone their
expansion until proper values are set for the local variables.

Directory prefix is no longer removed from $(.PREFIX) if the target
is found via directory search.

The last rule defined is now used instead of the first one (POSIX
requirement) in case a rule is defined multiple times.  Everything
defined in the first instance is undone, but things added "globally"
are honored.  To implement this, each node tracks attribute bits
which have been set by special targets (global) instead of special
sources (local).  They also track dependencies that were added by
a rule with commands (local) instead of rule with no commands (global).

New attribute, OP_FROM_SYS_MK is introduced.  It is set on all targets
found in system makefiles so that they are not eligible to become
the main target.  We cannot just set OP_NOTMAIN because it is one of
the attributes inherited from transformation and .USE rules and would
make any eligible target that uses a built-in inference rule ineligible.

The $(.IMPSRC) local variable now works like in gmake: it is set to
the first prerequisite for explicit rules.  For implicit rules it
is still the implied source.

The manual page is improved regarding the fixed features.  Test cases
for the fixed problems are added.

Other improvements in the Suff module include:
  - better debug messages for transformation rule search (length of
    the chain is now visualized by indentation)
  - Suff structures are created, destroyed and moved around by a set
    of maintenance functions so their reference counts are easier
    to track (this also gets rid of a lot of code duplication)
  - some unreasonably long functions were split into smaller ones
  - many local variables had their names changed to describe their
    purpose instead of their type
2014-08-23 15:05:40 +00:00
wiz
ecd932c9a3 Bump date for previous. 2014-08-23 15:03:22 +00:00
christos
be99220c64 Convert test in PR/49085 2014-08-23 15:02:04 +00:00
christos
4da7383dde PR/49085: Jarmo Jaakkola: fix several parsing errors
Don't exit from var.c:Var_Parse() before possible modifiers are handled
on D and F modified versions of local variables.  Properly expand $(?D)
and $(?F) too.

Make line continuations in rule's commands POSIX compliant.

Fix the syntax error caused by lib(member) as the last target before
a dependency operator.

Document the line continuation change in the manual page.  Also talk
more about the POSIX style local variables and their modifiers.

Add tests covering the fixed problems into d_posix.mk.  The test is
a known failure at the moment because of PR 49086 and PR 49092.

[XXX: unconverted tests]
2014-08-23 14:50:24 +00:00
apb
ee8e02daed Add a .PATH, so you can be in any other directory and run
"make -f /path/to/this/Makefile sometest.out"
and have it create sometest.out in your current directory.
2014-08-21 22:00:30 +00:00
apb
c354f55834 Add varmisc.mk, for miscellaneous variable tests.
For now, the only test is copied from
src/tests/usr.bin/make/d_unmatchedvarparen.mk.  This was
the only test in src/tests/usr.bin/make that was not also in
src/usr.bin/make/unit-tests.

XXX: src/tests/usr.bin/mk should be changed to reach over to
src/usr.bin/make/unit-tests, instead of keeping out of date copies
of the tests.
2014-08-21 15:37:13 +00:00
apb
b9dad2e00f Give each group of tests its own output file.
* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
  each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files.  There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines.  Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).
2014-08-21 13:44:51 +00:00
apb
8189a8d901 Stricter sed expression for matching an optional PID in square brackets. 2014-08-21 13:31:52 +00:00
apb
ff90baf509 When sanitising test output, replace "${TEST_MAKE}" with "make".
This string may appear in error messages that end up in the output.
2014-08-21 12:42:03 +00:00
apb
9dba8e3973 Add tests for VAR != command. 2014-08-20 08:39:14 +00:00
apb
21c7c4bccf It should not be an error to have VAR != command that prints no output 2014-08-20 08:37:25 +00:00
pooka
65016d742c Might as well byteswap when we assign to local variables instead of when
we use said variables.
2014-08-18 14:40:17 +00:00
pooka
c0fd8e41a5 quasi-cosmetic nit to previous: limit variable scope 2014-08-18 14:35:29 +00:00
pooka
6dd8e526f0 Add compat for bus version 2.
Fixes tests, but, XXX, should add tests for bus version 3.
2014-08-18 14:33:23 +00:00
pooka
c31e06706c make name more descriptive: SWAPME -> FIXENDIAN
no functional change
2014-08-18 14:23:24 +00:00
pooka
756b0ff491 fix tyop in error message 2014-08-18 14:21:44 +00:00
pooka
3b9faec799 support endian-independent operation on all platforms 2014-08-18 14:21:18 +00:00
christos
5e59f268f4 mention that -x is the default. 2014-08-18 09:45:52 +00:00
christos
f3fb7b3c54 remove XXX, fix error message 2014-08-18 09:16:35 +00:00
christos
519e6f9271 make this behave like linux; make -x the default 2014-08-18 09:14:03 +00:00
joerg
6616828fd2 Restore explicit rule for swap*.o. 2014-08-18 08:07:02 +00:00
joerg
a26164117a Reorganize symbol table embedding. The existing option SYMTAB_SPACE is
replaced by the make option COPY_SYMTAB set to any value. The copy of
the symbol table is no longer put into a buffer in kern_ksyms.o, but a
small helper object. This object is build first with a dummy size, then
the kernel is linked to compute the real dimension of the symbol table
buffer. After that, the helper object is rebuild and the kernel linked
again.
2014-08-17 21:17:43 +00:00
wiz
ac40b25ccf Fix year of Hawaiian Admission Day. From Henning Petersen in PR 49123. 2014-08-17 10:01:14 +00:00
apb
3453b7f9d9 More detail about treating a local file as a man page,
and about how to request machine-specific man pages.
re
2014-08-14 15:44:47 +00:00
apb
ee28f0e59d For an argument to be interpreted as a local file name, bypassing the
search rules in man.conf or MANPATH, it must begin with "/", "./", or
"../".  Simply testing whether it contains "/" is wrong, because it
breaks usage like "man 8 vax/boot".

This reverts revision 1.57 dated 2013-10-06,
"Be more permissive in interpreting man pages as filenames".
2014-08-14 15:31:12 +00:00
christos
eefaa0a08a PR/49109: Jeremie Le Hen: fix sed relative addressin (1,+N)
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192108
http://svnweb.freebsd.org/base?view=revision&revision=269302
XXX: pullup 7.
2014-08-13 11:35:34 +00:00
tls
ea6af427bd Merge tls-earlyentropy branch into HEAD. 2014-08-10 16:44:32 +00:00
matt
beb9c6d1b5 Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
2014-08-10 05:47:35 +00:00
bad
2a950d2831 Treat an undefined option as a warning instead of an error when undoing an
option.

Allows one to win with declarations like:
no options 	MSGBUFSIZE
options 	MSGBUFSIZE="128*1024"

Briefly discussed with cube@, lukem@ and martin@.
2014-08-09 12:40:14 +00:00
gson
4cfcf01b16 Fix comment: Error, Fatal, and Punt take any number of arguments, not two. 2014-08-08 19:20:39 +00:00
christos
f70ccee6df Fix overflow check. From Kamil Rytarowski. 2014-08-05 08:20:02 +00:00
apb
f80058aa23 Synchronise several shell_quote implementations, and:
* Elide some unnecessary pairs of quotation marks, to improve readability.
  For example, shell_quote "''" is now \'\' instead of ''\'''\'''.
* Don't add quotes around words that contain only safe characters,
  to improve readability.
* LC_COLLATE=C to prevent [a-zA-Z] from matching non-ASCII characters.
* Use ${SED} if defined.
2014-08-04 21:56:30 +00:00
martin
72c3b0988d Cast signal argument of kill(2) to int, as sig_atomic_t may be larger.
Avoids:
src/usr.bin/timeout/timeout.c:331:5: error: conversion to 'int' from 'sig_atomic_t' may alter its value [-Werror=conversion]
     kill(pid, sig_term);
     ^
warning from gcc 4.8
2014-08-02 09:16:22 +00:00
wiz
77ebce0be6 Punctuation, markup, whitespace improvements. 2014-08-02 06:20:56 +00:00
christos
3f7fdb96f5 PR/49053: Kamil Rytarowski: Import timeout(1) from FreeBSD 2014-08-01 14:01:30 +00:00
christos
7a7434fee0 import from FreeBSD 2014-08-01 13:50:55 +00:00
dholland
dfb86850e0 Remove broken snprintf usage (noted in PR 47976) and replace with
something simpler.
2014-07-27 04:32:23 +00:00
dholland
0858ed9253 Fix snprintf usage; from Henning Petersen in PR 47976. 2014-07-27 04:26:23 +00:00