Home | History | Annotate | Download | only in libc
History log of /src/lib/libc/shlib_version
RevisionDateAuthorComments
 1.299  14-Sep-2025  andvar Fix various typos in comments and log message.
 1.298  21-Apr-2025  nia libc: Bump shlib minor for timespec_getres(3).
 1.297  15-Aug-2024  riastradh libc: New C11 functions mbrtoc16, mbrtoc32, c16rtomb, c32rtomb.

The mbrtoc16/32 functions read mulitbyte strings according to the
current locale into UTF-16/32 code unit sequences; the c16/32rtomb
functions write UTF-16/32 code unit sequences into multibyte strings
according to the current locale. The `r' means restartable: they
work incrementally and pick up where they left off.

NOTE: This bumps the libc minor version, since it adds new symbols.

PR lib/52374: <uchar.h> missing
 1.296  02-Feb-2024  andvar branches: 1.296.2;
s/shold/should/
 1.295  01-Aug-2023  christos Add companion mempcpy to wmempcpy, bump.
 1.294  02-Jul-2023  dholland libc/shlib_version: note that *rand48* should be punted to libcompat
 1.293  01-Nov-2021  thorpej branches: 1.293.2;
Version the sigaction(2) libc wrapper. The new version uses the "siginfo"
trampoline exclusively, thus relegating "sigcontext"-style handlers (which
have not been documented for many years now) to the dustbin of the compat
library.
 1.292  19-Sep-2021  thorpej Add native implementations of eventfd(2) and timerfd(2), compatible with
the Linux interfaces of the same name.
 1.291  09-Oct-2020  christos Merge tzcode2020b (except we keep tzsetwall(3) for now for compatibility,
and we were "slim" already)

Support for zic's long-obsolete '-y YEARISTYPE' option has been
removed and, with it, so has support for the TYPE field in Rule
lines, which is now reserved for compatibility with earlier zic.
These features were previously deprecated in release 2015f.
(Thanks to Tim Parenti.)

zic now defaults to '-b slim' instead of to '-b fat'.

zic's new '-l -' and '-p -' options uninstall any existing
localtime and posixrules files, respectively.

The undocumented and ineffective tzsetwall function has been
removed.
 1.290  03-Oct-2020  christos bump for set_rpc_maxgrouplist
 1.289  02-Jun-2020  nia Don't suggest removing arc4random with a libc bump.

It's established enough in non-legacy code that this is a terrible idea.
Even if we add getentropy it's not a comparable API (not a userspace RNG
capable of streaming large numbers of bytes, doesn't have _uniform, etc).

"Feel free to remove that line!" - riastradh
 1.288  16-May-2020  christos bump for ACLS
 1.287  15-May-2020  joerg Bump libc minor version for malloc lock change
 1.286  08-Mar-2020  mgorny Bump new libc minor due to new errno codes
 1.285  22-Sep-2019  christos Add a new member to struct vfsstat and grow the unused members
The new member is caled f_mntfromlabel and it is the dkw_wname
of the corresponding wedge. This is now used by df -W to display
the mountpoint name as NAME=
 1.284  04-Jun-2019  hannken Implement xdrmem_control(), used as xdr_control(xdr, XDR_GET_BYTES_AVAIL ...
and bump libc minor number.

Final goal is to remove the unmaintained XDR implementation
at external/cddl/osnet/dist/uts/common/rpc.
 1.283  04-Mar-2019  christos bump for jemalloc
 1.282  05-Nov-2018  maya Suggest to remove lfs_ stubs on a major bump.
they're deprecated, ioctl is used instead.
 1.281  02-Aug-2018  rjs Add userland support for SCTP and manpages.
 1.280  31-Jul-2018  rjs Userland changes for getsockopt2().
 1.279  06-Apr-2018  dholland branches: 1.279.2;
note to get rid of statfs() when bump time comes
 1.278  25-Oct-2017  kre branches: 1.278.2;
Implement tcgetwinsize() and tcsetwinsize() in libc, with access
via <termios.h> (and document them.) Bump libc minor number for them.

Arrange for "struct winsize" to become visible in <termios.h>

Fix stty(1) so that "cols" is reported as the arg to set number of columns,
and "columns" is the alias, rather than the other way around, as "cols" is
what has been added to POSIX.

This is to conform with updates to be included in 1003.1 issue 8
(whenever that gets published) currently available at:
http://austingroupbugs.net/view.php?id=1053 (see note 3863)
http://austingroupbugs.net/view.php?id=1151 (see note 3856)
 1.277  05-Oct-2017  dholland One of the things we should do when bumping libc is to boot the
obsolete cryptographic hashes out of libc, either entirely or to
some "insecure" library.
 1.276  16-Aug-2017  joerg Bump libc minor to 208 for strfmon_l.
 1.275  08-Jun-2017  joerg Add two entries for interaction between lib/csu and libc.
 1.274  08-Jun-2017  joerg One more hack to kill in setproctitle
 1.273  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.272  15-Mar-2017  dholland branches: 1.272.2;
more trash to take out at bump time
 1.271  08-Feb-2017  maya minor bump libc for accept4
 1.270  07-Feb-2017  kamil Document in libc's shlib_version request for exect(3) removal

This functionality has been moved long time to the kernel. Kernel exec()
emits SIGTRAP under a debugger (unless PT_SYSCALL traced).
 1.269  24-Sep-2016  christos branches: 1.269.2;
bump for the flags version of db routines
 1.268  21-Sep-2016  roy Bump libc version for ifaddrs.
 1.267  15-Sep-2016  joerg gethostbyname_r should die.
 1.266  09-Jul-2016  dholland branches: 1.266.2;
note that on libc bump obsolete signal functions should be sent to
libcompat.
 1.265  01-Jul-2016  christos new hmac function.
 1.264  23-Apr-2016  christos add clock_getcpuclockid{2,}
 1.263  03-Apr-2016  christos userland bits for wait6/waitid.
 1.262  14-Jan-2016  christos stravis, reg{,a}sub
 1.261  08-Nov-2015  joerg Soft-float support for rounding mode is currently not thread-safe, which
is not acceptable. Decision should be made on whether full fenv.h
support is desirable and then fix this appropiately.

Math functions (both libc and libm) should not touch errno, this creates
unnecessary problems for compilers.
 1.260  07-Nov-2015  nros Add the C11 function aligned_alloc to libc.
 1.259  29-Oct-2015  christos new tzgetgmtoff
 1.258  16-Jan-2015  christos bump libc for strtoi and strtou
 1.257  13-Oct-2014  christos bump for open_{,w}memstream.
 1.256  26-Sep-2014  christos add execvpe, execlpe (reviewed by phone)
 1.255  24-Sep-2014  christos add strnstr from FreeBSD
 1.254  25-Jul-2014  dholland branches: 1.254.2;
Bump libc minor version for new syscalls.
 1.253  23-Jun-2014  riastradh Add `remove arc4random' to mythical libc major bump todo list.
 1.252  18-Jun-2014  christos add mkostemp, mkostemps, mkstemps from FreeBSD.
 1.251  13-Jun-2014  joerg Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.
 1.250  29-Mar-2014  dholland branches: 1.250.2;
add "move gethostbyname to a compat library" to the list of things to do
on the mythical libc bump
 1.249  31-Jan-2014  christos expose __lwp_park60
 1.248  16-Jan-2014  christos Add the {v,}{err,warn}c flavors, from FreeBSD.
 1.247  14-Jan-2014  joerg TODO: fix stdout/stdin/stderr to not require copy relocations
 1.246  08-Jan-2014  christos bump for ptsname_r
 1.245  08-Dec-2013  dholland add note about gets()
 1.244  10-Nov-2013  joerg Sort out relationship with crt0.o on major bump.
 1.243  24-Oct-2013  joerg Add entries for ctor/dtor switch.
 1.242  19-Oct-2013  christos bump for scopeid functions
 1.241  28-Aug-2013  riastradh Bump libc minor for consttime_memequal and explicit_memset.
 1.240  16-Apr-2013  joerg Add strtol_l and friends. Switch _citrus_bcs_strtol to use plain
strtol_l unless in tools mode. Add note to retire the BCS code on the
next libc major bump.
 1.239  13-Apr-2013  joerg Extend ctype classification table to 16bit. Based on patch by
Takehiko Nozaki, with changes to compile fail when using the old names
and to exploit __BUILD_LEGACY
 1.238  12-Apr-2013  joerg Rename BUILDCOLD to BUILD_LEGACY and provide a preprocessor macro that
can be used in code files that aren't easy to split up. Add the removal
to the major bump todo list.
 1.237  01-Mar-2013  joerg Retire OSI network stack. OK core@
 1.236  24-Oct-2012  joerg Remove alloca when we get a chance to avoid issues like PR lib/47120.
With an modern optimising compiler, backend integration is necessary as
soon as frame pointers are optional.
 1.235  24-Aug-2012  dholland branches: 1.235.2;
Some more notes for libc bump time that I had lying around.
 1.234  17-Jul-2012  dholland Note that when the mythical libc bump comes, one of the things we should
do is punt ruserok() and its related apparatus out to libcompat.
(Or perhaps just remove it entirely.)
 1.233  14-Jul-2012  darrenr bin/46703: BSD r-commands use wrong source address for stderr
http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=46703
Bump libc minor for the addition of rresvport_af_addr()
 1.232  08-Jul-2012  rmind Add MurmurHash2 -- a non-cryptographic hash function by Austin Appleby.
The code is taken from the upstream and is in the public domain.

OK christos@
 1.231  08-Mar-2012  joerg Implement sem_timedwait.
 1.230  27-Feb-2012  joerg Make __cerror protected to restore ABI leak in older libc versions,
where e.g. librt referenced the copy from libc. This still allows libc
to use PC-relative jumps.
 1.229  24-Feb-2012  dholland Note that gets() is finally dead in C11 and can be removed if we ever
bump libc.
 1.228  16-Feb-2012  joerg Add _dlauxinfo helper function to provide access to the ELF auxilary
vector. This can normally be found via __ps_strings, but libc is
initialised too early when linked dynamically and doesn't have access to
it yet, so provide an alternative mechanism via ld.elf_so.
Bump libc minor.
 1.227  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.226  22-Jan-2012  christos From tnozaki@: make fpos_t a complex object that keeps track of the parse
state of the stream. Change argument of the seek function to funopen() from
fpos_t to off_t. Make f{g,s}etpos() use the new fpos_t struct, while providing
backwards compatible entry points. Approved by releng@
 1.225  08-Nov-2011  joerg Add comment about the name overlap with libcrypto for SHA2 and friends
 1.224  18-Sep-2011  christos branches: 1.224.2;
bump for hcreate_r and friends
 1.223  26-Jun-2011  christos * Arrange for interfaces that create new file descriptors to be able to
set close-on-exec on creation (http://udrepper.livejournal.com/20407.html).

- Add F_DUPFD_CLOEXEC to fcntl(2).
- Add MSG_CMSG_CLOEXEC to recvmsg(2) for unix file descriptor passing.
- Add dup3(2) syscall with a flags argument for O_CLOEXEC, O_NONBLOCK.
- Add pipe2(2) syscall with a flags argument for O_CLOEXEC, O_NONBLOCK.
- Add flags SOCK_CLOEXEC, SOCK_NONBLOCK to the socket type parameter
for socket(2) and socketpair(2).
- Add new paccept(2) syscall that takes an additional sigset_t to alter
the sigmask temporarily and a flags argument to set SOCK_CLOEXEC,
SOCK_NONBLOCK.
- Add new mode character 'e' to fopen(3) and popen(3) to open pipes
and file descriptors for close on exec.
- Add new kqueue1(2) syscall with a new flags argument to open the
kqueue file descriptor with O_CLOEXEC, O_NONBLOCK.

* Fix the system calls that take socklen_t arguments to actually do so.

* Don't include userland header files (signal.h) from system header files
(rump_syscallargs.h).

* Bump libc version for the new syscalls.
 1.222  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.221  04-Feb-2011  christos bump for arc4random_{buf,uniform}
 1.220  16-Dec-2010  christos branches: 1.220.2;
Provide a re-entrant and thread-safe set of timezone API's that
don't require locking and can operate on user-specified timezones
as opposed to having to alter the environment to change a timezone.
This work was presented to the tzcode folks and it was generally
accepted, but there seems to be a lot of inertia.
 1.219  24-Sep-2010  tnozaki add fmemopen(3) derrived from POSIX:2008.
libc minor bump.
 1.218  07-Jun-2010  tnozaki 1. MB_LEN_MAX switch MD to MI.
2. unfortunately hppa's MB_LEN_MAX is defined incorrectly 6 instead of 32
so we have to add more setlocale(3) __RENAME func, __setlocale50.
3. move setlocale1.c and setlocale32.c to lib/libc/compat/locale/*
prepareing for next libc major crunk.
4. bump libc minor version.
 1.217  25-Apr-2010  joerg Add the constant database reader (cdbr(3)) and writer ((cdbw(3)).
They implement a space efficent write-once database with fast access
path. Switch the services(5) database to use cdb. The size of the
database file decreases from 2.1MB disk space to 307KB. Access
performance is about the same if setservent(0) is used and about an
order of magnitude faster otherwise. services_mkdb defaults to the new
format, but can optionally create the old db(3) format as well for
statically linked legacy applications.
 1.216  28-Mar-2010  tnozaki MB_LEN_MAX should moved from MD to MI.
 1.215  02-Oct-2009  tsarna Introduce allocaddrinfo(3) to make writing getaddrinfo() nss plugins easier.
Discussed on tech-net.
 1.214  16-Aug-2009  christos Version fts one more time! This is the most versioned API ever... Bump
fts_level from short to int to avoid a potential DoS.
From Maksymilian Arciemowicz
 1.213  20-Jul-2009  joerg Add a fast, platform independent hash function to libc.
The algorithm used is the Jenkins hash. The name (mi_vector_hash)
reflects the nature of the hash function.
Add glue for libc ATF tests and include a test case to make sure that
(mis)alignment and endianess are handled correctly.

Bump libc minor to 169.
 1.212  26-May-2009  joerg Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.
 1.211  01-May-2009  perry Add versions of stpcpy(3), stpncpy(3), strnlen(3), all from FreeBSD.
These are defined in the latest POSIX

Also make related updates to documentation, mostly from FreeBSD,
though I cleaned a few other things up along the way.

Bump shlib_version.

We are still missing strcoll_l, strerror_l, strsignal, strxfrm_l to be
POSIX conformant.
 1.210  12-Apr-2009  christos merge libbind and bump.
 1.209  10-Apr-2009  christos take the opportunity of the glob_pattern_p and add memrchr.
 1.208  11-Jan-2009  christos branches: 1.208.2;
merge christos-time_t
 1.207  05-Jan-2009  tnozaki add more item for major bump:
_ctype_ table in ctype.h and gen/ctype_.c has insufficient bitwidth.
 1.206  28-Dec-2008  ad Add more items for major bump.
 1.205  20-Nov-2008  matt Add new ptree (Patricia / RADIX tree) implementation to NetBSD.
 1.204  04-Aug-2008  matt branches: 1.204.4; 1.204.6; 1.204.8;
Add C99 functions imaxabs and imaxdiv.
 1.203  30-Jun-2008  matt Move rb.c from sys/lib/libkern to common so it can be in both libc and libkern.
 1.202  25-Jun-2008  ad Crank libc minor for getlogin_r
 1.201  21-Jun-2008  christos updates from bind-9-5-0
 1.200  03-May-2008  yamt branches: 1.200.2;
a little more about fpos_t.
 1.199  01-May-2008  christos mention thread local support.
 1.198  27-Apr-2008  christos mention ldexp, frexp, modf.
 1.197  24-Mar-2008  tnozaki branches: 1.197.2;
add comment about renaming of setlocale -> __setlocale_mb_len_max32.
 1.196  23-Mar-2008  yamt mention fpos_t
 1.195  13-Mar-2008  christos Since _file is a short, check that the fd fits in it, otherwise bail with
EMFILE. We treat _file as an unsigned short to double our range, with a
special case for -1 (closed). Make a note of what we should do about stdio
if we ever bump libc. We could change _file in the future compatibly to an
int by putting it in the extension space but for now we don't bother.
 1.194  10-Feb-2008  ad branches: 1.194.2;
Crank minor for atomic ops.
 1.193  16-Jan-2008  ad Pull in my modules code for review/test/hacking.
 1.192  14-Dec-2007  christos - add dehumanize_number
- decls for humanize_number and dehumanize_number are in stdlib.h
 1.191  27-Nov-2007  ad Bump libc/libpthread minor for thr_curcpu()/pthread_curcpu_np().
 1.190  13-Nov-2007  ad Bump libc minor for _lwp_ctl, libpthread constructor changes.
 1.189  07-Nov-2007  ad Add _lwp_setname/_lwp_getname to libc.
 1.188  09-Aug-2007  he branches: 1.188.2;
Add a new socket option for unix domain sockets: LOCAL_PEEREID, to make
it possible to get the pid, euid and egid of the process at the remote
end at the time it did bind() or connect().

Add a new libc function, getpeereid() to easily get at the euid and egid.
As a consequence, bump libc's minor number.

Document the LOCAL_PEEREID socket option in unix(4).

Based on contribution by Arne H. Juul, minor modifications by myself.
 1.187  17-Jul-2007  joerg Add native mremap system call based on the UVM implementation for
Linux compat. Add code to enforce alignment of the new location.
Special thanks to wizd for helping with the man page.
 1.186  14-Jul-2007  dsl Change beacuse of extra parameter to mount(2).
 1.185  16-Jan-2007  ad Add: _lwp_kill, _lwp_detach, _lwp_park, _lwp_unpark, _lwp_unpark_all,
sched_yield.
 1.184  08-Nov-2006  christos branches: 1.184.2; 1.184.6;
add ssp code and bump.
 1.183  25-Oct-2006  christos add _r functions for syslog from OpenBSD
 1.182  22-Aug-2006  christos PR/34238: Aleksey Cheusov: add wcsdup, wcscasecmp and wcsncasecmp functions
 1.181  12-Aug-2006  christos - Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.
 1.180  31-Jul-2006  martin branches: 1.180.2;
Bump libc to 145 (fhandle_t is gone)
 1.179  27-Jul-2006  christos bump because of fts_length and sl_delete
 1.178  13-Jul-2006  martin Bump minor to 143 (getfh versioned)
 1.177  26-Jun-2006  mrg version the socket(2) syscall. for compat30 socket, we use
EPROTONOSUPPORT instead of EAFNOSUPPORT.

from pavel@ with a little bit of clean up from myself.

XXX: netbsd32 (and perhaps other emulations) should be able
XXX: to call the standard socket calls for this i think, but
XXX: revisit this at another time.
 1.176  09-May-2006  rpaulo Bump minor for recent IPv6 API changes.
 1.175  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.174  15-Apr-2006  tnozaki add c99 wcstof(3) and wcstold(3).
requested by skrll AT netbsd DOT org, thanks.

bump libc minor 138 -> 139.
 1.173  30-Mar-2006  christos PR/33163: Auster Vl.: fts: cant allocate memory | filename too long
Change the ftp_pathlen and fts_namelen to u_int from u_short so that
pathnames > 32K work.
 1.172  15-Mar-2006  kleink Add strtof(3) and strtold(3); welcome libc 12.137.
 1.171  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.170  25-Sep-2005  christos add getenv_r and ttyname_r
 1.169  23-Aug-2005  elad Bump libc minor after adding SHA2 routines.
 1.168  19-Aug-2005  christos 64 bit inode changes
 1.167  07-Aug-2005  veego Last change to namespace.h had an wrong entry: in6addr_nodelocal_allrouters
instead of in6addr_linklocal_allrouters.
Bump the shared library minor version.

Thanks to Klaus Klein for the hint what went wrong.
 1.166  28-Jul-2005  christos PR/30845: Luke Mewburn: strerror_r(3) missing
- Merge 4.4BSD strerror.3 man page changes that summarize information
for all the error printing functions. This makes the perror(3) page
obsolete.
- Implement all error functions in terms of strerror_r(), including
__strerror() which is not used internally. Can it be removed?
- Bump version for strerror_r
 1.165  06-Jul-2005  drochner Move insque/remque/lsearch/lfind from libcompat to libc,
they are in XPG4-UNIX, XSH5.0, mentioned in SUSv3 etc.
Minimal update of the manpages. (more needed)
 1.164  14-May-2005  christos bump for wide stdio functions.
 1.163  02-Apr-2005  christos PR/29849, PR/29850: Add getpwent_r and getgrent_r
 1.162  18-Mar-2005  kleink Interpose cancellation points in pollts() and pselect(), bringing us
to libc.so.12.127 and libpthread.so.0.6.
 1.161  13-Mar-2005  perry branches: 1.161.2;
bump for memmem(3)
 1.160  02-Jan-2005  thorpej System calls and support routines for file system extended attributes. Libc
version is bumped to 12.125.

From FreeBSD.
 1.159  16-Dec-2004  atatat Bump to minor 124 since getdevmajor(3) was added
 1.158  13-Sep-2004  thorpej DCE 1.1 RPC compatible UUID routines for libc, adapted from FreeBSD.
Encode/decode to big/little endian binary blob routines adapted from
kernel.

PR 23470.
 1.157  13-Jul-2004  seb Bump libc minor for wordexp(3) addition.
 1.156  03-Jul-2004  junyoung Add strcasestr(3), case insensitive version of strstr(3).
Bump libc minor.

From FreeBSD.
 1.155  01-Jun-2004  kleink libc.so.12.120: addition of closefrom(3)
 1.154  27-May-2004  christos bump; posix pty functions.
 1.153  21-May-2004  christos Finish bind9 resolver merge.
 1.152  08-May-2004  kleink struct netnet.n_net used to be an unsigned long integer.

In XNS5, and subsequently in POSIX-2001 it was changed to socklen_t.

To accomodate for this while preserving binary compatibility with the
old interface, prepend or append 32 bits of padding, depending on
the (LP64 data model) architecture's endianness. Fixes PR
standards/21411 from Ben Harris.

This should be deleted the next time the libc major number is
incremented.

Also, update getnetbyaddr(3)'s `net' argument accordingly.
 1.151  28-Apr-2004  kleink libc.so.12.117: added __dbm_{delete,fetch,firstkey,nextkey,store}13().
 1.150  21-Apr-2004  christos Replace the statfs() family of system calls with statvfs().
Retain binary compatibility.
 1.149  21-Apr-2004  christos bump.
 1.148  25-Mar-2004  atatat branches: 1.148.2;
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.147  04-Mar-2004  kleink libc.so.12.113: isinf(), isnan().
 1.146  19-Feb-2004  christos servent_r/protoent_r additions
 1.145  29-Jan-2004  tsarna uuidgen(2) syscall. Originally from FreeBSD, ported by John Franklin in
PR#23470, with minor updates by me. This is only the syscall support
from that PR, for now.

Changes: port over fix from FreeBSD for multicast address generation.
Changed bcopy to memcpy. For now, #ifdef notyet the portions of
kern_uuid.c that are meant to be used by (currently nonexistent) other
things in the kernel. Added syscall to COMPAT_FREEBSD as well, though
that's currently not useful, as any program new enough to use this call
also uses other syscalls we don't (yet) emulate.
 1.144  15-Jan-2004  kleink libc.so.12.110: fpclassify(), isfinite(), isnormal(), signbit().
 1.143  02-Jan-2004  cl - libc.so.12.109 and libpthread.so.0.4
- add ssize_t stackinfo_offset argument to sa_register syscall
- remove sa_unblockyield syscall
- make __sigprocmask14 syscall weak
- in pthread__sa_start: catch up with 4-argument sa_register syscall
 1.142  04-Dec-2003  atatat Bump for sysctl() update
 1.141  18-Nov-2003  thorpej Bump libc to 12.107 and libpthread to 0.3 for fsync_range(2).
 1.140  05-Nov-2003  kleink From Ragge's wishlist: rename infinity -> huge_val.
 1.139  25-Oct-2003  kleink libc.so.12.106: __infinityf, __infinityl.
 1.138  16-Sep-2003  cl bump minor for sa_unblockyield syscall
 1.137  09-Sep-2003  itojun bump minor for randomid(3) and pw_dup(3)
 1.136  06-Sep-2003  christos bump for i386 signal trampoline; not strictly necessary, but convenient
for people who have an unsuccessful build.
 1.135  26-Aug-2003  wiz Bump to 101 for getlastlogx change, says kleink.
 1.134  26-Aug-2003  wiz Add note about rename getlastlogx on next major bump.
 1.133  27-Jun-2003  tshiozak bump libc version because of iconv.
 1.132  28-May-2003  christos agent 99
 1.131  12-May-2003  kleink Bump to libc.so.12.98, due to addition of {h,n}to{n,h}{l,s}() on PowerPC.
 1.130  07-Apr-2003  kleink Bump to 12.97: addition of __unsetenv13().
 1.129  02-Mar-2003  tshiozak bump minor to 96 for some I18N functions addition.
 1.128  15-Feb-2003  jdolecek add POSIX sigtimedwait(), sigwaitinfo(), sigwait() - wait for queued signals

note these are for non-threaded programs only - libpthread will provide
it's own thread-aware wrapper
 1.127  20-Jan-2003  christos add support for p1003.1b semaphores. From FreeBSD
 1.126  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.125  15-Jan-2003  kleink Bump to 12.92: sighold, sigignore, sigrelse, sigset.
 1.124  30-Nov-2002  lukem - Migrate fparseln(3) from libutil to libc, where it should have been in
the first place...
- Bump libutil major (to 7.0) and libc minor (to 12.91).
 1.123  29-Nov-2002  lukem add strsuftoll(3) and strsuftollx(3) - parse a string for a number
with an optional suffix, product (two numbers separated by `x'), and
provide range checking
 1.122  08-Nov-2002  fvdl Bump minor version, rpc_control function added.
 1.121  28-Aug-2002  gmcgarry Bump minor: rasctl(2)
 1.120  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.119  27-Jul-2002  christos Add utmp processing functions
 1.118  30-Jun-2002  bjh21 Bump minor to 12.85: __times13() addition.
 1.117  24-May-2002  itojun add arc4random(3). from openbsd
 1.116  14-May-2002  kleink branches: 1.116.2;
Leave a reminder for struct addrinfo.__ai_pad0's removal.
 1.115  20-Mar-2002  tron Back out last change until it is clear if it is necessary.
 1.114  20-Mar-2002  tron Bump minor version of "libc" after more signals have been added to
"sys_siglist".
 1.113  18-Mar-2002  yamt bump minor to 83: i18n module changes.
 1.112  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.111  07-Dec-2001  yamt bump minor:
- make FILE structure extensible without breaking binary-compatibility.
- add fputwc, fgetwc, fwide and related functions.
- add hooks needed to maintain the orientation of file stream.
 1.110  22-Oct-2001  kleink Bump to 12.80: added sockatmark(3).
 1.109  27-Sep-2001  yamt bump minor to 79.
(add wcstol/wcstoul/wcstod)
 1.108  08-Sep-2001  christos __clone syscall addition.
 1.107  18-Jul-2001  thorpej Bump shlib minor; added clone(2).
 1.106  10-May-2001  pk Bump minor version number: new private identifier `__sysconf' is
referenced from <sys/shm.h>
 1.105  28-Apr-2001  kleink Bump minor version to 75: addition of strtoimax() and strtoumax().
 1.104  31-Mar-2001  kleink Bump minor to 74: addition of __timezone13 and daytime.
 1.103  19-Mar-2001  atatat Bump minor version to 73: MD2 was added.
 1.102  10-Mar-2001  cgd minor=72, for shquote()/shquotev().
 1.101  19-Feb-2001  cgd branches: 1.101.2;
bump libc minor for getprogname() & setprogname() addition
 1.100  05-Jan-2001  jdolecek bump libc minor - utrace(2) addition
 1.99  24-Dec-2000  jmc Update to 69 with the inclusion of the wmem* stuff in string. (shl.mi had
already been updated in sets but this got missed somehow..)
 1.98  19-Dec-2000  kleink Bump libc minor to 68: addition of __{diag,}assert13.
 1.97  12-Dec-2000  ad Add to major-bump TODO: hash function should take the same arguments.
 1.96  11-Dec-2000  ad Argh. Use __weak_alias on the RMD160 functions.
 1.95  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.94  10-Aug-2000  kleink Bump minor version to 65: addition of __setlocale_mb_len_max_32() and
__mb_cur_max.
 1.93  08-Jul-2000  kleink XCU5: Add fseeko() and ftello() functions which provide the functionality of
fseek() and ftell(), respectively, but operate on file offsets of type off_t.
 1.92  05-Jul-2000  veego Bump the minor version, because RIPEMD-160 was added to libc.
 1.91  02-Jun-2000  fvdl branches: 1.91.2;
Add new RPC code, based on Sun's TI-RPC code. Adapted to not use XTI,
but sockets instead, internally. Old, backward compatible interfaces
maintained.
 1.90  30-May-2000  itojun usr.sbin/lpr/lpd now compiles lib/libc/net/rcmd.c on its own, to avoid
use of non-exported function __ivaliduser{,_sa}().

we cannot make __ivaliduser{,_sa}() static yet, since doing that would choke
compiled lpd binaries. we should do it on next libc major version bump.
added a memo on lib/libc/shlib_version.
 1.89  21-Apr-2000  minoura branches: 1.89.2;
New syscall issetugid.
 1.88  02-Apr-2000  christos bump minor for getopt_long
 1.87  02-Apr-2000  minoura Bump minor version (dlfcn change).
 1.86  06-Mar-2000  kleink Bump minor: ISO C99 long long integer general utility interfaces.
 1.85  02-Mar-2000  itojun make CMSG_ALIGN always synchronize with kernel's idea of ALIGNBYTES.
ancillary data alignment will be ALIGNBYTES, not sizeof(long) - 1, from now.

CMSG_xx will NOT resolve into constant. if you use CMSG_xx to allocate
arrays, you'll lose.

bump shlib minor for libc.

NOTE: if you are on top of arch with ALIGNBYTES != sizeof(long) - 1,
you need to recompile IPv6-related binaries. there is no way to guarantee
backward compat in this aspect. sorry for this. this should be the last
backward compat breakage for IPv6-related ancillary data manipulation.
(we still have PR 9516 for unix-domain sockets...)
 1.84  23-Feb-2000  itojun increase shlib minor of libc, for addition of getifaddrs(3).
 1.83  28-Jan-2000  itojun increase libc's shlib minor for rcmd_* changes. sorry to be late.
Suggested by: Klaus Klein
 1.82  23-Dec-1999  kleink Bump minor.
 1.81  13-Dec-1999  itojun bring in latest KAME get{addr,name}info(3).
getnameinfo(3) globs ai_socktype and ai_protocol correctly.
KAME scopeid extension is implemented.
(draft-ietf-ipngwg-scopedaddr-format-00.txt)

bump up shlib minor
(may not be necessary, but rather big difference in behavior - especially
ai_flags)
 1.80  01-Dec-1999  thorpej minor++; added XDR routines for 64-bit integer data types
 1.79  25-Nov-1999  wennmach Bump minor
 1.78  15-Nov-1999  fvdl Bump minor because of struct statfs change (no ABI change, though).
 1.77  16-Sep-1999  lukem branches: 1.77.4;
bump for __diagassert().
 1.76  13-Sep-1999  kleink Bump minor: added ulimit().
 1.75  12-Sep-1999  kleink Bump minor: added fmtmsg().
 1.74  09-Sep-1999  kleink Bump minor: strlcat(), strlcpy().
 1.73  25-Aug-1999  thorpej Add __msgctl13(), __semctl13(), and __shmctl13() (symbols are __RENAME()'d
in their respective header files). Add PSEUDO stubs for the old versions
of these system calls.

Note that __semctl13() doesn't require the extra stub that the old
semctl()/__semctl() did, as the SUSv2 version takes variable arguments,
and thus does not require the extra indirection.
 1.72  01-Jul-1999  itojun add IPv6 support functions.

get{addr,name} info are implemented to have as little impact to existing
resolver code as possible, so they are NOT the optimal implementation.
They are at this moment not very thread safe (as they call
gethostby{name,addr}).

(shlib minor version)++, as new interfaces are added.

TODO: getipnodeby{name,addr} - which needs total reimplementation of
gethostby{name,addr}.
upgrade rcmd.c for multiple af support (needed for IPv6-ready rsh/rlogin)
 1.71  29-Jun-1999  wrstuden Bump version #.
 1.70  15-Jun-1999  thorpej Add mlockall(2)/munlockall(2).
 1.69  17-Apr-1999  ws Modify syncicache on PowerPC from an inline to a real function.
Support different cache line sizes with the same object code in userland.
While here, move the function to implementation name space.
 1.68  22-Mar-1999  sommerfe branches: 1.68.2;
Bump minor number due to new syscalls
 1.67  25-Feb-1999  abs Add a note to update src/distrib/sets/lists/base/shl.*, and add a missing
RCS Id.
 1.66  22-Feb-1999  christos bump minor for t{search,walk,delete,find}
 1.65  06-Feb-1999  kleink Bump minor (sha1, l64a_r()).
 1.64  25-Jan-1999  lukem bump minor for new hesiod functions (from hesiod 3.0.2 dist)
 1.63  16-Jan-1999  lukem bump minor for nsdispatch(3)
 1.62  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.61  30-Nov-1998  thorpej Bump minor to 34; added __sys_signame14, __sys_siglist14, and __sys_errlist14.
 1.60  27-Sep-1998  christos Bump version
 1.59  10-Sep-1998  kleink Bump minor version number (asctime_r(), ctime_r(), gmtime_r(), localtime_r()).
 1.58  28-Aug-1998  perry bump version
 1.57  27-Jul-1998  mycroft Add a mktempdir(), like mkstemp(), but it creates a directory.
 1.56  30-Jun-1998  thorpej Add pread(2), pwrite(2), preadv(2), pwritev(2) system calls.
 1.55  27-Jun-1998  christos Bump for fktrace(2)
 1.54  08-Jun-1998  lukem Bump minor version to 27: addition of fdatasync() and pw_scan().
 1.53  05-Jun-1998  kleink Note that fdatasync(2) is not yet built into the C library. This is because
within few days, another system call is going to be added to the C library,
and we want to avoid bumping the minor number twice.
 1.52  14-Feb-1998  kleink Bump libc minor version to 26: addition of getsid(), tcgetsid() (both from
thorpej), __posix_chown(), __posix_fchown() and __posix_lchown().
 1.51  14-Feb-1998  thorpej Note that tcgetsid(3) and getsid(2) are not yet built into the C library.
This is because with a day or two, 3 other system calls are going to be
added to the C library, and we want to avoid bumping the minor number
twice.
 1.50  02-Feb-1998  perry bump version -- we've added getsubopt.
 1.49  05-Jan-1998  perry RCSID Police.
 1.48  05-Jan-1998  thorpej Bump minor: added __vfork14().
 1.47  20-Dec-1997  kleink Bump libc minor to 23, because of lockf() addition.
 1.46  29-Nov-1997  kleink Modify the recent sigaltstack() interface change to use the __RENAME() scheme;
add __sigaltstack14().
 1.45  02-Nov-1997  kleink Bump libc minor for basename(), dirname().
 1.44  20-Oct-1997  thorpej Fix the shared library versioning snafu caused by the recent changes
to the stat(2) family and msync(2). This uses a primitive function
versioning scheme.

This reverts the libc shared library major version from 13 to 12, and
adds a few new interfaces to bring us to libc version 12.20.

From Frank van der Linden <fvdl@NetBSD.ORG>.
 1.43  16-Oct-1997  christos bump up version number now that:
1. msync() will take a third argument.
2. remove obsolete xdr_{domainname,mapname,peername} from xdryp.c
3. make __ps_strings extern on setproctitle.c and don't set it to
a default when it is NULL.
4. make unvis() argument to an int from a char.
5. move timezone() to libcompat
6. move swapon() to libcompat
7. move getdirentries() to libcompat
8. type sanity:
mode_t: u_int16_t -> u_int32_t
nlinks_t: int16_t -> u_int32_t
dev_t: int32_t -> u_int32_t
 1.42  10-Oct-1997  fvdl Bump minor to 19, because of getdents() addition. Major should really
be bumped sometime.. Also add comment about where getdirentries belongs
once major is bumped.
 1.41  06-Oct-1997  enami Bump minor version since lchmod, lchown and lutimes is added.
 1.40  04-Sep-1997  mrg note swapon() to be removed.
 1.39  21-Jul-1997  jtc If port provides __weak_alias(), provide an Standard C and POSIX pure
identifier namespace by renaming non standard functions and variables
such that they have a leading underscore. The library will use those
names internally. Weak aliases are used to provide the original names
to the API.

This is only the first part of this change. It is most of the functions
which are implemented in C for all NetBSD ports. Subsequent changes are
to add the same support to the remaining C files, to assembly files, and
to the automagically generated assembly source used for system calls.
When all of the above is done, ports with weak alias support should add
a definition for __weak_alias to <sys/cdefs.h>.
 1.38  07-Jul-1997  lukem bump minor for _yp_invalid_domain()
 1.37  12-Jun-1997  mrg bump libc minor for swapctl.
 1.36  05-Jun-1997  mikel add note to fix unvis(3) on next major bump
 1.35  26-May-1997  mrg bump minor version.
 1.34  17-May-1997  mycroft branches: 1.34.2;
Document some more cruft.
 1.33  14-May-1997  gwr Start a "todo" list of things to clean up at the next major version.
 1.32  21-Apr-1997  mrg add strptime() to libc.
 1.31  17-Apr-1997  jtc Bump minor number for .1b timers and nanosleep.
 1.30  13-Apr-1997  mrg bump this with new resolver-named interfaces.
 1.29  30-Jan-1997  thorpej Functions were added to the C library; bump minor.
 1.28  23-Jan-1997  mrg - convert unsafe strcpy(), strcat() and sprintf() to the `n' versions.
- some KNF.
 1.27  17-Jan-1997  lukem inc the minor number
 1.26  19-Nov-1996  jtc bump minor number to 8 (addition of clock_* and ntp_*)
 1.25  08-Sep-1996  mycroft branches: 1.25.2; 1.25.4;
Increment minor version.
 1.24  10-Aug-1996  mrg as the new reboot(2) will only use the bootstr option if the new RB_STRING
flag is set, the major number does not need to change. backing this out.
 1.23  09-Aug-1996  mrg reboot(2)/getpgid(2) changes.
 1.22  29-Apr-1996  pk bump minor version to 5 (addition of futimes(2)).
 1.21  02-Feb-1996  mrg resolver updates to bind 4.9.3-P1 add new functions
 1.20  11-Apr-1995  jtc Bump minor version for __flt_rounds() and fp{get,set}{round,mask,sticky}.
These functions are only available for the i386, m68k, and the sparc but
we can't wait for the other architectures (because FLT_ROUNDS, which
expands to __flt_rounds(), is likely being used in someones code).
 1.19  22-Mar-1995  jtc update minor number for new quad_t versions of abs and div
 1.18  13-Mar-1995  jtc Bump minor number. The new time code has added a few more functions to
its API.
 1.17  13-Jun-1994  cgd syscall numbers have changed enough to make old version dangerous
 1.16  07-May-1994  cgd update for present reality. shlib version number bump (last for a bit)
 1.15  05-May-1994  cgd add getgrouplist
 1.14  04-May-1994  cgd rlimit stuff, and more. bump shlib major, for rlimit change, and for
safety (now that hackish off_t stuff gone completely.)
 1.13  07-Apr-1994  deraadt new resolver -> major bump
 1.12  03-Apr-1994  cgd fpos_t stdio changes
 1.11  02-Apr-1994  cgd yup, another major.
 1.10  27-Mar-1994  cgd _double_ major number bump! joy!
 1.9  27-Jan-1994  cgd bump major, for changes theo and i are making.
 1.8  04-Jan-1994  cgd bump shlib version so people don't get screwed again by fgetline()
 1.7  22-Dec-1993  cgd don't squish newline at end of fgetline()... from bostic
 1.6  03-Dec-1993  cgd bump major number; empirically, there *were* incompatible changes...
 1.5  14-Nov-1993  cgd *sigh* after consultation with pk, un-bump the major number, and bump
the minor one instead. basically, only new functions were added,
and ld.so will (soon) print a warning at program startup if the 'best' minor
number that can be found is less than what's expected.
 1.4  14-Nov-1993  cgd bump major for sysV ipc additions
 1.3  12-Nov-1993  cgd bump major number for new regext stuff; incompatible interface
 1.2  11-Nov-1993  jtc Bump shared library version because regular expresion routines have been
replaced.
 1.1  08-Nov-1993  cgd add shlib_version file, with version 0.0
 1.25.4.1  06-Nov-1996  lukem initial nsswitch implementation
 1.25.2.1  16-Sep-1996  jtc snapshot namespace cleanup
 1.34.2.2  26-May-1997  lukem bump minor, to keep ahead of the mainline branch
 1.34.2.1  23-May-1997  lukem * document and add -DHESIOD to CFLAGS
* bump minor number
 1.68.2.2  06-Oct-2000  he Apply patch (requested by sommerfeld):
Introduce the issetugid() system call.
Bump libc's tiny number to 2.
 1.68.2.1  05-Jul-2000  he Apply patch (requested by he):
Bump the (new) "teeny" number to 1, giving 12.40.1, after
addition of strlcat() and strlcpy().
 1.77.4.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.89.2.1  23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.91.2.1  11-Aug-2000  kleink Pull up rev. 1.94 via patch (approved by thorpej):
Reflect addition of __setlocale_mb_len_max32() and
__mb_cur_max by versioning libc to 12.62.1.
 1.101.2.11  17-Jan-2003  thorpej Sync with HEAD.
 1.101.2.10  10-Dec-2002  thorpej Sync with HEAD.
 1.101.2.9  11-Nov-2002  nathanw Catch up to -current
 1.101.2.8  17-Sep-2002  nathanw Catch up to -current.
 1.101.2.7  27-Aug-2002  nathanw Catch up to -current.
 1.101.2.6  01-Aug-2002  nathanw Catch up to -current.
 1.101.2.5  21-Jun-2002  nathanw Catch up to -current.
 1.101.2.4  22-Mar-2002  nathanw Catch up to -current.
 1.101.2.3  28-Jan-2002  nathanw Catch up to -current.
 1.101.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.101.2.1  08-Oct-2001  nathanw Catch up to -current.
 1.116.2.3  26-Mar-2004  jmc Pullup rev 1.117 (requested by provos in ticket #1386)

Bump for bcrypt additions
 1.116.2.2  19-Jun-2003  grant Apply patch (requested by kleink in ticket #1288):

Bump to libc.so.12.83.2, due to addition of {h,n}to{n,h}{l,s}() on PowerPC.
 1.116.2.1  06-Jan-2003  jmc Bump teeny version to account for minor bump on trunk
(from ticket #1037 requested by fvdl)
 1.148.2.1  12-Jul-2004  he branches: 1.148.2.1.2;
Apply patch (requested by junyoung in ticket #638):
Add strcasestr(3), case insensitive version of strstr(3).
Add a tiny version number to libc (1).
 1.148.2.1.2.1  05-Jul-2005  riz Pull up revision 1.152 via patch (requested by kleink in ticket #2015):
struct netent.n_net used to be an unsigned long integer.
In XNS5, and subsequently in POSIX-2001 it was changed to socklen_t.
To accomodate for this while preserving binary compatibility with the
old interface, prepend or append 32 bits of padding, depending on
the (LP64 data model) architecture's endianness. Fixes PR
standards/21411 from Ben Harris.
This should be deleted the next time the libc major number is
incremented.
Also, update getnetbyaddr(3)'s `net' argument accordingly.
 1.161.2.4  08-Sep-2005  tron Apply patch (requested by elad in ticket #743):
Introduce SHA2 hashing routines in userland, including the common
helper routines.
 1.161.2.3  04-Aug-2005  tron Pull up revision 1.165 via patch (requested by drochner in ticket #632):
Move insque/remque/lsearch/lfind from libcompat to libc,
they are in XPG4-UNIX, XSH5.0, mentioned in SUSv3 etc.
Minimal update of the manpages. (more needed)
 1.161.2.2  11-Jul-2005  tron Pull up revision 1.163 (requested by lukem in ticket #540):
PR/29849, PR/29850: Add getpwent_r and getgrent_r
 1.161.2.1  20-Mar-2005  tron Pull up revision 1.162 (requested by kleink in ticket #27):
Interpose cancellation points in pollts() and pselect(), bringing us
to libc.so.12.127 and libpthread.so.0.6.
 1.180.2.2  27-Aug-2006  riz Pull up following revision(s) (requested by tron in ticket #64):
lib/libc/include/namespace.h: revision 1.119
lib/libc/string/wcsdup.c: revision 1.1
lib/libc/string/wcscasecmp.c: revision 1.1
lib/libc/include/namespace.h: revision 1.120
distrib/sets/lists/base/shl.mi: revision 1.366
lib/libc/shlib_version: revision 1.182
include/wchar.h: revision 1.26
lib/libc/string/Makefile.inc: revision 1.62
lib/libc/string/Makefile.inc: revision 1.63
lib/libc/string/wcsncasecmp.c: revision 1.1
PR/34238: Aleksey Cheusov: add wcsdup, wcscasecmp and wcsncasecmp functions
libc 147 for wcsdup and wcs{n,}casecmp
include one more new file.
add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..
I think we want both wcs{c,n}casecmp weak.
 1.180.2.1  27-Aug-2006  riz Pull up following revision(s) (requested by tron in ticket #63):
regress/lib/libc/string/Makefile: revision 1.9
lib/libc/string/strsep.3: revision 1.17
lib/libc/string/strsep.3: revision 1.18
regress/lib/libc/string/stresep/Makefile: revision 1.1
distrib/sets/lists/base/shl.mi: revision 1.364
regress/lib/libc/string/stresep/stresep_test.c: revision 1.1
lib/libc/gen/fstab.c: revision 1.28
lib/libc/shlib_version: revision 1.181
lib/libc/string/strndup.c: revision 1.1
lib/libc/string/strdup.3: revision 1.13
lib/libc/string/strdup.3: revision 1.14
lib/libc/string/Makefile.inc: revision 1.61
include/string.h: revision 1.31
distrib/sets/lists/comp/mi: revision 1.909
lib/libc/string/stresep.c: revision 1.1
lib/libc/include/namespace.h: revision 1.118
- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in th=
em.
Add stresep and strndup.
add regression test for stresep.
libc 146
man pages for stresep and strndup.
Mark up NULL.
stresep, not strnsep. Remove duplicate "the". Bump date for previous.
 1.184.6.1  22-Jul-2009  snj Apply patch (requested by joerg in ticket #1338):
- Add support for SHA224 to libc
- Fix Big Endian support in some cases
- Use libc support in libcrypto
 1.184.2.1  22-Jul-2009  snj Apply patch (requested by joerg in ticket #1338):
- Add support for SHA224 to libc
- Fix Big Endian support in some cases
- Use libc support in libcrypto
 1.188.2.2  23-Mar-2008  matt sync with HEAD
 1.188.2.1  09-Jan-2008  matt sync with HEAD
 1.194.2.1  24-Mar-2008  keiichi sync with head.
 1.197.2.1  18-May-2008  yamt sync with head.
 1.200.2.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.200.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.204.8.1  14-Jul-2009  snj branches: 1.204.8.1.2;
Pull up following revisions (requested by joerg in ticket #855):
common/lib/libc/hash/sha2/sha2.c: revisions 1.8-1.18 via patch
crypto/dist/openssl/crypto/evp/m_sha1.c: revisions 1.2-1.3 via patch
distrib/sets/lists/base/md.amd64: revision 1.51 via patch
distrib/sets/lists/base/md.sparc64: revision 1.46 via patch
distrib/sets/lists/base/shl.mi: revision 1.474 via patch
distrib/sets/lists/comp/mi: revision 1.1263 via patch
lib/libc/shlib_version: patch
lib/libc/hash/sha2/Makefile.inc: revision 1.4 via patch
lib/libc/hash/sha2/sha2.3: revision 1.5 via patch
lib/libc/hash/sha2/sha224hl.c: revision 1.1 via patch
lib/libc/include/namespace.h: revision 1.138 via patch
lib/libcrypto/libc-sha256.c: revision 1.1 via patch
lib/libcrypto/libc-sha512.c: revision 1.1 via patch
lib/libcrypto/sha.inc: revision 1.10 via patch
lib/libcrypto/shlib_version: patch
sys/lib/libkern/arch/vax/Makefile.inc: revision 1.21 via patch
sys/sys/sha2.h: revision 1.3 via patch
Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.
 1.204.8.1.2.1  21-Apr-2010  matt sync to netbsd-5
 1.204.6.3  10-Jan-2009  christos sync with head.
 1.204.6.2  04-Jan-2009  christos merge with head.
 1.204.6.1  04-Aug-2008  christos file shlib_version was added on branch christos-time_t on 2009-01-04 17:02:18 +0000
 1.204.4.1  14-Jul-2009  snj Pull up following revisions (requested by joerg in ticket #855):
common/lib/libc/hash/sha2/sha2.c: revisions 1.8-1.18 via patch
crypto/dist/openssl/crypto/evp/m_sha1.c: revisions 1.2-1.3 via patch
distrib/sets/lists/base/md.amd64: revision 1.51 via patch
distrib/sets/lists/base/md.sparc64: revision 1.46 via patch
distrib/sets/lists/base/shl.mi: revision 1.474 via patch
distrib/sets/lists/comp/mi: revision 1.1263 via patch
lib/libc/shlib_version: patch
lib/libc/hash/sha2/Makefile.inc: revision 1.4 via patch
lib/libc/hash/sha2/sha2.3: revision 1.5 via patch
lib/libc/hash/sha2/sha224hl.c: revision 1.1 via patch
lib/libc/include/namespace.h: revision 1.138 via patch
lib/libcrypto/libc-sha256.c: revision 1.1 via patch
lib/libcrypto/libc-sha512.c: revision 1.1 via patch
lib/libcrypto/sha.inc: revision 1.10 via patch
lib/libcrypto/shlib_version: patch
sys/sys/sha2.h: revision 1.3 via patch
Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.
 1.208.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.220.2.1  08-Feb-2011  bouyer Sync with HEAD
 1.224.2.4  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.224.2.3  30-Oct-2012  yamt sync with head
 1.224.2.2  17-Apr-2012  yamt sync with head
 1.224.2.1  10-Nov-2011  yamt sync with head
 1.235.2.3  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.235.2.2  23-Jun-2013  tls resync from head
 1.235.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.250.2.1  10-Aug-2014  tls Rebase.
 1.254.2.1  22-Apr-2015  snj Pull up following revision(s) (requested by roy in ticket #648):
common/lib/libc/stdlib/_strtoi.h: revisions 1.1, 1.2
common/lib/libc/stdlib/strtoi.c: revision 1.1
common/lib/libc/stdlib/strtou.c: revision 1.1
distrib/sets/lists/base/ad.aarch64: patch
distrib/sets/lists/base/ad.arm: patch
distrib/sets/lists/base/ad.mips: patch
distrib/sets/lists/base/ad.powerpc: patch
distrib/sets/lists/base/md.amd64: patch
distrib/sets/lists/base/md.sparc64: patch
distrib/sets/lists/base/shl.mi: patch
distrib/sets/lists/comp/mi: revision 1.1939
distrib/sets/lists/debug/ad.aarch64: patch
distrib/sets/lists/debug/ad.arm: patch
distrib/sets/lists/debug/ad.mips: patch
distrib/sets/lists/debug/ad.powerpc: patch
distrib/sets/lists/debug/md.amd64: patch
distrib/sets/lists/debug/md.sparc64: patch
distrib/sets/lists/debug/shl.mi: patch
include/inttypes.h: revision 1.11
lib/libc/shlib_version: patch
lib/libc/stdlib/Makefile.inc: revision 1.84
lib/libc/stdlib/strtol.3: revisions 1.27-1.31
lib/libc/stdlib/strtoul.3: revisions 1.26-1.29
sys/lib/libkern/Makefile.libkern: revision 1.37
sys/lib/libkern/libkern.h: revision 1.117
tools/compat/Makefile: revision 1.73
tools/compat/compat_defs.h: revision 1.101
tools/compat/configure.ac: revision 1.83
tools/compat/configure: revision 1.82
tools/compat/nbtool_config.h.in: revision 1.36
add strto{i,u} from Kamil Rytarowski as discussed in tech-userlevel.
--
strtoi and strtou additions
--
strtoi and strtou for the kernel
--
strtoi and strtou additions
--
strtoi and strtou man pages
--
strto{i,u}
--
regen
--
Remove trailing whitespace.
--
match variable names with man page (Kamil Rytarowski)
--
cleanups from (Kamil Rytarowski)
--
add strtoi strtou (Kamil Rytarowski)
--
PR/49640: Kamil Rytarowski: Improve error printing
--
Use existing month for Dd.
 1.266.2.2  20-Mar-2017  pgoyette Sync with HEAD
 1.266.2.1  04-Nov-2016  pgoyette Sync with HEAD
 1.269.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.272.2.1  11-May-2017  pgoyette Sync with HEAD
 1.278.2.3  26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.278.2.2  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.278.2.1  07-Apr-2018  pgoyette Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
 1.279.2.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.279.2.1  10-Jun-2019  christos Sync with HEAD
 1.293.2.1  14-Oct-2024  martin Pull up following revision(s) (requested by riastradh in ticket #976):

lib/libc/locale/c32rtomb.3: revision 1.10
lib/libc/locale/c32rtomb.3: revision 1.9
lib/libc/locale/c32rtomb.3: revision 1.11
tests/lib/libc/locale/t_mbrtoc32.c: revision 1.1
distrib/sets/lists/base/shl.mi: revision 1.988
lib/libc/include/namespace.h: revision 1.204
lib/libc/include/namespace.h: revision 1.205
lib/libc/locale/mbrtoc16.3: revision 1.1
lib/libc/locale/mbrtoc16.c: revision 1.1
lib/libc/locale/mbrtoc16.3: revision 1.2
lib/libc/locale/mbrtoc16.c: revision 1.2
lib/libc/locale/mbrtoc16.3: revision 1.3
lib/libc/locale/mbrtoc16.c: revision 1.3
lib/libc/locale/mbrtoc32.3: revision 1.1
lib/libc/locale/mbrtoc32.c: revision 1.1
tests/lib/libc/locale/t_c16rtomb.c: revision 1.1
lib/libc/locale/mbrtoc32.c: revision 1.2
lib/libc/locale/mbrtoc16.3: revision 1.4
lib/libc/locale/mbrtoc16.c: revision 1.4
lib/libc/locale/mbrtoc32.3: revision 1.2
tests/lib/libc/locale/t_c16rtomb.c: revision 1.2
lib/libc/locale/mbrtoc32.c: revision 1.3
lib/libc/locale/mbrtoc16.3: revision 1.5
lib/libc/locale/mbrtoc16.c: revision 1.5
lib/libc/locale/mbrtoc32.3: revision 1.3
tests/lib/libc/locale/t_c16rtomb.c: revision 1.3
lib/libc/locale/mbrtoc32.c: revision 1.4
lib/libc/locale/mbrtoc16.3: revision 1.6
lib/libc/locale/mbrtoc16.c: revision 1.6
lib/libc/locale/mbrtoc32.3: revision 1.4
tests/lib/libc/locale/t_c16rtomb.c: revision 1.4
lib/libc/locale/mbrtoc32.c: revision 1.5
lib/libc/locale/mbrtoc16.3: revision 1.7
lib/libc/locale/mbrtoc16.c: revision 1.7
lib/libc/locale/mbrtoc32.3: revision 1.5
tests/lib/libc/locale/t_c16rtomb.c: revision 1.5
lib/libc/locale/mbrtoc32.c: revision 1.6
lib/libc/locale/mbrtoc16.3: revision 1.8
lib/libc/locale/mbrtoc32.3: revision 1.6
tests/lib/libc/locale/t_c16rtomb.c: revision 1.6
lib/libc/locale/mbrtoc32.c: revision 1.7
lib/libc/locale/mbrtoc16.3: revision 1.9
lib/libc/locale/mbrtoc32.3: revision 1.7
lib/libc/locale/mbrtoc32.c: revision 1.8
lib/libc/locale/mbrtoc32.3: revision 1.8
lib/libc/locale/mbrtoc32.c: revision 1.9
distrib/sets/lists/comp/mi: revision 1.2468
lib/libc/locale/mbrtoc32.3: revision 1.9
distrib/sets/lists/comp/mi: revision 1.2469
lib/libc/locale/c32rtomb.h: revision 1.1
lib/libc/locale/c32rtomb.h: revision 1.2
include/Makefile: revision 1.147
share/man/man3/uchar.3: revision 1.1
share/man/man3/uchar.3: revision 1.2
tests/lib/libc/locale/t_c32rtomb.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.2470
lib/libc/locale/c16rtomb.3: revision 1.1
lib/libc/locale/c16rtomb.c: revision 1.1
lib/libc/locale/c16rtomb.3: revision 1.2
lib/libc/locale/c16rtomb.c: revision 1.2
lib/libc/locale/c16rtomb.3: revision 1.3
lib/libc/locale/c16rtomb.c: revision 1.3
lib/libc/locale/c16rtomb.3: revision 1.4
lib/libc/locale/c16rtomb.c: revision 1.4
lib/libc/locale/c16rtomb.3: revision 1.5
lib/libc/locale/c16rtomb.c: revision 1.5
lib/libc/locale/c16rtomb.3: revision 1.6
lib/libc/locale/c16rtomb.c: revision 1.6
lib/libc/locale/c16rtomb.3: revision 1.7
lib/libc/locale/c16rtomb.c: revision 1.7
lib/libc/locale/c16rtomb.3: revision 1.8
lib/libc/locale/c16rtomb.3: revision 1.9
distrib/sets/lists/tests/mi: revision 1.1330
distrib/sets/lists/tests/mi: revision 1.1331
distrib/sets/lists/tests/mi: revision 1.1332
tests/lib/libc/locale/t_uchar.c: revision 1.1
tests/lib/libc/locale/t_uchar.c: revision 1.2
tests/lib/libc/locale/t_uchar.c: revision 1.3
tests/lib/libc/locale/t_mbrtoc16.c: revision 1.1
tests/lib/libc/locale/t_mbrtoc16.c: revision 1.2
tests/lib/libc/locale/t_mbrtoc16.c: revision 1.3
include/uchar.h: revision 1.1
include/uchar.h: revision 1.2
include/uchar.h: revision 1.3
include/uchar.h: revision 1.4
include/uchar.h: revision 1.5
tests/lib/libc/locale/t_c8rtomb.c: revision 1.1
include/uchar.h: revision 1.6
tests/lib/libc/locale/t_c8rtomb.c: revision 1.2
tests/lib/libc/locale/t_c8rtomb.c: revision 1.3
tests/lib/libc/locale/t_c8rtomb.c: revision 1.4
share/man/man3/Makefile: revision 1.93
tests/lib/libc/locale/t_c8rtomb.c: revision 1.5
tests/lib/libc/locale/t_c8rtomb.c: revision 1.6
tests/lib/libc/locale/t_c8rtomb.c: revision 1.7
lib/libc/shlib_version: revision 1.297
lib/libc/locale/c16rtomb.3: revision 1.10
lib/libc/locale/c16rtomb.3: revision 1.11
tests/lib/libc/locale/t_mbrtoc8.c: revision 1.1
tests/lib/libc/locale/t_mbrtoc8.c: revision 1.2
tests/lib/libc/locale/t_mbrtoc8.c: revision 1.3
lib/libc/locale/mbrtoc16.3: revision 1.10
tests/lib/libc/locale/Makefile: revision 1.15
tests/lib/libc/locale/Makefile: revision 1.16
tests/lib/libc/locale/Makefile: revision 1.17
tests/lib/libc/locale/Makefile: revision 1.18
distrib/sets/lists/debug/mi: revision 1.442
distrib/sets/lists/debug/mi: revision 1.443
distrib/sets/lists/debug/mi: revision 1.444
lib/libc/locale/c8rtomb.3: revision 1.1
lib/libc/locale/c8rtomb.c: revision 1.1
lib/libc/locale/c8rtomb.3: revision 1.2
lib/libc/locale/c8rtomb.c: revision 1.2
lib/libc/locale/c8rtomb.3: revision 1.3
lib/libc/locale/c8rtomb.c: revision 1.3
lib/libc/locale/c8rtomb.3: revision 1.4
lib/libc/locale/c8rtomb.c: revision 1.4
lib/libc/locale/c8rtomb.3: revision 1.5
lib/libc/locale/c8rtomb.c: revision 1.5
lib/libc/locale/c8rtomb.3: revision 1.6
lib/libc/locale/c8rtomb.c: revision 1.6
lib/libc/locale/c8rtomb.3: revision 1.7
lib/libc/locale/c8rtomb.3: revision 1.8
lib/libc/locale/c8rtomb.3: revision 1.9
lib/libc/locale/mbrtoc32.h: revision 1.1
lib/libc/locale/mbrtoc32.h: revision 1.2
lib/libc/locale/mbrtoc8.c: revision 1.1
lib/libc/locale/mbrtoc8.3: revision 1.1
lib/libc/locale/mbrtoc8.c: revision 1.2
lib/libc/locale/mbrtoc8.3: revision 1.2
lib/libc/locale/mbrtoc8.c: revision 1.3
lib/libc/locale/mbrtoc8.3: revision 1.3
lib/libc/locale/mbrtoc8.c: revision 1.4
lib/libc/locale/mbrtoc8.3: revision 1.4
lib/libc/locale/Makefile.inc: revision 1.66
lib/libc/locale/mbrtoc8.c: revision 1.5
lib/libc/locale/mbrtoc8.3: revision 1.5
lib/libc/locale/Makefile.inc: revision 1.67
lib/libc/locale/mbrtoc8.c: revision 1.6
lib/libc/locale/mbrtoc8.3: revision 1.6
lib/libc/locale/mbrtoc8.c: revision 1.7
lib/libc/locale/mbrtoc8.3: revision 1.7
lib/libc/locale/mbrtoc8.c: revision 1.8
lib/libc/locale/c32rtomb.3: revision 1.1
lib/libc/locale/c32rtomb.c: revision 1.1
lib/libc/locale/c32rtomb.3: revision 1.2
lib/libc/locale/c32rtomb.c: revision 1.2
lib/libc/locale/c32rtomb.3: revision 1.3
lib/libc/locale/c32rtomb.c: revision 1.3
lib/libc/locale/c32rtomb.3: revision 1.4
lib/libc/locale/c32rtomb.c: revision 1.4
lib/libc/locale/c32rtomb.3: revision 1.5
lib/libc/locale/c32rtomb.c: revision 1.5
lib/libc/locale/c32rtomb.3: revision 1.6
lib/libc/locale/c32rtomb.c: revision 1.6
lib/libc/locale/c32rtomb.3: revision 1.7
lib/libc/locale/c32rtomb.3: revision 1.8

(all via patch)


tests/lib/libc/locale/Makefile: Sort.
No functional change intended.
Preparation for PR lib/52374.

uchar.h: New header file for C11 (and C++11) compliance.

Implementation of the new functions mbrtoc16, c16rtomb, mbrtoc32, and
c32rtomb to come later. Updates for C23 to come later.
PR lib/52374: <uchar.h> missing

libc: New C11 functions mbrtoc16, mbrtoc32, c16rtomb, c32rtomb.

The mbrtoc16/32 functions read mulitbyte strings according to the
current locale into UTF-16/32 code unit sequences; the c16/32rtomb
functions write UTF-16/32 code unit sequences into multibyte strings
according to the current locale. The `r' means restartable: they
work incrementally and pick up where they left off.

NOTE: This bumps the libc minor version, since it adds new symbols.

PR lib/52374: <uchar.h> missing
mbrtoc16(3), mbrtoc32(3): Fix \n in man page examples.
Need to write \en to pacify roff.
PR lib/52374: <uchar.h> missing

c16rtomb(3), c32rtomb(3): Fix more \n in man pages.
Also, tighten an assertion: we left room for a NUL byte at the end.
PR lib/52374: <uchar.h> missing

libc: Use the more idiomatic alignof from stdalign.h.
No functional change intended.
PR lib/52374: <uchar.h> missing

mbrtoc16(3): Simplify surrogate state test.

Turn the finer-grained test into an assertion.
No semantic change intended: we are supposed to control this state,
and we always arrange it this way. (But in principle this could
change the behaviour of buggy programs that violate the mbstate_t
abstraction.)
PR lib/52374: <uchar.h> missing

libc: New functions c8rtomb(3) and mbrtoc8(3).

New in C23, for converting from UTF-8 to locale-dependent multibyte
sequences (c8rtomb) or vice versa (mbrtoc8), along with the new type
char8_t.

Conditional on either:
- _NETBSD_SOURCE
- _ISOC23_SOURCE
- __STDC_VERSION__ >= 202311L
(Riding the libc minor bump from this morning for the UTF-16/UTF-32
versions from C11.)

PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb
libc: c32rtomb and mbrtoc32 are used internally, so weak-alias them.
PR lib/52374: <uchar.h> missing
c8rtomb(3), mbrtoc8(3): Use namespace.h to get private aliases.

This way applications defining the symbols c32rtomb or mbrtoc32 won't
clobber our private definitions, which are slightly more constrained
about their use of mbstate_t than is obvious from the interface
contract.

PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb
mbrtoc16(3), mbrtoc32(3): brush up markup

Split long .Fn lines into Fo/Fa/Fc. Dont indent the list of return
values. Don't use artisanal -width.

Untabify code examples - indented literal displays don't have correct
tab stops consistent with tab stops in the fixed font code, so the
lines end up misaligned in the PostScript output.

c16rtomb(3), c32rtomb(3): brush up markup

mbrtoc16(3), mbrtoc32(3): Simplify return value language.
Also expand BMP only once.
PR lib/52374: <uchar.h> missing

mbrtoc16(3), mbrtoc32(3): No state overlap with mbrtoc8 or c8rtomb.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

mbrtoc32(3): Clarify control flow.
No need for another goto here; let's keep it clearly structured with
a single `out' label.
No functional change intended.
PR lib/52374: <uchar.h> missing

c8rtomb(3), mbrtoc8(3): brush up markup

mbrtoc8(3): Simplify return value language.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

c16rtomb(3), c32rtomb(3): Specify what happens if ps is null.
PR lib/52374: <uchar.h> missing

c8rtomb(3): Specify what happens when ps is null.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

c16rtomb(3), c32rtomb(3): No state overlap with mbrtoc8 or c8rtomb.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

mbrtoc16(3), mbrtoc32(3): Work on deturgidifying prose.
Still maybe not great but at least there's less jargon in most of the
text, without really losing any content.
PR lib/52374: <uchar.h> missing

mbrtoc8(3): Work on deturgidifying prose.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

mbrtoc16(3), mbrtoc32(3): Restore word accidentally removed.
PR lib/52374: <uchar.h> missing

mbrtoc8(3): Restore word accidentally removed.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

c8rtomb(3): Fix possible error descriptions.
The argument c8 can't be a surrogate code point itself (they're in
the range [0xd800,0xdfff], beyond 8-bit values), but the bits of a
surrogate code point could be forced into the UTF-8 format, which is
also invalid.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

c16rtomb(3), c32rtomb(3): Attempt a deturgidification pass.
Limit the jargon around surrogates.
PR lib/52374: <uchar.h> missing

c8rtomb(3): Clarify prose and fix example in caveat.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb
c16rtomb(3), c32rtomb(3), mbrtoc16(3), mbrtoc32(3): xref c8 versions.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

mbrtoc16(3): Clarify how many bytes are consumed in special cases.
Fix overlap in RETURN VALUES section.
PR lib/52374: <uchar.h> missing

mbrtoc8(3): Clarify how many bytes are consumed in special cases.
Fix overlap in RETURN VALUES section.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

pass lint, XXX see lint bug.

libc: Add _l variants of the cNrtomb and mbrtocN functions.
These accept an explicit locale parameter, rather than using the
current locale.
Visible under _NETBSD_SOURCE, not exposed otherwise.
NOTE: This adds libc symbols. Riding the libc minor bump for the
non-_l variants of these from two days ago -- hope that's not pushing
it too far.
PR lib/58613: c*rtomb, mbrtoc* should have locale-parametric _l
variants

c8rtomb(3), c16rtomb(3): Add tests for incomplete NUL termination.
PR lib/58615: incomplete c8rtomb, c16rtomb handles NUL termination
wrong

c8rtomb(3), c16rtomb(3): Fix NUL handling.
PR lib/58615: incomplete c8rtomb, c16rtomb handles NUL termination
wrong

c8rtomb(3), c16rtomb(3), c32rtomb(3): Test stateful shift sequences.
PR lib/58612: c8rtomb/c16rtomb/c32rtomb yield suboptimal shift
sequences

c8rtomb(3): Fix digit error in shift sequence test.
PR lib/58612: c8rtomb/c16rtomb/c32rtomb yield suboptimal shift
sequences

c8rtomb(3): Nix __CTASSERT after case label.
I put this in to make it (machine-verifiably) clear that zeroing the
state is the same as returning to the initial conversion state, as
the standard requires, but this is causing build trouble (and will
likely cause more trouble if pulled up) because some definitions of
__CTASSERT make a declaration which is forbidden after a label, so
let's remove it.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

mbrtoc8(3): Fix pasto in comment at top.
No functional change intended.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb

mbrtoc8: remove lint-specific workarounds
No binary change.

mbrtoc8: fix comments

mbrtoc16, mbrtoc32: fix comments, remove lint-specific workarounds
No binary change.
t_c8rtomb, t_c16rtomb: Simplify comment.
ESC $ B is technically rather the JIS X 0208-1983 shift sequence, but
since I don't see any way to provoke the JIS X 0208-1978 shift
sequence to come flying out of this conversion (ESC $ @), and I'm not
sure there's any difference in the interpretation, let's just say JIS
X 0208.
PR lib/58612: c8rtomb/c16rtomb/c32rtomb yield suboptimal shift
sequences

c32rtomb(3): Use conversion state to handle shift sequences.
For conversion of Unicode scalar values to coding systems requiring
shift sequences, such as ISO-2022-JP, _citrus_iconv_convert will
always produce:
1. a shift sequence from the initial state to some nondefault state,
like from US-ASCII to JIS X 0208
2. the encoding of the desired characater
3. a shift sequence restoring the initial state
This is unnecessary if the output is already in the state needed to
encoded the desired character. For example, this method produces
seven bytes to encode each YEN SIGN in ISO-2022-JP -- and fourteen,
to encode two consecutive ones -- even though the shift sequence is
only three bytes long and once shifted YEN SIGN takes only one byte.
Instead, convert the Unicode scalar value to a locale-dependent wide
character and encode that, by composing
- _citrus_iconv_convert
=> gives us a multibyte encoding of the character from the initial
state (and restoring the initial state afterward)
- mbrtowc with initial conversion state
=> gives us the single wide character representation
XXX If combining characters are possible here, this may fail.
- wcrtomb with caller's conversion tsate
=> gives us a state-dependent multibyte encoding of the character
XXX Is there a cheaper way to convert from Unicode scalar value to
locale-dependent wide character? It is not obvious to me from the
largely undocumented Citrus machinery, but it would obviously be
better than this somewhat circuitous Rube Goldberg contraption of
chained multibyte APIs.
PR lib/58612: c8rtomb/c16rtomb/c32rtomb yield suboptimal shift
sequences

mbrtoc8(3), mbrtoc16(3): Test consuming shift sequences with state.
This has the side effect of testing mbrtoc32(3) because they are both
defined in terms of it.
PR lib/58618: mbrtocN(3) fails to keep shift state

c8rtomb(3), c16rtomb(3), c32rtomb(3): Suggest MB_LEN_MAX in example.
This way it avoids variable-length arrays, by always allocating the
maximum space that could be occupied by MB_CUR_MAX.

mbrtoc32(3): Use conversion state to handle shift sequences.
PR lib/58618: mbrtocN(3) fails to keep shift state

mbrtoc32(3): Fix name and type of mbrtowc_l return value.
This was from `int mbtowc_l(...)' in an earlier draft and I didn't
update it to size_t when I changed the draft to mbrtowc_l. Caught by
lint.
`mb_len' avoids (harmless) clash with standard C function mblen(3).
PR lib/58618: mbrtocN(3) fails to keep shift state

c32rtomb(3): Fix type of wcrtomb_l return value.
This was from `int wctomb_l(...)' in an earlier draft and I didn't
update it to size_t when I changed the draft to wcrtomb_l. Caught by
lint.
`wc_len' mirrors `mb_len' in the complementary code in mbrtoc32(3) to
avoid clash with standard C function mblen(3).
PR lib/58612: c8rtomb/c16rtomb/c32rtomb yield suboptimal shift
sequences

c8rtomb(3), c16rtomb(3), c32rtomb(3): Attempt to simplify language.

c8rtomb(3), c16rtomb(3), c32rtomb(3): Fix null string output case.
This ignores c8/c16/c32, produces no output anywhere, and just resets
ps to the initial conversion state.
Also just use 0 in the example, not '\0' or L'\0'. This works for
C11, which prefers '\0' and L'\0', for and C23, which introduced the
new u8'\0', u'\0' (UTF-16), and U'\0' (UTF-32).
c16rtomb, c32rtomb, mbrtoc8: fix page numbers in comments
mbrtoc8(3), mbrtoc16(3), mbrtoc32(3): Say 0 for zero code unit.
Rather than deal with differences between C11 and C23 in notation,
'\0' vs L'\0' vs u8'\0' vs u'\0' vs U'\0'.
uchar.h: Include <sys/featuretest.h> before testing _*_SOURCE.
PR lib/58752: various header files test _*_SOURCE macros but don't
include sys/featuretest.h
PR lib/52374: <uchar.h> missing

uchar.h: Need <sys/cdefs.h> for __restrict.
PR lib/52374: <uchar.h> missing

uchar.h: Simplify __cpp_char8_t and __cplusplus conditionals.
No functional change intended.
PR lib/52374: <uchar.h> missing

tests/lib/libc/locale/t_uchar: Test for char8_t, mbrtoc8, c8rtomb.
PR lib/58752: various header files test _*_SOURCE macros but don't
include sys/featuretest.h
PR lib/52374: <uchar.h> missing

tests/t_uchar: fix copy-and-paste typo
 1.296.2.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed