FreeBSD src
Go to file
Konstantin Belousov 7626d062c3 Remove unneeded data dependency, currently imposed by
atomic_load_acq(9), on it source, for x86.

Right now, atomic_load_acq() on x86 is sequentially consistent with
other atomics, code ensures this by doing store/load barrier by
performing locked nop on the source.  Provide separate primitive
__storeload_barrier(), which is implemented as the locked nop done on
a cpu-private variable, and put __storeload_barrier() before load, to
keep seq_cst semantic but avoid introducing false dependency on the
no-modification of the source for its later use.

Note that seq_cst property of x86 atomic_load_acq() is not documented
and not carried by atomics implementations on other architectures,
although some kernel code relies on the behaviour.  This commit does
not intend to change this.

Reviewed by:	alc
Discussed with:	bde
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2015-06-28 05:04:08 +00:00
bin sh: Fix some arithmetic undefined behaviour. 2015-06-24 20:51:48 +00:00
cddl Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
contrib Fix endless recursion in dwarf_get_section_max_offsets(), found by clang 2015-06-23 06:42:30 +00:00
crypto Merge OpenSSL 1.0.1o. 2015-06-12 16:48:26 +00:00
etc Use correct flag in iovctl_start(). 2015-06-27 18:01:50 +00:00
games Add META_MODE support. 2015-06-13 19:20:56 +00:00
gnu new depends 2015-06-16 23:37:19 +00:00
include new depends 2015-06-16 23:37:19 +00:00
kerberos5 Fix a typo introduced in r262209. 2015-06-18 21:18:43 +00:00
lib Implement fpgetmask, it's needed by Python. 2015-06-25 08:22:25 +00:00
libexec Also save x8. It may be passed into a function as the indirect result 2015-06-23 10:32:26 +00:00
release Instead of hard-coding the PROVIDERS for upload, add the 2015-06-27 23:03:28 +00:00
rescue Add META_MODE support. 2015-06-13 19:20:56 +00:00
sbin Fix support for the null encryption algorithm which now requires 2015-06-25 18:38:58 +00:00
secure Add compatibility with $2y$ bcrypt hashes 2015-06-16 23:57:29 +00:00
share Make all shared library a relative symlink 2015-06-27 23:28:56 +00:00
sys Remove unneeded data dependency, currently imposed by 2015-06-28 05:04:08 +00:00
targets Support WITH_LLDB 2015-06-16 23:38:44 +00:00
tests Misc fixes from projects/bmake 2015-06-11 21:13:05 +00:00
tools Fix generation of src.conf.5 2015-06-22 20:21:57 +00:00
usr.bin Add the ntfs alias and support it with the MBR and GPT schemes 2015-06-27 03:28:04 +00:00
usr.sbin Fix issues detected by 'mandoc -Tlint bhyveload.8' 2015-06-27 18:24:23 +00:00
.arcconfig Phabricator: enable "history.immutable": 2015-04-30 00:27:53 +00:00
.arclint phabricator related changes: 2015-04-20 20:33:22 +00:00
COPYRIGHT Bump copyright year. 2014-12-31 10:00:43 +00:00
LOCKS Explicitly require Security Officer's approval for kernel PRNG bits. 2013-09-17 14:19:05 +00:00
MAINTAINERS Remove cokane@ from MAINTAINERS for 3dfx(4)/tdfx(4) because their email 2014-11-25 05:25:12 +00:00
Makefile targets now needs .PHONY 2015-06-22 16:13:17 +00:00
Makefile.inc1 Make all shared library a relative symlink 2015-06-27 23:28:56 +00:00
ObsoleteFiles.inc Add more obsolete files 2015-06-21 06:57:40 +00:00
README Import OpenSSL 1.0.1o. 2015-06-12 16:33:55 +00:00
UPDATING Add a note on the second sendmail fix for WeakDH interoperability. 2015-06-25 01:42:59 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree.  See build(7)
and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The `buildkernel` and `installkernel` targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process.  See build(7), config(8),
and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
for more information.

Note: If you want to build and install the kernel with the
`buildkernel` and `installkernel` targets, you might need to build
world before.  More information is available in the handbook.

The kernel configuration files reside in the sys/<arch>/conf
sub-directory.  GENERIC is the default configuration used in release builds.
NOTES contains entries and documentation for all possible
devices, not just those commonly used.


Source Roadmap:
---------------

bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tests		Regression tests which can be run by Kyua.  See tests/README
		for additional information.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html