FreeBSD src
Go to file
Ed Schouten 938809f941 Fix up prototypes of basename(3) and dirname(3) to comply to POSIX.
POSIX allows these functions to be implemented in a way that the
resulting string is stored in the input buffer. Though some may find
this annoying, this has the advantage that it makes it possible to
implement this function in a thread-safe way. It also means that they
can be implemented in a way that they work for paths of arbitrary
length, as the output string of these functions is never longer than
max(1, len(input)).

Portable code already needs to be written with this in mind, so in my
opinion it makes very little sense to allow the existing behaviour.
Prevent the base system from falling back to this by switching over to
POSIX prototypes.

I'm not going to bump the __FreeBSD_version for this. The reason is that
it's possible to account for this change in a portable way, without
depending on a specific version of FreeBSD. An exp-run was done some
time ago. As far as I know, all regressions as a result of this have
already been fixed.

I'll give this change some time to settle. In the long run I want to
replace our copies by ones that are thread-safe and don't depend on
PATH_MAX/MAXPATHLEN.
2016-07-28 16:20:27 +00:00
bin When a debugger attaches to the process, SIGSTOP is sent to the 2016-07-28 08:41:13 +00:00
cddl
contrib libcxxrt: fix demangling of wchar_t 2016-07-27 17:18:08 +00:00
crypto Remove duplicate symbols from libroken version-script.map 2016-07-21 18:12:39 +00:00
etc Move chown tests to proper path 2016-07-23 05:49:18 +00:00
gnu rename ARM's libunwind.S to to avoid conflict with llvm libunwind 2016-07-27 16:34:19 +00:00
include Fix up prototypes of basename(3) and dirname(3) to comply to POSIX. 2016-07-28 16:20:27 +00:00
kerberos5
lib Fix up prototypes of basename(3) and dirname(3) to comply to POSIX. 2016-07-28 16:20:27 +00:00
libexec
release Create a /usr/home -> /home symlink for the arm images to 2016-07-20 22:49:33 +00:00
rescue
sbin Due to dropped mbuf in netisr queue route(8) can fall into infinity 2016-07-27 08:26:34 +00:00
secure
share Regenerate src.conf.5 after r303394 2016-07-28 13:35:46 +00:00
sys Do not delegate a work to geom event thread which can be done inline. 2016-07-28 15:57:01 +00:00
targets
tests
tools Add a hack to add weekday to date format for ko_KR locale. 2016-07-27 18:12:36 +00:00
usr.bin Pull a copy of the input string before calling basename() and dirname(). 2016-07-28 16:06:37 +00:00
usr.sbin Clean up use of basename() and dirname(). 2016-07-28 16:02:30 +00:00
.arcconfig
.arclint
COPYRIGHT
LOCKS
MAINTAINERS Remove myself from kern_timeout.c yeah! 2016-07-27 20:37:32 +00:00
Makefile SYSTEM_COMPILER: Rework the logic to allow a 'make test-system-compiler'. 2016-07-24 18:05:05 +00:00
Makefile.inc1 Remove ${OBJDUMP} as it is not used by the base system 2016-07-27 14:58:15 +00:00
Makefile.libcompat Don't disable binutils/elftoolchain bootstrapping with external compiler. 2016-07-24 18:50:11 +00:00
ObsoleteFiles.inc
README
UPDATING Minor wording improvements to the note about pipe(2) removal. 2016-07-20 18:00:22 +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.

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