freebsd-src/usr.bin
John Baldwin 53e1ffbbce The current POSIX semaphore implementation stores the _has_waiters flag
in a separate word from the _count.  This does not permit both items to
be updated atomically in a portable manner.  As a result, sem_post()
must always perform a system call to safely clear _has_waiters.

This change removes the _has_waiters field and instead uses the high bit
of _count as the _has_waiters flag.  A new umtx object type (_usem2) and
two new umtx operations are added (SEM_WAIT2 and SEM_WAKE2) to implement
these semantics.  The older operations are still supported under the
COMPAT_FREEBSD9/10 options.  The POSIX semaphore API in libc has
been updated to use the new implementation.  Note that the new
implementation is not compatible with the previous implementation.
However, this only affects static binaries (which cannot be helped by
symbol versioning).  Binaries using a dynamic libc will continue to work
fine.  SEM_MAGIC has been bumped so that mismatched binaries will error
rather than corrupting a shared semaphore.  In addition, a padding field
has been added to sem_t so that it remains the same size.

Differential Revision:	https://reviews.freebsd.org/D961
Reported by:	adrian
Reviewed by:	kib, jilles (earlier version)
Sponsored by:	Norse
2014-10-24 20:02:44 +00:00
..
alias
apply Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
ar use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
asa
at Sigh, remove a line that needs to be removed along with previous commit. 2014-09-29 21:54:46 +00:00
atm
awk
banner Add missing static keywords to banner(1) 2011-11-06 08:13:51 +00:00
basename Integrate usr.sbin/basename/tests from NetBSD into atf/kyua 2014-10-09 00:41:42 +00:00
bc Convert LIBCURSES to LIBNCURSES to fix "make checkdpadd" 2014-08-26 09:10:28 +00:00
biff Fix EXIT STATUS. biff reports its status when it was invoked. 2013-04-28 09:29:44 +00:00
bluetooth Change the code to use the openpty(3) API which uses the pts(4) driver 2014-10-23 15:16:40 +00:00
bmake Update to bmake-20140620 2014-07-08 22:27:50 +00:00
brandelf use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
bsdiff use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
bzip2
bzip2recover NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
c89 Make c89(1) invoke /usr/bin/cc with argv[0] also set to /usr/bin/cc, 2013-03-07 21:34:16 +00:00
c99 Make c99(1) invoke /usr/bin/cc with argv[0] set to "/usr/bin/cc" instead 2013-03-07 21:37:23 +00:00
calendar Add myself (jch) to calendar.freebsd and committers-src.dot 2014-09-24 22:31:40 +00:00
cap_mkdb Add missing static keywords to cap_mkdb(1) 2011-11-06 08:14:03 +00:00
catman Add missing static keywords to catman(1) 2011-11-06 08:14:09 +00:00
chat More -Wmissing-variable-declarations fixes. 2012-10-19 14:49:42 +00:00
checknr Mark global functions and/or variables in checknr(1) static where possible. 2011-11-06 18:49:03 +00:00
chkey Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
chpass Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
cksum More -Wmissing-variable-declarations fixes. 2012-10-20 10:33:15 +00:00
clang Convert LIBCURSES to LIBNCURSES to fix "make checkdpadd" 2014-08-26 09:10:28 +00:00
cmp Integrate usr.bin/cmp/tests from NetBSD into atf/kyua 2014-10-09 00:50:33 +00:00
col Fix to col when printing half-line feeds w/ -f option... 2014-10-17 21:09:03 +00:00
colcrt Add missing static keywords to colcrt(1) 2011-11-06 08:14:28 +00:00
colldef
colrm
column Add missing static keywords to column(1) 2011-11-06 08:14:34 +00:00
comm Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
compile_et Revert r267233 for now. PIE support needs to be reworked. 2014-08-19 15:04:32 +00:00
compress Replace index() and rindex() calls with strchr() and strrchr(). 2012-01-03 18:51:58 +00:00
cpio Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
cpuset use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
csplit Correct example. 2014-02-08 13:29:35 +00:00
ctags
ctlstat use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
cut Integrate usr.bin/cut/tests from NetBSD into atf/kyua 2014-10-09 01:46:31 +00:00
dc Sync with OpenBSD. 2014-04-16 23:14:05 +00:00
dirname Integrate usr.bin/dirname/tests from NetBSD into atf/kyua 2014-10-09 00:55:04 +00:00
drill Rework privatelib/internallib 2014-08-06 22:17:26 +00:00
dtc dtc: ignore lines starting with #. 2014-06-10 06:16:34 +00:00
du New sentence, new line. 2012-11-04 09:27:01 +00:00
ee Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
elf2aout use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
elfdump Fix a typo. 2014-09-16 22:26:01 +00:00
enigma Handle NULL return from crypt(3). Mostly from DragonFly 2012-02-22 06:27:20 +00:00
env
expand Mark global functions and/or variables in expand(1) static where possible. 2011-11-06 18:49:30 +00:00
false
fetch use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
file MFV r267843: update file/libmagic to 5.19. 2014-06-26 06:03:39 +00:00
file2c Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
find Correct scale factor for T terabyte suffix 2014-10-08 17:40:58 +00:00
finger More -Wmissing-variable-declarations fixes. 2012-10-19 14:49:42 +00:00
fmt
fold Add missing static keywords to fold(1) 2011-11-06 08:15:23 +00:00
from Add static where appropriate. 2013-11-21 21:19:01 +00:00
fstat use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
fsync
ftp Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
gcore Remove an unsed variable. 2014-07-31 03:36:03 +00:00
gencat More -Wmissing-variable-declarations fixes. 2012-10-19 14:49:42 +00:00
getconf use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
getent Add support for netgroup, based on patch in the PR but made consistent 2013-05-23 20:52:30 +00:00
getopt
gprof Remove ia64. 2014-07-07 00:27:09 +00:00
grep Integrate usr.bin/grep/tests from NetBSD into atf/kyua 2014-10-09 01:53:23 +00:00
gzip Sync with NetBSD. 2014-10-23 01:22:29 +00:00
head Remove EOL whitespace accidentally introduced in r248393. 2013-03-17 06:57:25 +00:00
hesinfo
hexdump Constify. 2014-04-25 04:01:25 +00:00
host Add host.1 to CLEANFILES. 2014-08-26 19:36:47 +00:00
iconv - Make invalids variable local to do_conv such that it prints the number 2014-06-13 08:44:03 +00:00
id Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
indent multiple: Remove 3rd clause from BSD license where approved by the 2014-03-14 03:07:51 +00:00
ipcrm General mdoc(7) and typo fixes. 2012-05-10 02:07:00 +00:00
ipcs use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
iscsictl Whitespace fixes. 2014-10-22 09:17:17 +00:00
join Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
jot Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
kdump Decode the arguments passed to _umtx_op(). In particular, decode the 2014-10-13 16:37:06 +00:00
keylogin WARNS=6 compliance 2013-02-19 13:32:26 +00:00
keylogout
killall Re-work r260800 to include other signals which start with 'I' 2014-01-17 04:16:39 +00:00
ktrace Clarify that the -c argument clears the list of tracepoints specified by 2014-08-26 21:21:57 +00:00
ktrdump use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
lam Mark global functions and/or variables in lam(1) static where possible. 2011-11-06 18:49:41 +00:00
last Bump date missed in r202756 2012-09-14 17:50:42 +00:00
lastcomm Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
ldd use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
leave
less Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
lessecho
lesskey
lex Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
limits sh(1),limits(1): Document kqueues (-k) rlimit. 2013-11-01 13:57:30 +00:00
locale Sort options. 2012-11-17 23:52:38 +00:00
locate NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
lock Missed comma. 2014-08-26 11:04:51 +00:00
lockf use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
logger Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
login Remove LOG_ODELAY because it does nothing. 2014-08-17 19:06:26 +00:00
logins use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
logname
look look: implement long options 2014-07-04 04:47:29 +00:00
lorder
lsvfs - Add file system type number (vfc_typenum) in the list. This is useful 2013-06-09 16:33:32 +00:00
lzmainfo
m4 Avoid name shadowing to fix build under powerpc64. 2014-08-07 14:26:44 +00:00
mail Always check the limits of array index variables before using them. 2014-08-21 02:40:33 +00:00
make When producing fmake(1), `make clean' should remove fmake.1 (a copy of 2014-07-23 23:01:54 +00:00
makewhatis Currently the code uses gzFile * for a zlib file descriptor, which 2012-06-20 23:53:36 +00:00
man Replace the macros used in the previous man(1) commit with literal text, 2014-09-26 11:48:29 +00:00
mandoc Revert r267233 for now. PIE support needs to be reworked. 2014-08-19 15:04:32 +00:00
mesg mesg: remove advertising clause 2014-05-11 02:04:40 +00:00
minigzip MFV: Update zlib to 1.2.7. 2012-06-21 21:47:08 +00:00
ministat Make ministat CRNL tolerant by stripping all isspace() from the tail 2014-03-12 08:54:29 +00:00
mkcsmapper use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
mkcsmapper_static NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
mkdep
mkesdb use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
mkesdb_static NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
mkfifo
mkimg Update baseline files for EBR, MBR and PC98 now that mkimg fills in 2014-10-03 20:54:35 +00:00
mklocale Work around build breakages with GCC 4.2. 2013-05-23 05:42:35 +00:00
mkstr
mktemp Use the macro for standard error return values. 2012-11-18 16:34:06 +00:00
mkulzma use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
mkuzip use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
msgs Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
mt In usr.bin/mt/mt.c, the c_code member of struct commands should really 2011-12-17 02:23:30 +00:00
nc
ncal Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
netstat Add the ability to set `prefer_source' flag to an IPv6 address. 2014-09-09 10:52:50 +00:00
newgrp Print a warning if not setuid root. 2013-02-08 14:14:00 +00:00
newkey Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
nfsstat Use the DELTA() macro to tidy the server-side interval stats code a bit. 2014-02-05 14:44:59 +00:00
nice
nl Treat the '-' as meaning standard input. 2014-05-04 12:20:40 +00:00
nohup
opieinfo
opiekey Link otp-sha1 to match real challenge prompt, not otp-sha 2014-08-11 14:37:57 +00:00
opiepasswd
pagesize
pamtest Update to OpenPAM Micrampelis. 2012-05-26 17:10:16 +00:00
passwd Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
paste Mark global functions and/or variables in paste(1) static where possible. 2011-11-06 18:49:53 +00:00
patch patch: add dry-run alias for compatibility with other implementations. 2014-06-15 16:38:17 +00:00
pathchk pathchk: Ensure bytes >= 128 are considered non-portable characters. 2013-10-20 20:10:31 +00:00
perror
pr multiple: Remove 3rd clause from BSD license where approved by the 2014-03-14 03:07:51 +00:00
printenv
printf printf: Install tests/regress.missingpos1.out, fixing tests. 2014-06-01 13:33:22 +00:00
procstat In "procstat -v" (VM), spell out 'FL' to 'FLAG' since there are two extra 2014-07-20 20:11:34 +00:00
protect Correct stale comments. 2013-09-20 16:05:09 +00:00
quota Add missing static keywords to quota(1) 2011-11-06 08:16:29 +00:00
rctl Fix typo. 2014-09-11 19:54:30 +00:00
renice Move example to EXAMPLES. 2013-03-17 06:36:04 +00:00
rev
revoke use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
rlogin More -Wmissing-variable-declarations fixes. 2012-10-19 14:49:42 +00:00
rpcgen Fix some rpcgen sample file issues. 2014-06-06 17:38:37 +00:00
rpcinfo Use INADDR_NONE instead of -1 to check inet_addr() result. 2013-10-15 07:37:30 +00:00
rs Add missing static keywords to rs(1) 2011-11-06 08:16:35 +00:00
rsh None of these programs actually use auth.conf. 2012-06-11 16:18:39 +00:00
rup
ruptime Add missing static keywords to ruptime(1) 2011-11-06 08:16:41 +00:00
rusers Add missing static keywords to rusers(1) 2011-11-06 08:16:47 +00:00
rwall Add missing static keywords to rwall(1) 2011-11-06 08:16:53 +00:00
rwho Update most userspace consumers of capability.h to use capsicum.h instead. 2014-03-16 11:04:44 +00:00
script Bring back r226403, the fix for bin/161526, which was (accidentally?) 2014-01-17 21:45:25 +00:00
sed sed(1): Don't force a newline on last line, if input stream doesn't have one 2014-08-08 17:29:01 +00:00
send-pr Add a stub send-pr that simply points people towards the online support 2014-06-17 12:59:03 +00:00
seq Standardize EXIT STATUS instructions in man pages when possible. 2012-11-18 16:33:51 +00:00
setchannel Remove superfluous paragraph macro. 2012-03-25 09:19:25 +00:00
shar
showmount Use mount protocol version 3 by default for showmount and umount. 2014-08-16 14:56:11 +00:00
smbutil
sockstat use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
sort Make sure to not skip any argument when converting from deprecated 2014-10-02 06:29:49 +00:00
split Add missed DPADD 2013-11-09 09:05:50 +00:00
ssh-copy-id use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
stat use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
stdbuf Remove stray tabs. 2013-01-14 11:06:50 +00:00
su Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
svn Add svnlite.1 to CLEANFILES. 2014-08-26 20:40:12 +00:00
systat Fix integer truncation in affecting systat -ifstat 2014-09-29 17:38:50 +00:00
tabs Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
tail Print file names without stdio buffering to avoid mixing buffered and 2013-06-09 08:06:26 +00:00
talk Convert LIBCURSES to LIBNCURSES to fix "make checkdpadd" 2014-08-26 09:10:28 +00:00
tar Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
tcopy Add missing static keywords to tcopy(1) 2011-11-06 08:17:29 +00:00
tee Reverting last change r231449 (fix bin/164947) due to concerns voiced 2012-02-11 16:34:03 +00:00
telnet Revert r267233 for now. PIE support needs to be reworked. 2014-08-19 15:04:32 +00:00
tests Migrate most of tools/regression/usr.bin/ to the new tests layout. 2014-03-16 08:04:06 +00:00
tftp Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
time time: Use close-on-exec instead of fclose() in the child process. 2012-12-08 17:41:39 +00:00
timeout Improve timeout(1) man page 2014-07-18 22:56:59 +00:00
tip A number of places in the source tree still reference cuad.* after 2012-12-08 22:16:36 +00:00
top Cap the percent CPU of individual threads at 100% to fix some of the 2014-06-20 19:54:23 +00:00
touch Constify where appropriate. 2013-04-23 13:03:17 +00:00
tput Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
tr Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
true
truncate use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
truss The current POSIX semaphore implementation stores the _has_waiters flag 2014-10-24 20:02:44 +00:00
tset Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
tsort Add missing static keywords to tsort(1) 2011-11-06 08:17:47 +00:00
tty
ul Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
uname Change introduction history. 2013-11-20 17:48:38 +00:00
unexpand NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
unifdef use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
uniq Update most userspace consumers of capability.h to use capsicum.h instead. 2014-03-16 11:04:44 +00:00
units Fix structure of new tests (r268794) for usr.bin/units. 2014-07-25 01:29:22 +00:00
unvis Replace our (un)vis(1) commands with implementations from NetBSD to 2013-03-15 00:05:50 +00:00
unzip use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
usbhidaction Add missing static keywords to usbhidaction(1) 2011-11-06 08:18:23 +00:00
usbhidctl mdoc sweep. 2013-05-12 22:22:12 +00:00
users Unbreak the build by re-enabling exceptions. 2014-07-14 12:24:38 +00:00
uudecode Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
uuencode Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
vacation Revert r267233 for now. PIE support needs to be reworked. 2014-08-19 15:04:32 +00:00
vgrind NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
vi Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
vis Replace our (un)vis(1) commands with implementations from NetBSD to 2013-03-15 00:05:50 +00:00
vmstat Fix formatting of vmstat (1) so that it looks cleaner on standard 80 2014-10-24 04:01:14 +00:00
vtfontcvt vtfontcvt will first ship in FreeBSD 10.1 2014-07-24 15:16:03 +00:00
w don't reinvent the wheel: rely on basename(3) 2014-10-08 05:04:31 +00:00
wall Check the return error of set[e][ug]id. While this can never fail in the 2012-10-22 03:07:05 +00:00
wc Add missing static keywords to wc(1) 2011-11-06 08:19:00 +00:00
what
whereis multiple: Remove 3rd clause from BSD license where approved by the 2014-03-14 03:07:51 +00:00
which use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
who Remove contractions. 2012-10-07 20:01:41 +00:00
whois Introduce $RA_SERVER to set default whois server. 2014-06-25 15:39:08 +00:00
write Fix write(1) to support wide characters. 2012-02-13 14:40:15 +00:00
xargs Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
xinstall install: re-check failed mkdir for EEXIST 2014-09-23 11:41:09 +00:00
xlint Remove ia64. 2014-07-07 00:27:09 +00:00
xo Hook xo(1) to the build -- it's like echo, but uses libxo to 2014-10-23 23:16:21 +00:00
xstr Mark global functions and/or variables in xstr(1) static where possible. 2011-11-06 18:50:39 +00:00
xz
xzdec
yacc Complete the usr.bin/yacc kyua integration work I originally 2014-08-12 17:51:26 +00:00
yes mdoc: drop the trailing dot from the xref list. 2014-06-05 08:20:14 +00:00
ypcat use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
ypmatch use .Mt to mark up email addresses consistently (part3) 2014-06-23 08:23:05 +00:00
ypwhich
Makefile Hook xo(1) to the build -- it's like echo, but uses libxo to 2014-10-23 23:16:21 +00:00
Makefile.amd64 - Trim an unused and bogus Makefile for mount_smbfs. 2013-06-28 21:00:08 +00:00
Makefile.arm Add arm bits to truss. 2013-03-07 23:44:35 +00:00
Makefile.i386 - Trim an unused and bogus Makefile for mount_smbfs. 2013-06-28 21:00:08 +00:00
Makefile.inc
Makefile.powerpc - Trim an unused and bogus Makefile for mount_smbfs. 2013-06-28 21:00:08 +00:00
Makefile.sparc64 - Trim an unused and bogus Makefile for mount_smbfs. 2013-06-28 21:00:08 +00:00