Home | History | Annotate | Download | only in gen
History log of /src/lib/libc/gen/Makefile.inc
RevisionDateAuthorComments
 1.225  22-Apr-2025  nia Merge the manual pages for timespec_get(3) and timespec_getres(3).
 1.224  21-Apr-2025  nia libc: C23: add timespec_getres(3) function

timespec_getres is to timespec_get as clock_getres is to clock_gettime.

PR standards/58608
PR lib/59140
 1.223  09-Mar-2025  christos remove extattrn_namespace_to_string.3 it is in extattr.3 now
 1.222  09-Mar-2025  christos move the man page in the same place as FreeBSD for consistency.
 1.221  02-Oct-2024  christos Add workaround for clang atomics
 1.220  29-Aug-2024  rillig arc4random: suppress another lint warning
 1.219  29-Aug-2024  riastradh arc4random(3): Pacify some of lint's complaints.

PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork
 1.218  08-Jul-2024  christos PR/58391: Noriyuki Soda: re-adding syslog_ss() to syslog.h and syslog.3
 1.217  20-Jan-2024  christos branches: 1.217.2;
Catch up with all the lint warnings since exit on warning was disabled.
Disable 'missing header declaration' and 'nested extern' warnings for now.
 1.216  31-May-2022  riastradh branches: 1.216.2;
libc: Reintroduce getentropy.

This was introduced two years ago when the getrandom/getentropy API
question was still open, and removed because the discussion was
ongoing. Now getentropy is more widely adopted and soon to be in
POSIX. So reintroduce the symbol into libc since we'll be keeping it
anyway. Discussion of details of the semantics, as interpreted by
NetBSD, is ongoing, but the symbol needs to get in before the
netbsd-10 branch. The draft POSIX text is
(https://www.opengroup.org/austin/docs/austin_1110.pdf):

SYNOPSIS
#include <unistd.h>

int getentropy(void *buffer, size_t length);

DESCRIPTION
The getentropy() function shall write length bytes of data
starting at the location pointed to by buffer. The output
shall be unpredictable high quality random data, generated by
a cryptographically secure pseudo-random number
generator. The maximum permitted value for the length
argument is given by the {GETENTROPY_MAX} symbolic constant
defined in <limits.h>.

RETURN VALUES
Upon successful completion, getentropy() shall return 0;
otherwise, -1 shall be retunred and errno set to indicate the
error.

ERRORS
The getentropy() function shall fail if:

[EINVAL] The value of length is greater than
{GETENTROPY_MAX}.

The getentropy() function may fail if:

[ENOSYS] The system does not provide the necessary
source of entropy.

RATIONALE
The getentropy() function is not a cancellation point.

Minor changes from the previous introduction of getentropy into libc:

- Return EINVAL, not EIO, on buflen > 256.
- Define GETENTROPY_MAX in limits.h.

The declaration of getentropy in unistd.h and definition of
GETENTROPY_MAX in limits.h are currently conditional on
_NETBSD_SOURCE. When the next revision of POSIX is finalized, we can
expose them also under _POSIX_C_SOURCE > 20yymmL as usual -- and this
can be done as a pullup without breaking existing compiled programs.
 1.215  15-Nov-2021  christos Add man pages for posix_spawn_file_actions_add{f,}chdir from piyush
 1.214  03-May-2021  simonb Add links for the other functions documented in arc4random(3).
 1.213  03-May-2021  simonb Whitespace police.
 1.212  20-Apr-2021  christos Instead of compiling files with -fcommon, create an include file and declare
the 3 symbols that need to be common using an attribute. Put all the 3 symbol
definitions in libc in one place (initfini.c). Reviewed by joerg@
 1.211  12-Apr-2021  mrg use -fcommon where necessary.
 1.210  10-Mar-2021  simonb Add manpage links for asysctl(3) and asysctlbyname(3), already described
in sysctl(3).
 1.209  26-Feb-2021  rin Add missing endutent.3 to MAN.
 1.208  26-Feb-2021  christos put back line accidentally removed.
 1.207  26-Feb-2021  christos PR/56012: Kouichi Hashikawa: getutent(3) man page is missing
 1.206  22-Sep-2020  nia remove getentropy bits
 1.205  05-Jul-2020  christos revert previous; utmpxname is already documented in getlastlogx.3. Should
probably be moved.
 1.204  05-Jul-2020  christos document utmpxname(3)
 1.203  10-May-2020  maya Don't add getentropy.c to the build (remove symbol from libc)

Still being discussed in tech-userlevel. If we wait any longer someone
is going to try the excuse that the discussion is entirely pointless, since
removing symbols is too hard.
 1.202  06-May-2020  nia Add getentropy() to libc - a simple wrapper to access the kernel CSPRNG.

Posted to tech-userlevel@ a week ago and reviewed by riastradh@.

GETENTROPY(3) Library Functions Manual GETENTROPY(3)

NAME
getentropy - fill a buffer with high quality random data

LIBRARY
Standard C Library (libc, -lc)

SYNOPSIS
#include <unistd.h>

int
getentropy(void *buf, size_t buflen);

DESCRIPTION
The getentropy() function fills a buffer with high quality random data,
suitable for seeding cryptographically secure psuedorandom number
generators.

getentropy() is only intended for seeding random number generators and is
not intended for use by regular code which simply needs secure random
data. For this purpose, please use arc4random(3).

The maximum value for buflen is 256 bytes.

IMPLEMENTATION NOTES
getentropy() reads from the sysctl(7) variable kern.arandom.

RETURN VALUES
The getentropy() function returns 0 on success, and -1 if an error
occurred.

ERRORS
getentropy() will succeed unless:

[EFAULT] The buf argument points to an invalid memory address.

[EIO] Too many bytes were requested.

SEE ALSO
arc4random(3), rnd(4)

STANDARDS
The getentropy() function is non-standard.

HISTORY
The getentropy() function first appeared in OpenBSD 5.6, then in
FreeBSD 12.0, and NetBSD 10.
 1.201  22-Apr-2020  joerg Explicitly use -fcommon for globals shared between libc and CSU.
 1.200  09-Sep-2017  kamil Install new man-page devname_r(3).

This is a link to devname(3).
 1.199  09-May-2017  kre Add the new signalname/signalnext/signalnumber interface to libc.

This as discussed on current-users in the thread
entitled:
Proposal: new libc/libutil functions to map SIGXXXX <-> "XXXX"
that can be found (starting at):
http://mail-index.netbsd.org/current-users/2017/04/28/msg031600.html

These functions provide the mechanism to enable applications
to divorce themselves from internal details of the signal
implementation.

Libc minor bumped, prototypes in <signal.h>, sets lists updated (and sorted).

One and all: feel free to improve the sources & man page (etc), but
please do not change the function signatures without discussion.
 1.198  07-Feb-2017  kamil branches: 1.198.2;
Mark exect(3) obsolete and bind it to plain execve(2) on all platforms

The original exect(2) from BSD4.2 was enabling bit for tracing
(single-step mode) and calling execve(2). The purpose of it was to generate
a signal for a tracer once the application will change its image to a new
program.

This approach no longer works as:
- exect(2) traces (single-steps) libc and it requires hundreds or
thousands steps before entering a new image
- it's vax and x86 specific code
- this functionality has been moved to the kernel - once a process is
traced it will generate SIGTRAP with si_code TRAP_EXEC and route it to
its debugger
- the side effects and unportability make this interface unusable
- there are no known users of this interface
- it apparently never worked better since day0 of NetBSD ("day0 bug")

Users are requested to move to other execve(2) variants. Calling current
execve(2) as it is the most similar behavior to this one from BSD4.2.

Discussed several times on mailing lists and in PR/51700.

Add warning to exect(3) telling about marking this function obsolete.

This function is prepared to be removed in next libc major bump.

Sponsored by <The NetBSD Foundation>
 1.197  12-Jan-2017  christos branches: 1.197.2;
Split syslog.c to:

- syslog_ss.c *_ss api functions (don't use stdio, time)
- syslog.c: *syslog* non _ss api functions (use stdio, time)
- xsyslog.c> common guts.

The motivation for this is not to drag in stdio/locale/floating point/time
for every binary, since syslog_ss() is used in __stack_check_fail() for SSP.
 1.196  04-Oct-2016  kamil Add timespec_get(3) in <time.h> and enable unconditionally struct timespec

These changes conforms to the C11 standard
References:
- 7.27.1/3 Components of time (struct timespec)
- 7.27.2.5 The timespec_get function

According to ISO/IEC 9899:201x (draft) <time.h> defines the timespec
structure and declares the timespec_get(3) function with TIME_UTC
definition.

According to a C++17 standard draft <ctime> offers the same interface in
the std:: namespace.

The timespec_get function modifies the timespec object pointed by ts
to hold the current calendar time in the given base. The standard notes
only the TIME_UTC base with implementation defined value, set it to 1
as zero is reserved for error handling. Once operation was successful this
function returns passed base, otherwise exits with zero.

The timespec struct was already part of the POSIX standard in <time.h>.

Enable this interface unconditionally in the header to allow to use it
in a code prior C11 and C++17 as an extension.

Review notes from <christos>
 1.195  05-Jun-2016  christos branches: 1.195.2;
Document bsd_signal (From GSoC 2016 by Charles Cui)
 1.194  03-Apr-2016  christos userland bits for wait6/waitid.
 1.193  14-Jan-2016  christos add stravis(3) from OpenBSD
 1.192  25-Oct-2015  pooka Don't include daemon.c in RUMPRUN=yes mode.

The standard implementation uses fork(), needs an alternative
implementation for Rumprun.
 1.191  20-Jan-2015  christos Factor out popen() code into separate functions and create popenve()
using the new functions, a safer version of popen() that does not
involve a shell. Correct manual page inaccuracies.
 1.190  10-Dec-2014  pooka Add two more Makefile conditionals required for RUMPRUN=yes

* do not build _errno.c (different thread/tls handling)
* do not build either phk- or jemalloc (different backing page allocation)

Somehow I missed these in the previous commit, but now libc built with
RUMPRUN=yes works also with rumprun-posix, so there's reasonably high
confidence that I didn't miss anything anymore.
 1.189  26-Sep-2014  christos add execvpe, execlpe (reviewed by phone)
 1.188  13-Jun-2014  joerg Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.
 1.187  16-Jan-2014  christos branches: 1.187.2;
"soon" is "now". Remove all __indr_reference crap.
 1.186  16-Jan-2014  christos Add the {v,}{err,warn}c flavors, from FreeBSD.
 1.185  03-Nov-2012  christos add utimens and lutimens wrappers using utimensat.
 1.184  12-Apr-2012  christos branches: 1.184.2;
man page for getpassfd
 1.183  12-Apr-2012  christos Add a new getpass implementation that does not mess with signals, and
include getpass_r
 1.182  11-Feb-2012  martin Add userland part of posix_spawn. Libc functions imported from FreeBSD.
Based on Charles Zhang's summer of code project.
 1.181  16-Dec-2011  wiz Split extattr(3) into two man pages to get rid of ugly duplicate Nd.
Work done by Abhinav Upadhyay with minimal cleanup.
 1.180  25-Aug-2011  joerg branches: 1.180.2;
Uses non-literal format strings
 1.179  03-Aug-2011  manu Make cp -p and mv preverve extended attributes, and complain if they cannot.

Also introduce library functions for copying extended attributes from one
file to another:
- extattr_copy_file, extattr_copy_fd, extattr_copy_link, with FreeBSD style,
where a namespace is to be supplied
- cpxattr, fcpxattr, lcpxattr, with Linux style, where all namespaces
accessible to the caller are copied, and the others are silently ignored.
 1.178  26-Mar-2011  christos add fpgetprec/fpsetprec
 1.177  16-Mar-2011  erh Remove one last reference to commaize_number.3
 1.176  16-Mar-2011  christos goodbye short-live commaize_number(3), if you liked it:
#define commaize_number(s, l, n) snprintf(s, l, "%'llu", (unsigned long long)n)
 1.175  15-Mar-2011  erh PR#7540, add a commaize_number function, which inserts comma into a string
of digits to make it more readable. This is soon to be used in /bin/ls.
 1.174  12-Mar-2011  christos Fix various vis/unvis issues:
- no need for all the weak symbols
- define a new _VIS_END flag for UNVIS_END so that there are no collisions
between and vis and unvis flags.
- add bound versions of the vis and unvis functions that take the length of
the destination buffer. Unlike the OpenBSD ones they return -1 or NULL if
the buffer is not large enough, instead of silently truncating.
 1.173  12-Dec-2010  christos errlist.c is automatically generated now.
 1.172  26-Sep-2010  yamt fix rewinddir on nfs. fix PR/42879 (and probably PR/40229.)
 1.171  27-Aug-2010  christos add psiginfo.
 1.170  22-May-2010  tnozaki 1. hide _CTYPE_PRIVATE section in ctype.h, move them to private header ctype_local.h.
2. do not use _CTYPE_NUM_CHARS macro to read data from LC_CTYPE(old BSDCTYPE style) database.
because 1<<CHAR_BIT is MD, so i added MI macro _CTYPE_CACHE_SIZE(1<<8).
3. remove _NB_CACHED_RUNE macro, use _CTYPE_CACHE_SIZE instead.
 1.169  13-May-2010  jruoho Build links for syslogp(3), syslogp_r(3), vsyslogp(3), and vsyslogp_r(3).

From Takahiro Kambe in PR lib/43301.
 1.168  08-Apr-2009  wiz Link glob(3) to glob_pattern_p(3).
 1.167  11-Jan-2009  christos branches: 1.167.2;
merge christos-time_t
 1.166  02-Jan-2009  tnozaki Fixes PR lib/39662, shortcomings in LC_{MONETARY,NUMERIC,TIME,MESSAGES} db format.
ok'ed by core and releng.
(thanks for agc@, snj@ and i'm sorry for long time patience).

[libc]
- localeio.[ch] and lc*.[ch] in src/lib/libc/locale was replaced by
new locale-db implementation using citrus_db backend,
see src/lib/libc/citrus/citrus_lc_*.[ch].
- add citrus_bcs_strtou?l.c. don't use strtou?l locale implementation
internally, because they're locale-aware function.
- add some stubs for multi-locale issue, see {current,global}_locale.c.
- remove some obsolete file, setrunelocale.c, ___runetype_mb.c.
- remove __savectype() from ctypeio.[ch].

[tools]
- mklocale(1): add new option ``-t'' that generates new style
LC_{MONETARY,NUMERIC,TIME,MESSAGES} locale-db format.
- chrtbl(1): added ctypeio.[ch] for __savectype().

[locale-db]
- added en_US.US-ASCII locale.
- removed some shareable locale definition file:
en_US.US-ASCII -> en_US.ISO8859-1, en_US.UTF-8
zh_CN.eucCN -> zh_CN.GB18030
and more...see src/share/locale/*/Makefile.
- remove obsoleted locale sr_YU, added new locale sr_ME, sr_RS.
- change locale name ja_JP.ISO2022-JP* -> ja_JP.ISO-2022-JP*
for X11's locale.alias file alignments.
- fix regression test, wrong wcs?width(3), NAN/INF usage.

i tested release-build following arch:
i386, amd64, hpc{mips,arm,sh}, sparc64, vax.

citrus_lc_*.[ch] also can read old-plain-text style locale-db.
so that backward compatibility is keeped, but lc*.[ch] can't read
new citrus_db'ed locale-db and localeio.c never check sanity,
so forward compatibility is broken ;-<

old mklocale(1) doesn't know -t option, so you have to rebuild toolchain.
 1.165  05-Dec-2008  ad Add fdopendir(), from Solaris/Linux.
 1.164  20-Nov-2008  matt Add new ptree (Patricia / RADIX tree) implementation to NetBSD.
 1.163  05-Sep-2008  lukem branches: 1.163.4; 1.163.6;
Add strunvisx(3) as a link to unvis(3)
 1.162  30-Jun-2008  matt Move rb.c from sys/lib/libkern to common so it can be in both libc and libkern.
 1.161  17-Jun-2008  he Correct the use of MLINKS for the cpuset_* manual page links.
The value for MLINKS is a list of pairs, where the original manpage
is listed first in each pair...
 1.160  16-Jun-2008  rmind - Add affinity(3) manual page, which describes thread affinity,
pthread_setaffinity_np(3) and pthread_getaffinity_np(3) functions,
provides simple code example.
- Add cpuset(3) manual page, which describes API of CPU-sets.

Thanks <wiz> for many improvements!
 1.159  14-Dec-2007  christos branches: 1.159.4; 1.159.6;
- add dehumanize_number
- decls for humanize_number and dehumanize_number are in stdlib.h
 1.158  22-Feb-2007  drochner branches: 1.158.4;
-get cabs() and cabsf() out of public view - these are historical and
conflict with C99 functions which are builtins in newer gcc
(actually, the old cabs() is ABI compatible with the new _complex one
on i386, but this is purely accidental)
remove public prototypes and manpages, move the code into a compat
subdirectory as libc does so that binary compatibility is kept
-add a manpage for the isgreater() etc macros, borrowed from FreeBSD
 1.157  22-Nov-2006  christos Don't expose _ss functions for 4.0. Requested by core.
 1.156  11-Nov-2006  christos on non-x86 execl*.c needs alloca.
 1.155  09-Nov-2006  christos no stack protector warning for execvp
 1.154  27-Oct-2006  christos add async-signal-safe versions: syslog_ss and vsyslog_ss
multithread-safe syslog_r and vsyslog_r are not async-signal-safe.
 1.153  27-Oct-2006  uwe Add syslog_r.3 link (hi christos).
 1.152  25-Oct-2006  christos add _r functions for syslog from OpenBSD
 1.151  03-Jul-2006  drochner move manpages for frexp/ldexp/modf to libm -- the (most) implementation is
already there
 1.150  27-Jun-2006  drochner First step to clean up the variety of frexp(), ldexp() and modf()
implementations.
Long term goal is to use the implementation in libm and get rid of
the libc instances. For now, we need to keep one in libc for compatibility,
it belongs into the compat subtree.
The switch is per-arch. Should be painless for ieee754 boxes.
If all ieee754 archs are switched, libc/gen/{frexp,ldexp,modf}_ieee754.c
can be removed.
 1.149  17-Apr-2006  salo Add setttyentpath(), functionally equivalent to setttyent() but takes an
additional argument to read the ttys information from an alternate path
istead of _PATH_TTYS.

Required for upcoming init(8) changes.

Mostly from <apb>.

Bump libc minor.
 1.148  30-Dec-2005  agc Add Todd Miller's ftw(3) and nftw(3) file-tree walking functionality,
from OpenBSD.

Bump libc minor to 136.
 1.147  03-Oct-2005  wiz getfsent(3) does not contain any information about the (nonexisting)
function getfstype(), so don't MLINK it. Remove getfstype from other
places that reference it too.

Noted by jmc@openbsd.
 1.146  25-Sep-2005  christos add getenv_r and ttyname_r
 1.145  13-Sep-2005  christos compat core reorg.
 1.144  19-Aug-2005  christos 64 bit inode changes
 1.143  12-Apr-2005  drochner Both libcurses and libc installed a getcap(3) manpage, and both used it
as target for a bunch of MLINKS. This had the effect that whatever came
last in install overwrote everything from the other camp.
Solve this by renaming the libc page -- this makes sense because no
function is really named "getcap" here.
 1.142  05-Apr-2005  kleink Fix typo in previous.
 1.141  04-Apr-2005  christos mlinks for get{gr,pw}ent_r.3
 1.140  06-Jan-2005  lukem branches: 1.140.2; 1.140.4; 1.140.6;
document getgroupmembership(3)
 1.139  06-Jan-2005  lukem Implement getgroupmembership(3). This is similar to getgrouplist(3), except
that the "int maxgroups" and "int *ngroups" parameters are separated into
two separate parameters which makes it possible to call multiple nsswitch
back-ends and have the results correctly merged.
getgrouplist(3) is now implemented using getgroupmembership(3).

Proposed on tech-userlevel on December 1, 2004.
 1.138  02-Jan-2005  thorpej System calls and support routines for file system extended attributes. Libc
version is bumped to 12.125.

From FreeBSD.
 1.137  16-Dec-2004  atatat Add a function called getdevmajor().

It tells you the major device number for whatever character or block
device you ask it. This is sort of the inverse of devname(3) but not
quite, since it's backed by the kernel (sysctl's kern.drivers
information) and not a database cobbled together from the contents of
the filesystem.
 1.136  10-Nov-2004  lukem whitespace cleanup
 1.135  10-Nov-2004  lukem Add: getgrgid_r(3) getgrnam_r(3) getpwnam_r(3) getpwuid_r(3)
 1.134  13-Jul-2004  seb Add wordexp(3). The wordexp function performs shell-style word expansions.
This implementation is wrapper around the undocumented wordexp sh(1)
built-in command.

From FreeBSD.
Provided in PR lib/26123.
Approved by kleink@.
 1.133  31-May-2004  itojun oops, i've committed BSD auth stuff by mistake.
 1.132  31-May-2004  itojun closefrom(3)
 1.131  31-May-2004  itojun implement closefrom(3).
 1.130  09-May-2004  kleink There are two instances of getsubopt.c, one in gen, which came by the
ways of 386BSD, and one in stdlib, which is from Lite-2. The former was
picked up by the build process and has seen a little more maintenance
while the latter's location is "right", so bring the latter up to par
with the former and dispose of the (now) latter.

Reported by David A. Holland in PR lib/25160, which is worded in a
far less mind-boggling fashion than the above.
 1.129  21-Apr-2004  christos Replace the statfs() family of system calls with statvfs().
Retain binary compatibility.
 1.128  25-Mar-2004  atatat Move sysctlbyname(), sysctlnametomib(), and sysctlgetmibinfo() from
sysctl(8) into libc, making the minor number jump. Add prototypes to
sys/sysctl.h, fix sets, modify man pages, etc. That oughta cover it.
 1.127  04-Mar-2004  kleink * Turn isinf(3) and isnan(3) into C99-style macros.
* Make it possible for ports to override these (i.e., VAX).
* Remove isnanl(), which was internal to libc only.
 1.126  15-Jan-2004  kleink Add C99 fpclassify(), isfinite(), isnormal(), and signbit() macros.
 1.125  18-Sep-2003  jdolecek remove pw_dup(3), for now at least
follows discussion on mailing lists, discussed in private e-mail with Itojun
 1.124  09-Sep-2003  itojun add randomid(3).
 1.123  09-Sep-2003  itojun have pw_dup(3). from openbsd
 1.122  26-Aug-2003  wiz Add man page for getlastlogx and friends.
 1.121  28-May-2003  christos add mutex locking for directories and readdir_r(3). Influenced by FreeBSD.
 1.120  13-Feb-2003  nathanw Add pthread_atfork() man page.
 1.119  13-Feb-2003  nathanw Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).
 1.118  21-Jan-2003  wiz Add makecontext(3) from Klaus Klein.
 1.117  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.116  15-Jan-2003  kleink Add sighold(3), sigignore(3), sigrelse(3) and sigset(3) to libc.
Fixes PR lib/19212, now redesignated standards/19212, from David Laight.
 1.115  27-Sep-2002  wiz Add documentation for utmpx and some related functions.
Thanks for some explanations to christos, and for some STANDARDS hints
to Klaus Klein.
 1.114  22-Aug-2002  abs Move humanize_number(3) from libutil to libc as per discussion on tech-misc
Revert minor number bump on libutil (with note to skip it next update), and
bump libc.
 1.113  27-Jul-2002  christos Add utmp processing functions
 1.112  30-Jun-2002  bjh21 Version times() so that programs compiled before the recent change to make
sysconf(_SC_CLK_TCK) return hz will work.

In detail:
__times13() returns values scaled by hz.
times() returns values scaled by 100.
<sys/times.h> renames times() to __times13().

_SC_CLK_TCK has changed from 3 to 39.
sysconf(3) returns 100.
sysconf(39) returns hz.
CLK_TCK is defined as sysconf(39).
 1.111  24-May-2002  itojun add arc4random(3). from openbsd
 1.110  22-Feb-2002  christos branches: 1.110.2;
A simple utmpx implementation. Nothing uses it yet.
TODO: write the lastlog*() stuff.
 1.109  24-Jan-2002  lukem - Implement pwcache_userdb(3), which changes the routines that
user_from_uid(3) and uid_from_user(3) use to lookup user information.
- Implement pwcache_groupdb(3), which changes the routines that
group_from_gid(3) and gid_from_group(3) use to lookup group information.
- Ensure that private functions in pwcache.c are declared static
- Use strlcpy(3) instead of strncpy(3)
 1.108  07-May-2001  kleink Internally rename sysconf() to __sysconf() to make its latter name suitable
for use from public headers. Also, do so on all platforms.
 1.107  10-Mar-2001  cgd Add shquote() and shquotev(). From the manual page:
The shquote() and shquotev() functions copy strings and transform the
copies by adding shell escape and quoting characters. They are used to
encapsulate arguments to be included in command strings passed to the
system() and popen() functions, so that the arguments will have the cor-
rect values after being evaluated by the shell.
 1.106  19-Feb-2001  cgd branches: 1.106.2;
add getprogname() and setprogname()
 1.105  20-Oct-2000  briggs Add {__,}fmtcheck(), a function specified by Bill Sommerfeld to check
a user-supplied format string against a fallback format string to ensure
that they will consume arguments of the same type.

libc minor bump for new API entry point.
 1.104  29-Aug-2000  wennmach Added MLINKS for svis, strsvis, and strsvisx
 1.103  03-Jan-2000  msaitoh branches: 1.103.4;
nlist for COFF
 1.102  13-Sep-1999  kleink Add an XSH5 ulimit()/<ulimit.h> implementation.
 1.101  12-Sep-1999  kleink Add an XSH5 fmtmsg() implementation.
 1.100  12-Sep-1999  kleink Move the function implementations of (the non-ANSI) isascii() and toascii()
into separate modules to avoid namespace clashes.
 1.99  01-May-1999  ross Fix fpgetmask.3 MLINKS braino.
 1.98  30-Apr-1999  ross * New MI man page for fp{set,get}{round,sticky,mask}(3).
* Implement fpgetsticky() for alpha.
* Direct fpsetsticky() and fp{get,set}mask() into alpha kernel via sysarch(2).
* Define new sysarch(2) stub for above and install and distribute sysarch.h
for alpha. (The fpcr IS user mode r/w, but for reasons beyond the scope
of a commit message kernel calls are needed.) And much kernel Magick is
required before these do anything, but this way programs compiled under
1.4 will DTRT on future snapshots and releases.
 1.97  24-Feb-1999  drochner branches: 1.97.2;
use ${ARCHDIR} instead of ${.CURDIR}/arch/${MACHINE_ARCH} where appropriate
libc builds on pmax again
 1.96  19-Jan-1999  abs Add '-f disktab' option to disklabel, via lib/6623 from
Greg A. Woods <woods@most.weird.com>. (Very) slightly tweaked disklabel.8
 1.95  15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.94  30-Nov-1998  thorpej Build __errlist14.c, __siglist14.c, and __signame14.c
 1.93  26-Sep-1998  christos Adapt to new signal changes (from Jason)
 1.92  28-Jul-1998  mycroft Add links for uid_from_user(3) and gid_from_group(3).
 1.91  08-Jun-1998  lukem * move pw_scan() from libutil to libc
* add support for YP "master.passwd.by*" (master.passwd in YP, including
pw_passwd) and "passwd.adjunct.by*" (SunOS `secure' maps (?)), based
on code in FreeBSD and partially from OpenBSD.
this is only used if euid == 0.
with this, the YP "passwd.by*" maps can have `*' in the pw_passwd field.
* use pw_scan() to parse YP "passwd.by*" and "master.passwd.by*" entries

XXX: i didn't test the "passwd.adjunct" support...
 1.90  28-Apr-1998  fair make explicit why an MLINKS for setpwfile.3 is commented out
 1.89  19-Mar-1998  fair remove getsubopt.3 - there is another man page for this in ../stdlib that came from the Lite2 merge. This closes PR4600
 1.88  02-Feb-1998  perry add realpath.3, getsubopt.[c3]
 1.87  02-Feb-1998  perry it turns out we don't want getvfsbyname after all.
 1.86  02-Feb-1998  perry merge/update to lite-2
 1.85  20-Dec-1997  kleink Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.
 1.84  14-Nov-1997  mrg add missing .Nm entries. from spz@serpens.swb.de.
 1.83  03-Nov-1997  kleink Forgot to add basename()/dirname() manpages in last commit.
 1.82  02-Nov-1997  kleink Add basename() and dirname(), from XPG4.2.
 1.81  21-Oct-1997  fvdl branches: 1.81.2;
Hacks to enable libc to work without bumping the major.
 1.80  20-Oct-1997  christos Bring timezone back to libc.
 1.79  16-Oct-1997  christos timezone moved to libcompat
 1.78  16-Jul-1997  mikel add toascii(3)
 1.77  24-Feb-1997  lukem branches: 1.77.2;
man page for stringlist functions
 1.76  17-Jan-1997  lukem Add stringlist implementation
Convert getnetgrent from private stringlist to public version
 1.75  07-Nov-1996  jtc New __errno() function, returns the address of the errno variable.
 1.74  16-Oct-1996  perry branches: 1.74.2;
Nuked tahoe machine specific conditionals.
 1.73  27-Sep-1996  cgd Seriously revamp libc's nlist()/__fdnlist() support:
(1) split nlist() into multiple files, for clarity and to make
ELF 32/64 support easier,
(2) support multiple executable types at the same time, and
(3) add support for 32- and 64-bit ELF (32-bit ELF support
originally from OpenBSD, but with several bug fixes so
that it actually handles symbols types more correctly
(and therefore _works_ for some of the more tricky uses
of the nlist routines) and changes for 64-bit ELF support).
 1.72  03-Jul-1996  jtc branches: 1.72.2;
Split all exec*() functions out of exec.c into their own files.
 1.71  15-Apr-1996  jtc Split each function in err.c out into its own file. This is needed
for systems without weak or indirect references.
 1.70  25-Apr-1995  jtc termios code has been moved to new libc/termios directory.
 1.69  17-Apr-1995  ragge Removed VAX specific definitions.
 1.68  10-Mar-1995  jtc Removed references to ctime.3 and tzset.3 manpages and associated manpage
links (they have been moved to libc/time).
 1.67  09-Mar-1995  jtc date and time functions have been moved
 1.66  25-Feb-1995  cgd typo
 1.65  25-Feb-1995  cgd oops; biffed path
 1.64  25-Feb-1995  cgd update from Lite, clean up a bit, seperate arch-specific file list.
 1.63  10-Feb-1995  cgd branches: 1.63.2;
list the files needed on the alpha.
 1.62  11-Jan-1995  pk Add sigsetjmp() for sparc.
 1.61  23-Dec-1994  jtc 4.4lite's C language sigsetjmp() implementation is bogus, restore
machine dependant versions.
 1.60  22-Dec-1994  cgd specify man pages the new way.
 1.59  12-Dec-1994  jtc Rework indirect reference support as outlined by my recent message to
the tech-userlevel mailing list.
 1.58  11-Dec-1994  christos - Changed all internal libc references of {v,}err{x,} and {v,}warn{x,} to
__{v,}err{x,} and __{v,}warn{x,}
- moved err.c to __err.c and added err.c which contains weak references for
the above functions.
- Reordered the functions in __err.c to avoid redeclarations and changed
the varargs declarations to conform with the K&R style.
 1.57  10-Dec-1994  jtc Use 44lite's clever sigsetjmp()/siglongjmp() implementation I just imported.
 1.56  07-Dec-1994  deraadt remove duplicate infinity.c
 1.55  07-Dec-1994  phil Adding sigsetjmp.S for ns32k.
 1.54  14-Nov-1994  dean Include files for pmax
 1.53  20-Oct-1994  cgd make the sysv functions real syscalls.
 1.52  10-Oct-1994  jtc Renamed sys_errlist[] and sys_nerr to __sys_errlist[] and __sys_nerr.
The traditional API of sys_errlist[] and sys_nerr is provided by weak
references if they are supported. Otherwise, we're forced to have to
have two copies of the error message string table in the library.
Fortunately, unless a program uses both sys_errlist[] and strerror(),
only one of the copies will be linked into the executable.

This is all to provide an clean namespace as required by ANSI. I've
done the same for sys_siglist[], even though it is not required, to
be consistant.
 1.51  29-Aug-1994  mycroft branches: 1.51.2;
Fix broken import of Lite directory code.
 1.50  19-Aug-1994  cgd frexp.? is machine-dependent, as suggested by phil.
 1.49  28-Jun-1994  jtc branches: 1.49.2;
install getnetgrent() manpage
 1.48  26-Jun-1994  jtc Ftok() routine, needed by most programs that use SysV IPC.
 1.47  11-Jun-1994  jtc Replace my version of confstr() with 4.4 lite's, which gets its values
with sysctl().
 1.46  28-May-1994  mycroft We have shm again.
 1.45  21-May-1994  chopps no more lsearch.3.
 1.44  19-May-1994  jtc cuserid() was moved to libcompat w/4.4 lite.
 1.43  19-May-1994  jtc 4.4lite's libcompat provided a lsearch() and lfind() implementation which
has been already integrated into NetBSD, so we don't need/want mine anymore.
 1.42  17-May-1994  mycroft Add {set,get,end}netgrent().
 1.41  11-May-1994  cgd shm sources won't compile; no more shm.h
 1.40  07-May-1994  cgd update for present reality. shlib version number bump (last for a bit)
 1.39  05-May-1994  cgd add getgrouplist
 1.38  14-Apr-1994  cgd setproctitle(); no reason to have this code spread into N utils...
 1.37  09-Apr-1994  mycroft And strunvis(3), too.
 1.36  09-Apr-1994  mycroft Add links for strvis(3) and strvisx(3).
 1.35  06-Apr-1994  cgd M-x shuffle-functions-and-documentation
basically, move things around so documentation is in the correct place,
and bump appropriate functions into the 'compat' section.
 1.34  27-Jan-1994  cgd add two man pages
 1.33  27-Jan-1994  cgd stuff moved into libc
 1.32  12-Jan-1994  cgd moved to libcompat, where they belong.
 1.31  08-Dec-1993  pk Added some Sparc sources.
 1.30  05-Dec-1993  cgd get pc532 moved into ns32k; that's is MACHINE_ARCH
 1.29  04-Dec-1993  cgd update for .S and MACHINE_ARCH
 1.28  03-Dec-1993  jtc Add common definition of errno back to the C library. One notable program
uses its own crt0.c, so it can't pick it up from there.
 1.27  02-Dec-1993  mycroft Remove hack for errlst.o.
 1.26  02-Dec-1993  mycroft Get rid of dated MLINKS for regexp man pages.
Reported by Mark_Weaver@brown.edu.
 1.25  29-Nov-1993  jtc install cuserid(3) manpage.
 1.24  17-Nov-1993  jtc If _CS_PATH is defined in <unistd.h>, the latest bash assumes that confstr()
will be present as well. Here is a quick implementation based on my online
copy of 1003.2 (D11.2). I'll confirm that nothing has been changed in the
final standard and write up a manual page soon.
 1.23  14-Nov-1993  cgd Add the System V message queue and semaphore facilities. Implemented
by Daniel Boulet <danny@BouletFermat.ab.ca>
 1.22  11-Nov-1993  jtc Enable Henry Spencer's POSIX.2 compatible regular expression routines.
Disable his earlier V8-style routines.
 1.21  22-Oct-1993  jtc Add my lsearch & lfind implementations.
 1.20  19-Oct-1993  jtc Use i386 sigsetjmp()/siglongjmp() implementation.
Install sigsetjmp()/siglongjmp() links to setjmp manpage.
Note that sigsetjmp() and siglongjmp() are 1003.1 compliant.
 1.19  11-Oct-1993  jtc Moved cuserid() from getlogin.c to its own file, cuserid.c.
getlogin() and cuserid() do very different things, getlogin() is POSIX,
while cuserid() is not (it was removed in the 1990 revision).
 1.18  07-Oct-1993  cgd always create libcrypt, and link with it where necessary. this will
make life with shared libraries happier. also, get dummy crypt out
of libc.
 1.17  07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.16  04-Oct-1993  jtc Install isblank() manpage.
Fix title of isblank() manpage (was isspace(), the manpage I started with).
 1.15  01-Oct-1993  jtc Install fts manpage as fts_open, fts_read, fts_children, fts_set and
fts_close too.
 1.14  17-Sep-1993  phil pc532 specifics.
 1.13  25-Aug-1993  brezak Add syscall stubs for SYSV Shared Memory.
 1.12  23-Aug-1993  jtc Moved toupper and tolower tables from ctype_.c to their own files --- I
received complaints about using shorts in the table (but i need a range
of -1..255), so now the tables will not be used unless either toupper()
or tolower() (and soon, setlocale()) are used. This can save up to 514
bytes.

In toupper_.c and tolower_.c make sure that our assumption of EOF == -1
holds.

Fixed bug where _toupper_tab_ was initialized pointing to _C_tolower_tab.
 1.11  13-Aug-1993  brezak Machine independent version of insque/remque
 1.10  06-Aug-1993  mycroft Add sys_signame[].
 1.9  01-Aug-1993  mycroft Add RCS identifiers.
 1.8  25-Jul-1993  glass Finally deprecate the old timezone() interface in favor of an XSH5
timezone/daytime pair; as proposed by J.T. in September, 1996.
Fixes PR standards/11807 by Nick Hudson.
 1.7  09-Jul-1993  cgd update for better FP routines, from AT&T & elsewhere
 1.6  16-Jun-1993  jtc Make assert macro ansi complient.
 1.5  04-Jun-1993  proven Removed bugs and memory leaks from the directory function.
 1.4  18-May-1993  cgd bring in getcap routines, supplied by CSRG, from 4.4...
 1.3  30-Apr-1993  glass new err stuff
 1.2  22-Mar-1993  cgd added support for using real crypt
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3  02-Feb-1998  perry import lite-2
 1.1.1.2  25-Feb-1995  cgd from lite, with minor name rearrangement to fit.
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.49.2.1  19-Aug-1994  cgd make frexp.c machine-dependent, as ns32k has frexp.S
 1.51.2.2  29-Aug-1994  mycroft Fix broken import of Lite directory code.
 1.51.2.1  29-Aug-1994  mycroft file Makefile.inc was added on branch netbsd-1-0 on 1994-08-29 04:47:32 +0000
 1.63.2.2  02-May-1995  jtc #include "namespace.h"
 1.63.2.1  17-Feb-1995  jtc Removed indirect reference stub files.
 1.72.2.1  16-Sep-1996  jtc snapshot namespace cleanup
 1.74.2.1  06-Nov-1996  lukem initial nsswitch implementation
 1.77.2.2  10-Jan-1999  lukem sync with current
 1.77.2.1  02-Nov-1998  lukem sync with current
 1.81.2.4  14-Nov-1997  mrg pull up from trunk: add missing .Nm entries. from spz@serpens.swb.de.
 1.81.2.3  09-Nov-1997  lukem back out incorrect sync with trunk
 1.81.2.2  09-Nov-1997  lukem sync with trunk (approved by thorpej)
 1.81.2.1  21-Oct-1997  lukem file Makefile.inc was added on branch netbsd-1-3 on 1997-11-09 00:59:56 +0000
 1.97.2.2  01-May-1999  perry pullup 1.98->1.99 (ross) -- 100 lashes with a wet noodle for this one.
 1.97.2.1  30-Apr-1999  perry pullup 1.97->1.98 (ross)
 1.103.4.1  30-Aug-2000  wennmach Pull up revision 1.103->1.104 (requested by wennmach)

Three routines (svis, strsvis, strsvisx) were added to vis.c in revision
1.15 and will be available in NetBSD-1.5. They are documented in vis.3
but should also get links to vis.3

Approved by thorpej and jhawk.
 1.106.2.10  17-Jan-2003  thorpej Sync with HEAD.
 1.106.2.9  17-Jan-2003  thorpej Document _lwp_makecontext(3).
 1.106.2.8  18-Oct-2002  nathanw Catch up to -current.
 1.106.2.7  27-Aug-2002  nathanw Catch up to -current.
 1.106.2.6  01-Aug-2002  nathanw Catch up to -current.
 1.106.2.5  21-Jun-2002  nathanw Catch up to -current.
 1.106.2.4  22-Mar-2002  nathanw Catch up to -current.
 1.106.2.3  08-Mar-2002  nathanw Catch up to -current.
 1.106.2.2  28-Jan-2002  nathanw Catch up to -current.
 1.106.2.1  08-Oct-2001  nathanw Catch up to -current.
 1.110.2.1  26-Mar-2004  jmc Pullup rev 1.111 (requested by provos in ticket #1386)

Introduce bcrypt password scheme. Adds the arc4random API for creating
cryptographically strong random numbers.
 1.140.6.1  26-Aug-2007  bouyer Pull up following revision(s) (requested by bad in ticket #1821):
lib/libc/gen/cgetcap.3: revisions 1.1 - 1.3
lib/libc/gen/Makefile.inc: revision 1.143
lib/libc/gen/getcap.3: file removal
Both libcurses and libc installed a getcap(3) manpage, and both used it
as target for a bunch of MLINKS. This had the effect that whatever came
last in install overwrote everything from the other camp.
Solve this by renaming the libc page -- this makes sense because no
function is really named "getcap" here.
 1.140.4.1  26-Aug-2007  bouyer Pull up following revision(s) (requested by bad in ticket #1821):
lib/libc/gen/cgetcap.3: revisions 1.1 - 1.3
lib/libc/gen/Makefile.inc: revision 1.143
lib/libc/gen/getcap.3: file removal
Both libcurses and libc installed a getcap(3) manpage, and both used it
as target for a bunch of MLINKS. This had the effect that whatever came
last in install overwrote everything from the other camp.
Solve this by renaming the libc page -- this makes sense because no
function is really named "getcap" here.
 1.140.2.1  26-Aug-2007  bouyer Pull up following revision(s) (requested by bad in ticket #1821):
lib/libc/gen/cgetcap.3: revisions 1.1 - 1.3
lib/libc/gen/Makefile.inc: revision 1.143
lib/libc/gen/getcap.3: file removal
Both libcurses and libc installed a getcap(3) manpage, and both used it
as target for a bunch of MLINKS. This had the effect that whatever came
last in install overwrote everything from the other camp.
Solve this by renaming the libc page -- this makes sense because no
function is really named "getcap" here.
 1.158.4.1  09-Jan-2008  matt sync with HEAD
 1.159.6.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.159.6.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.159.4.1  17-Jun-2008  yamt sync with head.
 1.163.6.2  04-Jan-2009  christos merge with head.
 1.163.6.1  05-Sep-2008  christos file Makefile.inc was added on branch christos-time_t on 2009-01-04 17:02:19 +0000
 1.163.4.1  15-Jan-2009  snj Pull up following revision(s) (requested by tnozaki in ticket #222):
distrib/sets/lists/base/mi: revision 1.788
distrib/utils/libhack/Makefile.inc: revision 1.23
distrib/utils/libhack/Makefile: revision 1.22
etc/mtree/NetBSD.dist: revision 1.387
include/locale.h: revision 1.15
lib/libc/citrus/Makefile.inc: revision 1.6
lib/libc/citrus/citrus_aliasname_local.h: revision 1.1
lib/libc/citrus/citrus_bcs.h: revision 1.5
lib/libc/citrus/citrus_bcs_strtol.c: revision 1.1
lib/libc/citrus/citrus_bcs_strtoul.c: revision 1.1
lib/libc/citrus/citrus_csmapper.c: revision 1.9
lib/libc/citrus/citrus_fix_grouping.h: revision 1.1
lib/libc/citrus/citrus_lc_ctype.c: revision 1.1
lib/libc/citrus/citrus_lc_messages.c: revision 1.1
lib/libc/citrus/citrus_lc_messages.h: revision 1.1
lib/libc/citrus/citrus_lc_monetary.c: revision 1.1
lib/libc/citrus/citrus_lc_monetary.h: revision 1.1
lib/libc/citrus/citrus_lc_numeric.c: revision 1.1
lib/libc/citrus/citrus_lc_numeric.h: revision 1.1
lib/libc/citrus/citrus_lc_template.h: revision 1.1
lib/libc/citrus/citrus_lc_template_decl.h: revision 1.1
lib/libc/citrus/citrus_lc_time.c: revision 1.1
lib/libc/citrus/citrus_lc_time.h: revision 1.1
lib/libc/citrus/citrus_module.c: revision 1.8
lib/libc/citrus/citrus_namespace.h: revision 1.7
lib/libc/citrus/modules/citrus_euc.c: revision 1.13
lib/libc/gen/Makefile.inc: revision 1.166
lib/libc/gen/isctype.c: revision 1.17 via patch
lib/libc/gen/tolower_.c: revision 1.10
lib/libc/gen/toupper_.c: revision 1.10
lib/libc/iconv/Makefile.inc: revision 1.3
lib/libc/iconv/iconv.c: revision 1.7
lib/libc/locale/Makefile.inc: revision 1.53
lib/libc/locale/___runetype_mb.c: file removal
lib/libc/locale/_wctrans.c: revision 1.7
lib/libc/locale/_wctrans_local.h: revision 1.3
lib/libc/locale/_wctype.c: revision 1.1
lib/libc/locale/_wctype_local.h: revision 1.1
lib/libc/locale/aliasname.c: revision 1.3
lib/libc/locale/aliasname_local.h: revision 1.2
lib/libc/locale/bsdctype.c: revision 1.1
lib/libc/locale/bsdctype.h: revision 1.1
lib/libc/locale/ctypeio.c: revision 1.8
lib/libc/locale/ctypeio.h: revision 1.2
lib/libc/locale/current_locale.c: revision 1.1
lib/libc/locale/dummy_lc_collate.c: revision 1.1
lib/libc/locale/dummy_lc_template.h: revision 1.1
lib/libc/locale/fix_grouping.c: revision 1.1
lib/libc/locale/fix_grouping.h: revision 1.1
lib/libc/locale/generic_lc_all.c: revision 1.1
lib/libc/locale/generic_lc_template.h: revision 1.1
lib/libc/locale/generic_lc_template_decl.h: revision 1.1
lib/libc/locale/global_locale.c: revision 1.1
lib/libc/locale/iswctype.c: file removal
lib/libc/locale/iswctype_mb.c: revision 1.1
lib/libc/locale/iswctype_sb.c: revision 1.6
lib/libc/locale/lcmessages.c: file removal
lib/libc/locale/lcmessages.h: file removal
lib/libc/locale/lcmonetary.c: file removal
lib/libc/locale/lcmonetary.h: file removal
lib/libc/locale/lcnumeric.c: file removal
lib/libc/locale/lcnumeric.h: file removal
lib/libc/locale/lctime.c: file removal
lib/libc/locale/lctime.h: file removal
lib/libc/locale/localeconv.c: revision 1.15
lib/libc/locale/localeio.c: revision 1.2
lib/libc/locale/localeio.h: revision 1.2
lib/libc/locale/localeio_lc_ctype.c: revision 1.1
lib/libc/locale/localeio_lc_messages.c: revision 1.1
lib/libc/locale/localeio_lc_monetary.c: revision 1.1
lib/libc/locale/localeio_lc_numeric.c: revision 1.1
lib/libc/locale/localeio_lc_time.c: revision 1.1
lib/libc/locale/multibyte.h: revision 1.4
lib/libc/locale/multibyte_amd1.c: revision 1.6
lib/libc/locale/multibyte_c90.c: revision 1.5
lib/libc/locale/nb_lc_messages_misc.h: revision 1.1
lib/libc/locale/nb_lc_monetary_misc.h: revision 1.1
lib/libc/locale/nb_lc_numeric_misc.h: revision 1.1
lib/libc/locale/nb_lc_template.h: revision 1.1
lib/libc/locale/nb_lc_template_decl.h: revision 1.1
lib/libc/locale/nb_lc_time_misc.h: revision 1.1
lib/libc/locale/nl_langinfo.c: revision 1.12
lib/libc/locale/rune.c: revision 1.31
lib/libc/locale/rune.h: revision 1.13
lib/libc/locale/rune_local.h: revision 1.11
lib/libc/locale/runeglue.c: revision 1.14
lib/libc/locale/runetable.c: revision 1.18
lib/libc/locale/setlocale.c: revision 1.55 via patch
lib/libc/locale/setlocale_local.h: revision 1.1
lib/libc/locale/setrunelocale.c: file removal
lib/libc/nls/Makefile.inc: revision 1.9
lib/libc/nls/catopen.c: revision 1.26
lib/libc/string/Makefile.inc: revision 1.68
lib/libc/string/wcscmp.c: revision 1.6
lib/libc/string/wcsncmp.c: revision 1.6
lib/libc/string/wcswidth.c: file removal
lib/libc/string/wmemcmp.c: revision 1.4
regress/lib/libc/locale/Makefile: revision 1.4
regress/lib/libc/locale/ctype1/Makefile: revision 1.4
regress/lib/libc/locale/ctype1/en_US.UTF-8.exp.uue: revision 1.2
regress/lib/libc/locale/ctype1/ja_JP.ISO-2022-JP.exp.uue: revision 1.1
regress/lib/libc/locale/ctype1/ja_JP.ISO-2022-JP.in.uue: revision 1.1
regress/lib/libc/locale/ctype1/ja_JP.ISO2022-JP.exp.uue: file removal
regress/lib/libc/locale/ctype1/ja_JP.ISO2022-JP.in.uue: file removal
regress/lib/libc/locale/ctype1/ja_JP.SJIS.exp.uue: revision 1.2
regress/lib/libc/locale/ctype1/ja_JP.eucJP.exp.uue: revision 1.2
regress/lib/libc/locale/ctype2/Makefile: revision 1.5
regress/lib/libc/locale/ctype2/ja_JP.ISO-2022-JP-2.in.uue: revision 1.1
regress/lib/libc/locale/ctype2/ja_JP.ISO2022-JP2.in.uue: file removal
regress/lib/libc/locale/ctype3/Makefile: revision 1.5
regress/lib/libc/locale/mbtowc/Makefile: revision 1.3
regress/lib/libc/locale/mbtowc/ja_JP.ISO-2022-JP: revision 1.1
regress/lib/libc/locale/mbtowc/ja_JP.ISO2022-JP: file removal
regress/lib/libc/locale/wcstod/wcstod_test.c: revision 1.2
share/locale/Makefile.locale: revision 1.1
share/locale/Makefile: revision 1.5
share/locale/ctype/Makefile: revision 1.28
share/locale/locale.alias: revision 1.11
share/locale/messages/Makefile: revision 1.5
share/locale/messages/en_US.ISO8859-1.src: file removal
share/locale/messages/en_US.US-ASCII.src: revision 1.1
share/locale/messages/ja_JP.ISO-2022-JP.src: revision 1.1
share/locale/messages/ja_JP.ct.src: revision 1.1
share/locale/messages/sr_ME.ISO8859-2.src: revision 1.1
share/locale/messages/sr_ME.ISO8859-5.src: revision 1.1
share/locale/messages/sr_YU.ISO8859-2.src: file removal
share/locale/messages/sr_YU.ISO8859-5.src: file removal
share/locale/messages/sr_YU.UTF-8.src: file removal
share/locale/messages/zh_CN.GB18030.src: file removal
share/locale/messages/zh_TW.eucTW.src: revision 1.1
share/locale/monetary/Makefile: revision 1.5
share/locale/monetary/af_ZA.ISO8859-1.src: revision 1.2
share/locale/monetary/am_ET.UTF-8.src: revision 1.2
share/locale/monetary/be_BY.CP1131.src: file removal
share/locale/monetary/be_BY.CP1251.src: revision 1.2
share/locale/monetary/be_BY.ISO8859-5.src: revision 1.2
share/locale/monetary/be_BY.UTF-8.src: revision 1.2
share/locale/monetary/bg_BG.CP1251.src: revision 1.2
share/locale/monetary/bg_BG.UTF-8.src: revision 1.2
share/locale/monetary/ca_ES.ISO8859-1.src: revision 1.2
share/locale/monetary/cs_CZ.ISO8859-2.src: revision 1.2
share/locale/monetary/cs_CZ.UTF-8.src: revision 1.2
share/locale/monetary/da_DK.ISO8859-1.src: revision 1.2
share/locale/monetary/de_AT.ISO8859-1.src: revision 1.2
share/locale/monetary/de_CH.ISO8859-1.src: revision 1.2
share/locale/monetary/de_DE.ISO8859-1.src: revision 1.2
share/locale/monetary/el_GR.ISO8859-7.src: revision 1.2
share/locale/monetary/en_AU.ISO8859-1.src: revision 1.2
share/locale/monetary/en_CA.ISO8859-1.src: revision 1.2
share/locale/monetary/en_GB.ISO8859-1.src: revision 1.2
share/locale/monetary/en_GB.UTF-8.src: revision 1.2
share/locale/monetary/en_IE.UTF-8.src: revision 1.2
share/locale/monetary/en_NZ.ISO8859-1.src: revision 1.2
share/locale/monetary/en_US.ISO8859-1.src: revision 1.2
share/locale/monetary/en_US.US-ASCII.src: revision 1.1
share/locale/monetary/es_ES.ISO8859-1.src: revision 1.2
share/locale/monetary/et_EE.ISO8859-15.src: revision 1.2
share/locale/monetary/fi_FI.ISO8859-1.src: revision 1.2
share/locale/monetary/fr_BE.ISO8859-1.src: revision 1.2
share/locale/monetary/fr_CA.ISO8859-1.src: revision 1.2
share/locale/monetary/fr_FR.ISO8859-1.src: revision 1.2
share/locale/monetary/he_IL.UTF-8.src: revision 1.2
share/locale/monetary/hi_IN.ISCII-DEV.src: revision 1.2
share/locale/monetary/hr_HR.ISO8859-2.src: revision 1.2
share/locale/monetary/hu_HU.ISO8859-2.src: revision 1.2
share/locale/monetary/hy_AM.ARMSCII-8.src: revision 1.2
share/locale/monetary/hy_AM.UTF-8.src: revision 1.2
share/locale/monetary/is_IS.ISO8859-1.src: revision 1.2
share/locale/monetary/it_IT.ISO8859-1.src: revision 1.2
share/locale/monetary/ja_JP.ISO-2022-JP.src: revision 1.1
share/locale/monetary/ja_JP.UTF-8.src: revision 1.2
share/locale/monetary/ja_JP.eucJP.src: revision 1.2
share/locale/monetary/kk_KZ.PT154.src: revision 1.2
share/locale/monetary/kk_KZ.UTF-8.src: revision 1.2
share/locale/monetary/ko_KR.UTF-8.src: revision 1.2
share/locale/monetary/ko_KR.eucKR.src: revision 1.2
share/locale/monetary/lt_LT.ISO8859-13.src: revision 1.2
share/locale/monetary/mn_MN.UTF-8.src: revision 1.2
share/locale/monetary/nl_BE.ISO8859-1.src: revision 1.2
share/locale/monetary/nl_NL.ISO8859-1.src: revision 1.2
share/locale/monetary/no_NO.ISO8859-1.src: revision 1.2
share/locale/monetary/pl_PL.ISO8859-2.src: revision 1.2
share/locale/monetary/pl_PL.UTF-8.src: revision 1.2
share/locale/monetary/pt_BR.ISO8859-1.src: revision 1.2
share/locale/monetary/pt_PT.ISO8859-1.src: revision 1.2
share/locale/monetary/ro_RO.ISO8859-2.src: revision 1.2
share/locale/monetary/ru_RU.CP1251.src: revision 1.2
share/locale/monetary/ru_RU.CP866.src: revision 1.2
share/locale/monetary/ru_RU.ISO8859-5.src: revision 1.2
share/locale/monetary/ru_RU.KOI8-R.src: revision 1.2
share/locale/monetary/ru_RU.UTF-8.src: revision 1.2
share/locale/monetary/sk_SK.ISO8859-2.src: revision 1.2
share/locale/monetary/sl_SI.ISO8859-2.src: revision 1.2
share/locale/monetary/sr_ME.ISO8859-2.src: revision 1.1
share/locale/monetary/sr_RS.ISO8859-2.src: revision 1.1
share/locale/monetary/sr_YU.ISO8859-2.src: revision 1.2
share/locale/monetary/sr_YU.ISO8859-5.src: revision 1.2
share/locale/monetary/sr_YU.UTF-8.src: revision 1.2
share/locale/monetary/sv_SE.ISO8859-1.src: revision 1.2
share/locale/monetary/tr_TR.ISO8859-9.src: revision 1.2
share/locale/monetary/uk_UA.CP1251.src: revision 1.2
share/locale/monetary/uk_UA.ISO8859-5.src: revision 1.2
share/locale/monetary/uk_UA.KOI8-U.src: revision 1.2
share/locale/monetary/uk_UA.UTF-8.src: revision 1.2
share/locale/monetary/zh_CN.GB18030.src: revision 1.2
share/locale/monetary/zh_CN.UTF-8.src: revision 1.2
share/locale/monetary/zh_CN.eucCN.src: revision 1.2
share/locale/monetary/zh_HK.Big5hkscs.src: revision 1.1
share/locale/monetary/zh_HK.UTF-8.src: revision 1.2
share/locale/monetary/zh_TW.Big5.src: revision 1.2
share/locale/numeric/Makefile: revision 1.4
share/locale/numeric/am_ET.UTF-8.src: file removal
share/locale/numeric/en_US.ISO8859-1.src: file removal
share/locale/numeric/en_US.US-ASCII.src: revision 1.1
share/locale/numeric/ja_JP.eucJP.src: file removal
share/locale/numeric/ko_KR.eucKR.src: file removal
share/locale/numeric/mn_MN.UTF-8.src: file removal
share/locale/numeric/sr_ME.ISO8859-2.src: revision 1.1
share/locale/numeric/sr_YU.ISO8859-2.src: file removal
share/locale/numeric/sr_YU.ISO8859-5.src: file removal
share/locale/numeric/zh_CN.eucCN.src: file removal
share/locale/time/Makefile: revision 1.5
share/locale/time/en_US.ISO8859-1.src: file removal
share/locale/time/en_US.US-ASCII.src: revision 1.1
share/locale/time/ja_JP.ISO-2022-JP.src: revision 1.1
share/locale/time/ja_JP.ct.src: revision 1.1
share/locale/time/sr_ME.ISO8859-2.src: revision 1.1
share/locale/time/sr_ME.ISO8859-5.src: revision 1.1
share/locale/time/sr_ME.UTF-8.src: revision 1.1
share/locale/time/sr_YU.ISO8859-2.src: file removal
share/locale/time/sr_YU.ISO8859-5.src: file removal
share/locale/time/sr_YU.UTF-8.src: file removal
share/locale/time/zh_CN.GB18030.src: file removal
share/locale/time/zh_TW.eucTW.src: revision 1.1
usr.bin/locale/locale.c: revision 1.6
usr.bin/mklocale/Makefile: revision 1.12
usr.bin/mklocale/lex.l: revision 1.14
usr.bin/mklocale/mklocaledb.c: revision 1.1
usr.bin/mklocale/yacc.y: revision 1.25
usr.sbin/chrtbl/Makefile: revision 1.8
usr.sbin/chrtbl/ctypeio.c: revision 1.1
usr.sbin/chrtbl/ctypeio.h: revision 1.1
Fixes PR lib/39662, shortcomings in LC_{MONETARY,NUMERIC,TIME,MESSAGES}
db format.
ok'ed by core and releng.
(thanks for agc@, snj@ and i'm sorry for long time patience).
[libc]
- localeio.[ch] and lc*.[ch] in src/lib/libc/locale was replaced by
new locale-db implementation using citrus_db backend,
see src/lib/libc/citrus/citrus_lc_*.[ch].
- add citrus_bcs_strtou?l.c. don't use strtou?l locale implementation
internally, because they're locale-aware function.
- add some stubs for multi-locale issue, see {current,global}_locale.c.
- remove some obsolete file, setrunelocale.c, ___runetype_mb.c.
- remove __savectype() from ctypeio.[ch].
[tools]
- mklocale(1): add new option ``-t'' that generates new style
LC_{MONETARY,NUMERIC,TIME,MESSAGES} locale-db format.
- chrtbl(1): added ctypeio.[ch] for __savectype().
[locale-db]
- added en_US.US-ASCII locale.
- removed some shareable locale definition file:
en_US.US-ASCII -> en_US.ISO8859-1, en_US.UTF-8
zh_CN.eucCN -> zh_CN.GB18030
and more...see src/share/locale/*/Makefile.
- remove obsoleted locale sr_YU, added new locale sr_ME, sr_RS.
- change locale name ja_JP.ISO2022-JP* -> ja_JP.ISO-2022-JP*
for X11's locale.alias file alignments.
- fix regression test, wrong wcs?width(3), NAN/INF usage.

i tested release-build following arch:
i386, amd64, hpc{mips,arm,sh}, sparc64, vax.

citrus_lc_*.[ch] also can read old-plain-text style locale-db.
so that backward compatibility is keeped, but lc*.[ch] can't read
new citrus_db'ed locale-db and localeio.c never check sanity,
so forward compatibility is broken ;-<
old mklocale(1) doesn't know -t option, so you have to rebuild toolchain.
 1.167.2.1  13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.180.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.180.2.2  16-Jan-2013  yamt sync with (a bit old) head
 1.180.2.1  17-Apr-2012  yamt sync with head
 1.184.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.184.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.187.2.1  10-Aug-2014  tls Rebase.
 1.195.2.2  20-Mar-2017  pgoyette Sync with HEAD
 1.195.2.1  04-Nov-2016  pgoyette Sync with HEAD
 1.197.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.198.2.1  11-May-2017  pgoyette Sync with HEAD
 1.216.2.2  09-Oct-2024  martin Pull up following revision(s) (requested by riastradh in ticket #939):

distrib/sets/lists/debug/module.md.amd64: revision 1.18
sys/modules/Makefile: revision 1.292
lib/libc/gen/arc4random.c: revision 1.34
lib/libc/gen/arc4random.c: revision 1.35
lib/libc/gen/arc4random.c: revision 1.36
lib/libc/gen/arc4random.c: revision 1.37
sys/kern/kern_entropy.c: revision 1.70
lib/libc/gen/arc4random.c: revision 1.38
sys/kern/kern_entropy.c: revision 1.71
lib/libc/gen/getentropy.3: revision 1.8
distrib/sets/lists/modules/md.amd64: revision 1.103
share/man/man4/rnd.4: revision 1.42
share/man/man4/rnd.4: revision 1.44
lib/libc/include/arc4random.h: revision 1.1
distrib/sets/lists/man/mi: revision 1.1786
sys/arch/i386/conf/GENERIC: revision 1.1258
sys/modules/acpivmgenid/acpivmgenid.ioconf: revision 1.1
sys/arch/amd64/conf/ALL: revision 1.190
distrib/sets/lists/debug/mi: revision 1.446
sys/arch/i386/conf/ALL: revision 1.521
lib/libc/gen/Makefile.inc: revision 1.219
distrib/sets/lists/debug/module.md.i386: revision 1.12
sys/dev/acpi/acpi_vmgenid.c: revision 1.1
sys/dev/acpi/acpi_vmgenid.c: revision 1.2
lib/libc/include/reentrant.h: revision 1.22
sys/arch/evbarm/conf/GENERIC64: revision 1.219
share/man/man4/Makefile: revision 1.735
distrib/sets/lists/modules/md.i386: revision 1.100
distrib/sets/lists/tests/mi: revision 1.1334
lib/libc/gen/arc4random.3: revision 1.22
sys/dev/acpi/files.acpi: revision 1.133
lib/libc/gen/arc4random.3: revision 1.23
tests/lib/libc/gen/t_arc4random.c: revision 1.1
sys/sys/entropy.h: revision 1.6
sys/arch/amd64/conf/GENERIC: revision 1.614
sys/modules/acpivmgenid/Makefile: revision 1.1
share/man/man4/acpivmgenid.4: revision 1.1
lib/libc/gen/Makefile.inc: revision 1.220
tests/lib/libc/gen/Makefile: revision 1.56
share/man/man4/acpivmgenid.4: revision 1.2
share/man/man4/acpivmgenid.4: revision 1.3

(all via patch)

Catch up with all the lint warnings since exit on warning was disabled.

Disable 'missing header declaration' and 'nested extern' warnings for now.
acpivmgenid(4): New driver for virtual machine generation ID.

Added to amd64/ALL and i386/ALL kernel configurations, and made
available as a loadable module acpivmgenid.kmod on x86, for now.
TBD: Add to all ACPI-supporting GENERIC kernels.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

entropy(9): Factor out subroutines to reset and gather entropy.
`Reset' means we keep the data in the pool, but assume it had zero
entropy. `Gather' means we request samples from all on-demand
sources and wait for the synchronous ones to complete.

No functional change intended, other than to expose new symbols --
just preparation to expose these to acpivmgenid(4), so it can use
these when the VM host notifies us that we, the guest, have been
cloned.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

acpivmgenid(4): Reset and gather entropy on VM clone notification.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

arc4random(3): Reseed if system entropy epoch changes.
This can happen, for example, if the system is a VM instance, and the
VM is cloned.

This incurs the cost of a system call on every arc4random call, which
is unfortunate, but
1. we don't currently have a (machine-independent) mechanism for
exposing a read-only page to userland shared by the kernel to
enable a cheaper access path to the entropy epoch; and
2. the algorithm here -- a simple application of ChaCha -- is likely
also a bottleneck and could be much cheaper by
(a) using sys/crypto/chacha for machine-dependent vectorized
ChaCha code, and
(b) filling a buffer (somewhere between a cipher block and a page)
in a batch at a time, instead of running ChaCha to generate
only 32 bytes at a time.
So although this might be a performance hit, the security benefit is
worthwhile and we have a clear path to do better than reversing the
performance hit later.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

acpivmgenid(4): Nix BUGS that have been squashed.
Reference kern.entropy.epoch for the remaining bug (which is a
performance issue, not a security issue).
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

entropy(9): Allow unprivileged reads of sysctl kern.entropy.epoch.

Applications need this in order to know when to reseed. (We should
also expose it through a page shared read-only with userland for
cheaper access, but until we do, let's let applications get at it
through sysctl.)
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

arc4random.c: Fix test program.

This isn't wired up anywhere, but let's reduce the bitrot. It was
helpful in reminding me that kern.entropy.epoch was, for reasons I
can't remember, restricted to privileged access.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

amd64, evbarm, i386: Add acpivmgenid(4) to GENERIC.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

rnd(4): Document kern.entropy.epoch is unprivileged and elaborate.
Cross-reference acpivmgenid(4).
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

arc4random(3): Note that arc4random respects kern.entropy.epoch.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork
Add debug info for new acpivmgenid module

arc4random(3): Add automatic tests.

This verifies that:
- arc4random zeroes its state and reseeds itself on fork
- arc4random reseeds itself on entropy consolidation (e.g., VM clone)
- arc4random falls back to global state if it can't allocate local
state because address space limits cause mmap to fail

NOTE: This adds a new libc symbol __arc4random_global, but it's in
the reserved namespace and only used by t_arc4random, so no libc
minor bump.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

getentropy(3): Note intent to reseed on VM clone, and caveats.

Tidy markup and pacify some mandoc -Tlint complaints while here.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

Bump dates on man pages recently updated to mention VM clones.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

arc4random(3): Pacify some of lint's complaints.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

arc4random: suppress another lint warning
 1.216.2.1  08-Oct-2024  martin Pull up following revision(s) (requested by rin in ticket #930):

lib/libc/include/extern.h: revision 1.30
distrib/sets/lists/base/shl.mi: revision 1.987 (patch)
external/bsd/blocklist/bin/support.c: revision 1.2
external/bsd/blocklist/bin/blocklistd.c: revision 1.5
external/bsd/blocklist/bin/blocklistd.8: revision 1.3
sys/sys/syslog.h: revision 1.42
external/bsd/blocklist/bin/support.h: revision 1.2
external/bsd/blocklist/include/blocklist.h: revision 1.3
crypto/external/bsd/openssh/dist/pfilter.c: revision 1.9
external/bsd/blocklist/lib/shlib_version: revision 1.2
lib/libc/gen/syslog_ss.c: revision 1.4
lib/libc/gen/Makefile.inc: revision 1.218
external/bsd/blocklist/lib/bl.c: revision 1.3
external/bsd/blocklist/README: revision 1.3
external/bsd/blocklist/include/bl.h: revision 1.2
distrib/sets/lists/debug/shl.mi: revision 1.347 (patch)
distrib/sets/lists/comp/mi: revision 1.2462
lib/libc/gen/syslog.3: revision 1.34
lib/libc/gen/syslog.3: revision 1.35
external/bsd/blocklist/libexec/blocklistd-helper: revision 1.8
external/bsd/blocklist/lib/libblocklist.3: revision 1.4
external/bsd/blocklist/lib/libblocklist.3: revision 1.5
external/bsd/blocklist/lib/libblocklist.3: revision 1.6
external/bsd/blocklist/lib/blocklist.c: revision 1.3

Spelling fixes

PR/58391: Noriyuki Soda: re-adding syslog_ss() to syslog.h and syslog.3

syslog(3): Nix trailing whitespace in man page.
No functional change intended.

reference sockpath instead of sockspath

Add blocklist_open2() that can pass a custom logger or NULL for no logging.
Switch internally to use syslog_r. Add compatibility for systems that don't
have syslog_r.

Switch blocklist to use syslog_ss since we are being called from a
signal handler.

bump libblocklist
remove trailing space

Silence a bogus warning when starting up:
NetBSD pf:
No ALTQ support in kernel
ALTQ related functions disabled
FreeBSD pf:
Anchor 'blacklistd' not found.
The anchor is indeed found and working correctly. This patch just
discards stderr's output, like in other places.
(jlduran@github)

update markup (Ed Maste)
 1.217.2.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed