NetBSD/usr.bin
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
..
apply
apropos
asa Change some standard exit status text to ".Ex -std" 2014-04-13 01:45:34 +00:00
at
audio Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
audiocfg Add more __dead. 2013-08-12 14:03:18 +00:00
awk
banner
basename
bdes Use more static and __dead. 2013-08-15 20:48:56 +00:00
biff Add EXIT STATUS section. From Ryan Kavanagh via jmc@openbsd. 2013-04-28 12:43:51 +00:00
bthset
btkey skip unparseable addresses. 2014-02-23 07:50:01 +00:00
btpin
bzip2 Adapt to repository move of dist from external/bsd/bzip2 to 2012-05-07 08:51:47 +00:00
bzip2recover Adapt to repository move of dist from external/bsd/bzip2 to 2012-05-07 08:51:47 +00:00
cal
calendar Fix year of Hawaiian Admission Day. From Henning Petersen in PR 49123. 2014-08-17 10:01:14 +00:00
cap_mkdb Change some standard exit status text to ".Ex -std" 2014-04-13 01:45:34 +00:00
cdplay fix the rest of the lint warnings [pass 1] 2013-10-07 15:17:24 +00:00
checknr Add more __dead. 2013-08-12 14:03:18 +00:00
chflags In all man pages that say: 2013-12-17 09:54:08 +00:00
chpass Add capfile(5) to describe the termcap format. 2012-04-21 12:27:24 +00:00
cksum fix unused variable warnings 2013-10-18 20:47:06 +00:00
cleantags Move .Op macro to its own line. Fix SYNOPSIS rendering with mandoc. 2013-04-26 17:12:10 +00:00
cmp Explicitly include <stdint.h> for uintmax_t; from Eitan Adler. 2013-11-20 17:19:14 +00:00
col
colcrt Change or add history. I checked the 1bsd archives and this first 2012-05-12 14:52:57 +00:00
colrm Change or add history. I checked the 1bsd archives and this first 2012-05-12 14:52:57 +00:00
column
comm Change some standard exit status text to ".Ex -std" 2014-04-13 01:45:34 +00:00
compress
config Restore explicit rule for swap*.o. 2014-08-18 08:07:02 +00:00
crunch Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
csplit Correct number of output files in example. 2014-02-04 19:48:48 +00:00
ctags Change some standard exit status text to ".Ex -std" 2014-04-13 01:45:34 +00:00
cut From Igor Sobrado in private email (based on his OpenBSD commit): 2014-02-03 20:22:19 +00:00
db
deroff fix unused variable warnings 2013-10-18 20:47:06 +00:00
dirname
du Add EXIT STATUS section and bump date. 2012-05-14 21:14:14 +00:00
eject racd *should* be ejectable. Kernel side to come 2012-07-14 20:41:27 +00:00
elf2aout Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
elf2ecoff remove unused variables 2013-11-10 17:14:25 +00:00
env
error
expand Change or add history. I checked the 1bsd archives and this first 2012-05-12 14:52:57 +00:00
extattr Use returned size and not buffer max length when displaying attribute 2014-06-20 15:22:01 +00:00
false
fdformat Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
fgen fix unused variable warnings 2013-10-18 20:47:06 +00:00
fincore
find Add an example with find ... -exec sh -c .... 2014-05-17 11:31:40 +00:00
finger - Don't dump core or print random junk on corrupt utmp entries. 2013-01-18 22:10:31 +00:00
flock mention that -x is the default. 2014-08-18 09:45:52 +00:00
fmt add -w as an alias to -m 2012-06-30 21:31:15 +00:00
fold Remove trailing whitespace. 2012-05-12 15:17:15 +00:00
fpr
from
fsplit Assert equality, not assignment, in fsplit, and say who guarantees it. 2013-01-23 20:39:46 +00:00
fstat Merge tls-earlyentropy branch into HEAD. 2014-08-10 16:44:32 +00:00
ftp Annotate functions using format strings. 2014-01-07 02:07:08 +00:00
gcore use macro for OS name when first introduced 2014-01-21 02:53:30 +00:00
genassym - use just the basename for program name 2014-01-06 22:43:15 +00:00
gencat Use LIST_FOREACH, LIST_NEXT, etc., instead of direct access to 2013-11-27 17:38:11 +00:00
getaddrinfo need bsd.own.mk 2014-04-29 01:21:02 +00:00
getconf Change some standard exit status text to ".Ex -std" 2014-04-13 01:45:34 +00:00
getent
getopt
gprof Reorg docs, part 1: 2014-07-05 19:22:41 +00:00
grep fix type, from enh at google dot com 2014-07-14 21:56:03 +00:00
gzip Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
head
hesinfo
hexdump don't read random garbage from the stack 2013-10-18 20:19:03 +00:00
iconv Save errno around fwrite(), which can otherwise trash it; PR 47813. 2013-10-07 02:00:46 +00:00
id
indent Remove a few unneeded Pp macros. 2012-10-13 14:18:16 +00:00
infocmp Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
innetgr
ipcrm
ipcs Remove KVM support. 2014-06-11 14:57:55 +00:00
join
jot
kdump Fix compat netbsd32 syscall return values display by calling 2014-04-30 11:51:51 +00:00
klist
ktrace use O_CLOEXEC. 2013-01-24 17:47:58 +00:00
ktruss mremap(2) return an pointer just like mmap(2). 2012-07-17 14:39:08 +00:00
lam Adjust case of example to match usage (and code) 2012-12-13 21:09:34 +00:00
last Change or add history. I checked the 1bsd archives and this first 2012-05-12 14:52:57 +00:00
lastcomm
ldd Use OBJECT_FMTS from <bsd.own.mk> to determine elf32/elf64 needs 2014-03-02 03:55:19 +00:00
leave
locale
locate Synchronise several shell_quote implementations, and: 2014-08-04 21:56:30 +00:00
lock fix unused variable warnings 2013-10-18 20:47:06 +00:00
logger Small typo in macro. 2012-05-13 17:08:31 +00:00
login Fix gcc48 build without Kerberos. 2014-03-16 00:33:13 +00:00
logname
look
lorder
m4 Rework /usr/share/doc. 2014-07-05 19:22:02 +00:00
machine
mail Reorg docs, part 1: 2014-07-05 19:22:41 +00:00
make PR/46096: Jarmo Jaakkola: fix many problems with dependencies (PR 49086) 2014-08-23 15:05:40 +00:00
man More detail about treating a local file as a man page, 2014-08-14 15:44:47 +00:00
menuc avoid redefinitions 2013-10-18 20:19:36 +00:00
mesg
midiplay
mixerctl Fix indent and style. no functional changes. 2012-10-28 02:01:15 +00:00
mkcsmapper
mkdep Conditionally include the depend files. 2013-03-05 21:57:47 +00:00
mkesdb
mkfifo
mklocale Fix description of hex encoding. 2013-07-15 18:46:47 +00:00
mkstr Change or add history. I checked the 1bsd archives and this first 2012-05-12 14:52:57 +00:00
mktemp Reorganise, consolidate duplicated information, clarify wording, 2012-11-04 10:10:03 +00:00
mkubootimage add missing prototype for crc32v 2012-12-29 16:18:08 +00:00
moduli
msgc avoid redefinitions 2013-10-18 20:19:36 +00:00
msgs Fix documentation of how to expire old messages. For some reason the 2013-11-24 19:49:22 +00:00
nbperf Most CPUs implement shifts modulo the width, but ARM doesn't. Don't 2014-04-30 21:04:58 +00:00
nbsvtool
netgroup
netstat Fix snprintf usage; from Henning Petersen in PR 47976. 2014-07-27 04:26:23 +00:00
newgrp PR/47319 use addgrp_ret_t instead of magic values 2014-06-23 06:57:31 +00:00
newsyslog Revert previous, it was wrong. 2013-12-20 17:01:39 +00:00
nfsstat PR/48426: Dimitris Karagkasidis: Make nfsstat use unsigned numbers. 2014-04-24 18:40:35 +00:00
nice
nl Improve description. 2013-09-24 22:08:06 +00:00
nohup
pagesize
passwd Keep the built-in support for passwd -k, but don't make the kpasswd link or 2013-02-13 23:19:14 +00:00
paste Remove second NetBSD RCS Id. 2013-04-07 17:43:01 +00:00
patch mention -V none 2014-04-11 17:41:09 +00:00
pathchk
pkill Document that patterns are specified using extended regular expressions. 2013-11-01 07:49:00 +00:00
pmap Change some standard exit status text to ".Ex -std" 2014-04-13 01:45:34 +00:00
pmc Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
pr - Fix optional argument options (e, i, n, s) in SYNOPSIS and DESCRIPTION 2012-08-01 02:36:17 +00:00
printenv
printf Change some standard exit status text to ".Ex -std" 2014-04-13 01:45:34 +00:00
progress Change some standard exit status text to ".Ex -std" 2014-04-13 01:45:34 +00:00
pwhash
qsubst Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
quota Remove leftover #if 0 code from before the libquota rework. 2014-07-13 01:46:04 +00:00
radioctl
rdist more clobbering fixes. 2013-10-18 20:43:45 +00:00
renice emove duplicate RCS Id. Bump date for previous. 2012-12-06 07:52:12 +00:00
rev
revoke
rfcomm_sppd Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
rlogin Sync usage with man page. 2013-03-02 18:37:19 +00:00
rpcgen Sync usage and option descriptions with manpage. 2013-12-15 09:18:31 +00:00
rpcinfo passes WARNS=5, don't set it to 4. 2013-08-21 21:05:29 +00:00
rs
rsh Fix signal delivery to remote process; As described in rcmd(3), a signal 2014-06-08 02:44:15 +00:00
rump_allserver Remove LD_DYNAMIC_WEAK whine, by large it's not necessary anymore. 2014-04-27 15:26:05 +00:00
rump_dhcpclient Don't use const foo const as type, one const is enough. 2012-09-13 21:44:49 +00:00
rump_halt use rumpuser_port.h 2014-01-15 16:53:32 +00:00
rump_server Support disklabel partitions on all platforms. 2013-11-13 17:47:27 +00:00
rump_wmd Clarify that -l params must be given after options. 2014-01-28 14:02:54 +00:00
rup
ruptime Remove second copy for RCS Id. 2014-01-04 15:43:27 +00:00
rusers
rwall
rwho
script
sdiff Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
sdpquery Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
sed PR/49109: Jeremie Le Hen: fix sed relative addressin (1,+N) 2014-08-13 11:35:34 +00:00
seq * Punctuation 2013-04-07 17:37:45 +00:00
shar
shlock Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
shmif_dumpbus Might as well byteswap when we assign to local variables instead of when 2014-08-18 14:40:17 +00:00
showmount
shuffle
skey
skeyinfo
skeyinit Fix capitalisation (again, last time the wrong sentence). 2013-05-06 13:44:17 +00:00
sockstat Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
soelim Change or add history. I checked the 1bsd archives and this first 2012-05-12 14:52:57 +00:00
sort fix unused variable warnings 2013-10-18 20:47:06 +00:00
spell Spell NULL pointer as NULL. 2013-11-18 19:55:59 +00:00
split
stat Change some standard exit status text to ".Ex -std" 2014-04-13 01:45:34 +00:00
su Fix gcc48 build. No obvious reason why nobody else has hit this... 2014-03-16 01:07:46 +00:00
systat Remove fagile test which ensured that first namelist element (was 2014-06-20 07:08:15 +00:00
tabs Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
tail Fix -f description: it is also ignored if stdin is a FIFO. 2014-06-15 11:37:56 +00:00
talk - use warn/err 2012-12-29 23:44:22 +00:00
tcopy
tee use more appropriate types 2013-03-06 11:44:11 +00:00
telnet Remove many HAVE_GCC || HAVE_PCC conditionals as the options also apply 2012-08-10 12:10:27 +00:00
tftp Work around "variable might be clobbered by longjmp" gcc warning when compiling with CPUFLAGS=-march=armv7. Should be fixed properly one day... 2013-03-29 18:53:21 +00:00
tic use hdestroy1 now that hdestroy does not free the key. 2014-07-20 20:20:16 +00:00
time
timeout Fix overflow check. From Kamil Rytarowski. 2014-08-05 08:20:02 +00:00
tip Remove broken snprintf usage (noted in PR 47976) and replace with 2014-07-27 04:32:23 +00:00
touch Note that -d, -r, and -t are mutually exclusive and only the last one 2012-10-24 02:46:25 +00:00
tpfmt
tput Use putp(3) to output our strings. 2013-02-05 11:31:56 +00:00
tr Whitespace. 2013-08-11 01:54:35 +00:00
true
tset Change or add history. I checked the 1bsd archives and this first 2012-05-12 14:52:57 +00:00
tsort
tty
ul Add capfile(5) to describe the termcap format. 2012-04-21 12:27:24 +00:00
uname
unexpand
unifdef PR/47068: unifdef(1) with cpp directive on last line without newline 2012-10-13 18:26:03 +00:00
uniq - synchronize `usage' message with man page. 2012-08-26 14:14:16 +00:00
units Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
unvis RFC 1866 does not define any "URI encoding". It defines HTML 2.0 that 2012-12-15 02:08:13 +00:00
unzip Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
usbhidaction use O_CLOEXEC 2013-01-24 17:46:00 +00:00
usbhidctl Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
users
utoppya Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
uudecode Support both "-" and "/dev/stdout" as references to standard 2013-01-28 19:50:30 +00:00
uuencode Document today's changes to uudecode: 2013-01-28 16:08:02 +00:00
uuidgen
vacation PR/47689: rudolf: reference to sendmail(8) instead of (1) in vacation(1) 2013-03-24 21:00:22 +00:00
vgrind first attempt at toolification. 2014-07-15 13:17:15 +00:00
videoctl
vis Small typo. From Michael W. Bombardieri. 2013-10-29 12:27:23 +00:00
vmstat Use u_long to avoid negative value outputs. 2014-07-12 20:04:31 +00:00
vndcompress Get SIZE_MAX and OFF_MAX straight... 2014-01-25 16:38:15 +00:00
w struct member can't be null, if the pointer itself is valid. 2014-02-27 00:49:46 +00:00
wall
wc
what
whatis
whereis
who Handle ctime() failure. 2014-06-08 09:53:43 +00:00
whois It helps to separate arguments from the query. 2013-02-20 09:27:52 +00:00
write
xargs Remove a few unneeded Pp macros. 2012-10-13 14:18:16 +00:00
xinstall mtree spec files want nanoseconds, so multiply the microseconds by 1000. 2014-07-06 20:54:47 +00:00
xlint Preliminary files for AARCH64 (64-bit ARM) support. 2014-08-10 05:47:35 +00:00
xstr
yes
ypcat
ypmatch
ypwhich
Makefile PR/49053: Kamil Rytarowski: Import timeout(1) from FreeBSD 2014-08-01 14:01:30 +00:00
Makefile.inc