Find a file
Mark Johnston 36f0a34ca6 libthr: Force the thr_wake() symbol to be resolved during initialization
Otherwise the lock upgrade performed by rtld's load_filtees() can result
in infinite recursion, wherein:
1. _rtld_bind() acquires the bind read lock,
2. the source DSO's filtees haven't been loaded yet, so the lock upgrade
   in load_filtees() cause rtld to jump to _rtld_bind() and release the
   bind lock,
3. _thr_rtld_lock_release() calls _thr_ast(), which calls thr_wake(),
   which hasn't been resolved yet,
4. _rtld_bind() acquires the bind read lock in order to resolve
   thr_wake(),
5. ...

See the linked pull request for an instance of this problem arising with
libsys.  That particular instance is also worked around by commit
e7951d0b04.

Reported by:	brooks
Reviewed by:	kib
Pull Request:	https://github.com/freebsd/freebsd-src/pull/908
MFC after:	1 week
Sponsored by:	Innovate UK
2024-02-02 10:32:30 -05:00
.cirrus-ci
.github github: Enable github workflow output from checkstyle9.pl 2024-02-01 22:53:58 -07:00
bin chflags(1): obey siginfo request on chflagsat(2) failure 2024-01-30 22:21:55 +02:00
cddl dtrace tests: Diff expected and actual output upon a miscompare 2024-01-10 18:19:36 -05:00
contrib contrib/tzdata: import tzdata 2024a 2024-02-02 10:01:39 +08:00
crypto kerberos: Fix numerous segfaults when using weak crypto 2024-01-17 23:46:57 -08:00
etc Minor change to update these files so new freebsd*.cf files are 2024-02-01 00:27:37 +00:00
gnu misc: Remove ancient SCCS tags. 2023-11-26 22:23:27 -07:00
include Revert "nl_types.h: explicitly include cdefs.h" 2024-01-24 22:50:49 -05:00
kerberos5 kerberos5: Mitigate the possibility of using an old libcrypto 2024-01-18 07:12:14 -08:00
lib libthr: Force the thr_wake() symbol to be resolved during initialization 2024-02-02 10:32:30 -05:00
libexec rtld-elf: Avoid unnecessary lock_restart_for_upgrade() calls 2024-02-02 09:39:54 -05:00
release Revert "pkgbase: Create a FreeBSD-dtb package" 2024-02-02 11:39:51 +01:00
rescue misc: Remove ancient SCCS tags. 2023-11-26 22:23:27 -07:00
sbin pflowctl: add missing break to case 's' 2024-02-01 17:03:12 -05:00
secure ssh: Update to OpenSSH 9.6p1 2024-01-04 22:16:30 -05:00
share share/examples/IPv6/USAGE: remove 2024-02-02 08:30:18 -07:00
stand kboot: update copyright on these files. 2024-01-28 13:04:32 -07:00
sys unix/dgram: don't clear so_error in case of MSG_PEEK 2024-02-01 13:37:26 -08:00
targets Merge llvm-project main llvmorg-17-init-19304-gd0b54bb50e51 2023-12-08 18:34:50 +01:00
tests tests/netinet: add a demo of TCP implied connect 2024-02-01 13:43:36 -08:00
tools checkstyle9.pl: Differentiate errors and warnings 2024-02-02 00:24:32 -07:00
usr.bin freebsd-tips: freebsd-update fetch, then install 2024-02-02 08:25:44 -07:00
usr.sbin kbdmap: fix typo preventing kbdmap to work under vt 2024-02-01 08:45:50 +01:00
.arcconfig
.arclint
.cirrus.yml Cirrus-CI: stop forcibly installing pkg 2023-12-12 19:50:19 -05:00
.clang-format Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
.git-blame-ignore-revs git-blame-ignore-revs: OptionalObsoleteFiles.inc sorting commits 2023-11-15 17:47:02 +00:00
.gitattributes Remove SVN related Git attributes 2023-12-26 10:28:28 -07:00
.gitignore .gitignore: Ignore LSP generated .cache 2023-03-07 10:04:18 -05:00
.mailmap mailmap: Translate olce's personal address to olce@FreeBSD.org 2024-01-04 15:59:01 +01:00
CONTRIBUTING.md CONTRIBUTING.md: fix typo from commmit to commit 2023-12-28 10:01:03 -05:00
COPYRIGHT copyright: Bump the copyright date. 2023-12-31 23:15:43 -07:00
LOCKS Update LOCKS for Git 2023-12-26 10:28:25 -07:00
MAINTAINERS MAINTAINERS: change linuxkpi review Phabricator group. 2024-01-16 19:23:39 +00:00
Makefile Import tzdata 2024a 2024-02-02 09:53:59 +08:00
Makefile.inc1 Revert "pkgbase: Create a FreeBSD-dtb package" 2024-02-02 11:39:51 +01:00
Makefile.libcompat build{libcompat}: Pass UNIVERSE_TOOLCHAIN_PATH to the _lc_build-tools submake 2023-08-21 21:00:45 -07:00
Makefile.sys.inc Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
ObsoleteFiles.inc callout: retire callout_async_drain() 2024-01-24 09:33:27 -08:00
README.md README.md: link to the list of supported platforms 2022-11-01 12:20:55 -03:00
RELNOTES RELNOTES: document powerd enable on RPI images 2024-01-30 14:16:51 -06:00
UPDATING Add a note about sendmail 8.18.1's stricter SMTP protocol enforcement 2024-02-01 00:21:15 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory.

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

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), config(8), FreeBSD handbook on building userland, and Handbook for kernels for more information, including setting make(1) variables.

For information on the CPU architectures and platforms supported by FreeBSD, see the FreeBSD website's Platforms page.

Source Roadmap:

Directory Description
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.
gnu Commands and libraries under the GNU General Public License (GPL) or Lesser General Public License (LGPL). Please see gnu/COPYING and gnu/COPYING.LIB 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.
stand Boot loader sources.
sys Kernel sources (see sys/README.md).
targets Support for experimental DIRDEPS_BUILD
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 FreeBSD Handbook.