History log of /netbsd-current/lib/libc/include/namespace.h
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.203 31-May-2022 riastradh

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.202 11-Sep-2021 andvar

Add missing double p and d for stopped and overriden accordingly.
Fix few more typos along the way, mainly in copy-pasted comments.


# 1.201 04-Jul-2021 rillig

libc: remove special handling for lint

In namespace.h 1.102 from 2005-07-16, the #ifndef was added to fix the
broken lint2 pass. Somewhere between 2005 and now, lint has been
changed so that it does not need this workaround anymore.

After usr.bin/xlint/lint1/tree.c 1.303 from 2021-06-30, the #ifndef in
namespace.h caused the only warning about an implicit function
declaration in the whole NetBSD tree, in lib/libc/gen/sysconf.c:149,
where _getpagesize was not defined, but only getpagesize.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.200 22-Sep-2020 nia

remove getentropy bits


# 1.199 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.


Revision tags: phil-wifi-20200421
# 1.198 18-Apr-2020 thorpej

Rename "syscall" to "_syscall" and provide "syscall" as a weak alias.


Revision tags: phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.197 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=


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.196 17-Jan-2018 kamil

branches: 1.196.4;
Revert to commits as they broke few rump tests

"Include namespace.h in a few of libc source files
[...]
This change finishes elimination of usage of the global name of the
following symbols:
- close -> _close
- execve -> _execve
- fcntl -> _fcntl
- setcontext -> _setcontext
- wait6 -> _wait6
- write -> _write
- writev -> _writev"

"Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev"

These changes broke:

fs/nfs/t_rquotad:get_nfs_be_1_both
fs/nfs/t_rquotad:get_nfs_be_1_group
fs/nfs/t_rquotad:get_nfs_be_1_user
fs/nfs/t_rquotad:get_nfs_le_1_both
fs/nfs/t_rquotad:get_nfs_le_1_group
fs/nfs/t_rquotad:get_nfs_le_1_user
lib/librumphijack/t_config:fdoff
lib/librumphijack/t_tcpip:http
lib/librumphijack/t_tcpip:nfs
lib/librumphijack/t_vfs:cpcopy
lib/librumphijack/t_vfs:mv_x
lib/librumphijack/t_vfs:paxcopy
net/net/t_forwarding:ipforwarding_fastforward_v4
net/net/t_forwarding:ipforwarding_fastforward_v6
net/net/t_forwarding:ipforwarding_fragment_v4
net/net/t_forwarding:ipforwarding_misc
net/net/t_mtudisc6:mtudisc6_basic

This revert fixes the failures, except lib/librumphijack/t_vfs.

The original changes were added in order to facilitate a usage of
sanitizers against programs linked with NetBSD's libc. It is no longer
needed, so abandon these changes.

Sponsored by <The NetBSD Foundation>


# 1.195 07-Jan-2018 kamil

Revert asctime() namespacing

asctime() is optionally a cancellation point in the POSIX spec.
It's not true for NetBSD.

Requested by <joerg>


# 1.194 07-Jan-2018 kamil

Revert namespacing of atoi(3)

Sanitizers can handle recursive interceptions in some / most cases, if they
will cause damage the problem will be not workaroundable without libc
changes - I will be back to it.

Keep namespace of asctime() as this can be a cancellation point according
to POSIX. Right now it's not implemented on NetBSD. Defer it for later.

Keep weak symbols and namespace for wait6(2) as this could be a
cancellation point as well. Defer this for later.

Sanitizers's [recursive] interceptors are a hack and moving one way or
another can cause new sets of problems. Recursive ones can be useful and
cause problems (on Linux there are known with with signal handlers).

Sponsored by <The NetBSD Foundation>


# 1.193 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: atoi

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add atoi to namespace.h.

Register a new __weak_alias() entry for atoi() in atoi.c.

atoi() is used internally in getrpcent(), rresvport_af(), ftok(), err(),
__llvm_profile_write_file(), llvm_gcda_start_file(), citrus_iconv_open(),
getprotoent_r(), __rpc_uaddr2taddr_af(), __res_nopt_rdata() and
servent_parseline().

This revision switches the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.192 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: asctime

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add asctime to namespace.h.

Register a new __weak_alias() entry for asctime() in asctime.c.

acstime() is used internally in ctime and __ctime50. This revision switches
the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.191 05-Jan-2018 kamil

Register dl_iterate_phdr in the libc's namespace.h

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Stop using the public global name of dl_iterate_phdr in tls/tls.c:
__libc_static_tls_setup().

Follow the approach with other dlopen(3)-like functions with the
namespace.h in the dl_iterate_phdr() case. Use internally a weak symbol:
__dl_iterate_phdr instead of dl_iterate_phdr.

Sponsored by <The NetBSD Foundation>


# 1.190 05-Jan-2018 kamil

Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev

These syscalls are already marked as WEAKASM, generating weak references.

Sponsored by <The NetBSD Foundation>


# 1.189 30-Nov-2017 riastradh

Import SHA-3 code into libc and libkern.

No new public symbols in libc, but publishing the symbols is a simple
matter if/when we decide to do so.

Proposed on tech-kern and tech-userlevel with no objections:

https://mail-index.NetBSD.org/tech-kern/2017/11/11/msg022581.html
https://mail-index.NetBSD.org/tech-userlevel/2017/11/11/msg010968.html


# 1.188 22-Oct-2017 riastradh

xref libc/README


# 1.187 22-Oct-2017 christos

Add an explanation of how namespace.h works.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320
# 1.186 08-Feb-2017 maya

Make paccept a weak symbol in preparation for using it in another function


Revision tags: bouyer-socketcan-base
# 1.185 13-Jan-2017 christos

branches: 1.185.2;
allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.202 11-Sep-2021 andvar

Add missing double p and d for stopped and overriden accordingly.
Fix few more typos along the way, mainly in copy-pasted comments.


# 1.201 04-Jul-2021 rillig

libc: remove special handling for lint

In namespace.h 1.102 from 2005-07-16, the #ifndef was added to fix the
broken lint2 pass. Somewhere between 2005 and now, lint has been
changed so that it does not need this workaround anymore.

After usr.bin/xlint/lint1/tree.c 1.303 from 2021-06-30, the #ifndef in
namespace.h caused the only warning about an implicit function
declaration in the whole NetBSD tree, in lib/libc/gen/sysconf.c:149,
where _getpagesize was not defined, but only getpagesize.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.200 22-Sep-2020 nia

remove getentropy bits


# 1.199 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.


Revision tags: phil-wifi-20200421
# 1.198 18-Apr-2020 thorpej

Rename "syscall" to "_syscall" and provide "syscall" as a weak alias.


Revision tags: phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.197 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=


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.196 17-Jan-2018 kamil

branches: 1.196.4;
Revert to commits as they broke few rump tests

"Include namespace.h in a few of libc source files
[...]
This change finishes elimination of usage of the global name of the
following symbols:
- close -> _close
- execve -> _execve
- fcntl -> _fcntl
- setcontext -> _setcontext
- wait6 -> _wait6
- write -> _write
- writev -> _writev"

"Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev"

These changes broke:

fs/nfs/t_rquotad:get_nfs_be_1_both
fs/nfs/t_rquotad:get_nfs_be_1_group
fs/nfs/t_rquotad:get_nfs_be_1_user
fs/nfs/t_rquotad:get_nfs_le_1_both
fs/nfs/t_rquotad:get_nfs_le_1_group
fs/nfs/t_rquotad:get_nfs_le_1_user
lib/librumphijack/t_config:fdoff
lib/librumphijack/t_tcpip:http
lib/librumphijack/t_tcpip:nfs
lib/librumphijack/t_vfs:cpcopy
lib/librumphijack/t_vfs:mv_x
lib/librumphijack/t_vfs:paxcopy
net/net/t_forwarding:ipforwarding_fastforward_v4
net/net/t_forwarding:ipforwarding_fastforward_v6
net/net/t_forwarding:ipforwarding_fragment_v4
net/net/t_forwarding:ipforwarding_misc
net/net/t_mtudisc6:mtudisc6_basic

This revert fixes the failures, except lib/librumphijack/t_vfs.

The original changes were added in order to facilitate a usage of
sanitizers against programs linked with NetBSD's libc. It is no longer
needed, so abandon these changes.

Sponsored by <The NetBSD Foundation>


# 1.195 07-Jan-2018 kamil

Revert asctime() namespacing

asctime() is optionally a cancellation point in the POSIX spec.
It's not true for NetBSD.

Requested by <joerg>


# 1.194 07-Jan-2018 kamil

Revert namespacing of atoi(3)

Sanitizers can handle recursive interceptions in some / most cases, if they
will cause damage the problem will be not workaroundable without libc
changes - I will be back to it.

Keep namespace of asctime() as this can be a cancellation point according
to POSIX. Right now it's not implemented on NetBSD. Defer it for later.

Keep weak symbols and namespace for wait6(2) as this could be a
cancellation point as well. Defer this for later.

Sanitizers's [recursive] interceptors are a hack and moving one way or
another can cause new sets of problems. Recursive ones can be useful and
cause problems (on Linux there are known with with signal handlers).

Sponsored by <The NetBSD Foundation>


# 1.193 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: atoi

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add atoi to namespace.h.

Register a new __weak_alias() entry for atoi() in atoi.c.

atoi() is used internally in getrpcent(), rresvport_af(), ftok(), err(),
__llvm_profile_write_file(), llvm_gcda_start_file(), citrus_iconv_open(),
getprotoent_r(), __rpc_uaddr2taddr_af(), __res_nopt_rdata() and
servent_parseline().

This revision switches the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.192 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: asctime

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add asctime to namespace.h.

Register a new __weak_alias() entry for asctime() in asctime.c.

acstime() is used internally in ctime and __ctime50. This revision switches
the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.191 05-Jan-2018 kamil

Register dl_iterate_phdr in the libc's namespace.h

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Stop using the public global name of dl_iterate_phdr in tls/tls.c:
__libc_static_tls_setup().

Follow the approach with other dlopen(3)-like functions with the
namespace.h in the dl_iterate_phdr() case. Use internally a weak symbol:
__dl_iterate_phdr instead of dl_iterate_phdr.

Sponsored by <The NetBSD Foundation>


# 1.190 05-Jan-2018 kamil

Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev

These syscalls are already marked as WEAKASM, generating weak references.

Sponsored by <The NetBSD Foundation>


# 1.189 30-Nov-2017 riastradh

Import SHA-3 code into libc and libkern.

No new public symbols in libc, but publishing the symbols is a simple
matter if/when we decide to do so.

Proposed on tech-kern and tech-userlevel with no objections:

https://mail-index.NetBSD.org/tech-kern/2017/11/11/msg022581.html
https://mail-index.NetBSD.org/tech-userlevel/2017/11/11/msg010968.html


# 1.188 22-Oct-2017 riastradh

xref libc/README


# 1.187 22-Oct-2017 christos

Add an explanation of how namespace.h works.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320
# 1.186 08-Feb-2017 maya

Make paccept a weak symbol in preparation for using it in another function


Revision tags: bouyer-socketcan-base
# 1.185 13-Jan-2017 christos

branches: 1.185.2;
allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.201 04-Jul-2021 rillig

libc: remove special handling for lint

In namespace.h 1.102 from 2005-07-16, the #ifndef was added to fix the
broken lint2 pass. Somewhere between 2005 and now, lint has been
changed so that it does not need this workaround anymore.

After usr.bin/xlint/lint1/tree.c 1.303 from 2021-06-30, the #ifndef in
namespace.h caused the only warning about an implicit function
declaration in the whole NetBSD tree, in lib/libc/gen/sysconf.c:149,
where _getpagesize was not defined, but only getpagesize.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.200 22-Sep-2020 nia

remove getentropy bits


# 1.199 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.


Revision tags: phil-wifi-20200421
# 1.198 18-Apr-2020 thorpej

Rename "syscall" to "_syscall" and provide "syscall" as a weak alias.


Revision tags: phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.197 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=


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.196 17-Jan-2018 kamil

branches: 1.196.4;
Revert to commits as they broke few rump tests

"Include namespace.h in a few of libc source files
[...]
This change finishes elimination of usage of the global name of the
following symbols:
- close -> _close
- execve -> _execve
- fcntl -> _fcntl
- setcontext -> _setcontext
- wait6 -> _wait6
- write -> _write
- writev -> _writev"

"Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev"

These changes broke:

fs/nfs/t_rquotad:get_nfs_be_1_both
fs/nfs/t_rquotad:get_nfs_be_1_group
fs/nfs/t_rquotad:get_nfs_be_1_user
fs/nfs/t_rquotad:get_nfs_le_1_both
fs/nfs/t_rquotad:get_nfs_le_1_group
fs/nfs/t_rquotad:get_nfs_le_1_user
lib/librumphijack/t_config:fdoff
lib/librumphijack/t_tcpip:http
lib/librumphijack/t_tcpip:nfs
lib/librumphijack/t_vfs:cpcopy
lib/librumphijack/t_vfs:mv_x
lib/librumphijack/t_vfs:paxcopy
net/net/t_forwarding:ipforwarding_fastforward_v4
net/net/t_forwarding:ipforwarding_fastforward_v6
net/net/t_forwarding:ipforwarding_fragment_v4
net/net/t_forwarding:ipforwarding_misc
net/net/t_mtudisc6:mtudisc6_basic

This revert fixes the failures, except lib/librumphijack/t_vfs.

The original changes were added in order to facilitate a usage of
sanitizers against programs linked with NetBSD's libc. It is no longer
needed, so abandon these changes.

Sponsored by <The NetBSD Foundation>


# 1.195 07-Jan-2018 kamil

Revert asctime() namespacing

asctime() is optionally a cancellation point in the POSIX spec.
It's not true for NetBSD.

Requested by <joerg>


# 1.194 07-Jan-2018 kamil

Revert namespacing of atoi(3)

Sanitizers can handle recursive interceptions in some / most cases, if they
will cause damage the problem will be not workaroundable without libc
changes - I will be back to it.

Keep namespace of asctime() as this can be a cancellation point according
to POSIX. Right now it's not implemented on NetBSD. Defer it for later.

Keep weak symbols and namespace for wait6(2) as this could be a
cancellation point as well. Defer this for later.

Sanitizers's [recursive] interceptors are a hack and moving one way or
another can cause new sets of problems. Recursive ones can be useful and
cause problems (on Linux there are known with with signal handlers).

Sponsored by <The NetBSD Foundation>


# 1.193 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: atoi

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add atoi to namespace.h.

Register a new __weak_alias() entry for atoi() in atoi.c.

atoi() is used internally in getrpcent(), rresvport_af(), ftok(), err(),
__llvm_profile_write_file(), llvm_gcda_start_file(), citrus_iconv_open(),
getprotoent_r(), __rpc_uaddr2taddr_af(), __res_nopt_rdata() and
servent_parseline().

This revision switches the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.192 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: asctime

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add asctime to namespace.h.

Register a new __weak_alias() entry for asctime() in asctime.c.

acstime() is used internally in ctime and __ctime50. This revision switches
the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.191 05-Jan-2018 kamil

Register dl_iterate_phdr in the libc's namespace.h

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Stop using the public global name of dl_iterate_phdr in tls/tls.c:
__libc_static_tls_setup().

Follow the approach with other dlopen(3)-like functions with the
namespace.h in the dl_iterate_phdr() case. Use internally a weak symbol:
__dl_iterate_phdr instead of dl_iterate_phdr.

Sponsored by <The NetBSD Foundation>


# 1.190 05-Jan-2018 kamil

Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev

These syscalls are already marked as WEAKASM, generating weak references.

Sponsored by <The NetBSD Foundation>


# 1.189 30-Nov-2017 riastradh

Import SHA-3 code into libc and libkern.

No new public symbols in libc, but publishing the symbols is a simple
matter if/when we decide to do so.

Proposed on tech-kern and tech-userlevel with no objections:

https://mail-index.NetBSD.org/tech-kern/2017/11/11/msg022581.html
https://mail-index.NetBSD.org/tech-userlevel/2017/11/11/msg010968.html


# 1.188 22-Oct-2017 riastradh

xref libc/README


# 1.187 22-Oct-2017 christos

Add an explanation of how namespace.h works.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320
# 1.186 08-Feb-2017 maya

Make paccept a weak symbol in preparation for using it in another function


Revision tags: bouyer-socketcan-base
# 1.185 13-Jan-2017 christos

branches: 1.185.2;
allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.200 22-Sep-2020 nia

remove getentropy bits


# 1.199 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.


Revision tags: phil-wifi-20200421
# 1.198 18-Apr-2020 thorpej

Rename "syscall" to "_syscall" and provide "syscall" as a weak alias.


Revision tags: phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.197 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=


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.196 17-Jan-2018 kamil

branches: 1.196.4;
Revert to commits as they broke few rump tests

"Include namespace.h in a few of libc source files
[...]
This change finishes elimination of usage of the global name of the
following symbols:
- close -> _close
- execve -> _execve
- fcntl -> _fcntl
- setcontext -> _setcontext
- wait6 -> _wait6
- write -> _write
- writev -> _writev"

"Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev"

These changes broke:

fs/nfs/t_rquotad:get_nfs_be_1_both
fs/nfs/t_rquotad:get_nfs_be_1_group
fs/nfs/t_rquotad:get_nfs_be_1_user
fs/nfs/t_rquotad:get_nfs_le_1_both
fs/nfs/t_rquotad:get_nfs_le_1_group
fs/nfs/t_rquotad:get_nfs_le_1_user
lib/librumphijack/t_config:fdoff
lib/librumphijack/t_tcpip:http
lib/librumphijack/t_tcpip:nfs
lib/librumphijack/t_vfs:cpcopy
lib/librumphijack/t_vfs:mv_x
lib/librumphijack/t_vfs:paxcopy
net/net/t_forwarding:ipforwarding_fastforward_v4
net/net/t_forwarding:ipforwarding_fastforward_v6
net/net/t_forwarding:ipforwarding_fragment_v4
net/net/t_forwarding:ipforwarding_misc
net/net/t_mtudisc6:mtudisc6_basic

This revert fixes the failures, except lib/librumphijack/t_vfs.

The original changes were added in order to facilitate a usage of
sanitizers against programs linked with NetBSD's libc. It is no longer
needed, so abandon these changes.

Sponsored by <The NetBSD Foundation>


# 1.195 07-Jan-2018 kamil

Revert asctime() namespacing

asctime() is optionally a cancellation point in the POSIX spec.
It's not true for NetBSD.

Requested by <joerg>


# 1.194 07-Jan-2018 kamil

Revert namespacing of atoi(3)

Sanitizers can handle recursive interceptions in some / most cases, if they
will cause damage the problem will be not workaroundable without libc
changes - I will be back to it.

Keep namespace of asctime() as this can be a cancellation point according
to POSIX. Right now it's not implemented on NetBSD. Defer it for later.

Keep weak symbols and namespace for wait6(2) as this could be a
cancellation point as well. Defer this for later.

Sanitizers's [recursive] interceptors are a hack and moving one way or
another can cause new sets of problems. Recursive ones can be useful and
cause problems (on Linux there are known with with signal handlers).

Sponsored by <The NetBSD Foundation>


# 1.193 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: atoi

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add atoi to namespace.h.

Register a new __weak_alias() entry for atoi() in atoi.c.

atoi() is used internally in getrpcent(), rresvport_af(), ftok(), err(),
__llvm_profile_write_file(), llvm_gcda_start_file(), citrus_iconv_open(),
getprotoent_r(), __rpc_uaddr2taddr_af(), __res_nopt_rdata() and
servent_parseline().

This revision switches the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.192 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: asctime

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add asctime to namespace.h.

Register a new __weak_alias() entry for asctime() in asctime.c.

acstime() is used internally in ctime and __ctime50. This revision switches
the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.191 05-Jan-2018 kamil

Register dl_iterate_phdr in the libc's namespace.h

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Stop using the public global name of dl_iterate_phdr in tls/tls.c:
__libc_static_tls_setup().

Follow the approach with other dlopen(3)-like functions with the
namespace.h in the dl_iterate_phdr() case. Use internally a weak symbol:
__dl_iterate_phdr instead of dl_iterate_phdr.

Sponsored by <The NetBSD Foundation>


# 1.190 05-Jan-2018 kamil

Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev

These syscalls are already marked as WEAKASM, generating weak references.

Sponsored by <The NetBSD Foundation>


# 1.189 30-Nov-2017 riastradh

Import SHA-3 code into libc and libkern.

No new public symbols in libc, but publishing the symbols is a simple
matter if/when we decide to do so.

Proposed on tech-kern and tech-userlevel with no objections:

https://mail-index.NetBSD.org/tech-kern/2017/11/11/msg022581.html
https://mail-index.NetBSD.org/tech-userlevel/2017/11/11/msg010968.html


# 1.188 22-Oct-2017 riastradh

xref libc/README


# 1.187 22-Oct-2017 christos

Add an explanation of how namespace.h works.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320
# 1.186 08-Feb-2017 maya

Make paccept a weak symbol in preparation for using it in another function


Revision tags: bouyer-socketcan-base
# 1.185 13-Jan-2017 christos

branches: 1.185.2;
allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.199 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.


Revision tags: phil-wifi-20200421
# 1.198 18-Apr-2020 thorpej

Rename "syscall" to "_syscall" and provide "syscall" as a weak alias.


Revision tags: phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.197 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=


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.196 17-Jan-2018 kamil

branches: 1.196.4;
Revert to commits as they broke few rump tests

"Include namespace.h in a few of libc source files
[...]
This change finishes elimination of usage of the global name of the
following symbols:
- close -> _close
- execve -> _execve
- fcntl -> _fcntl
- setcontext -> _setcontext
- wait6 -> _wait6
- write -> _write
- writev -> _writev"

"Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev"

These changes broke:

fs/nfs/t_rquotad:get_nfs_be_1_both
fs/nfs/t_rquotad:get_nfs_be_1_group
fs/nfs/t_rquotad:get_nfs_be_1_user
fs/nfs/t_rquotad:get_nfs_le_1_both
fs/nfs/t_rquotad:get_nfs_le_1_group
fs/nfs/t_rquotad:get_nfs_le_1_user
lib/librumphijack/t_config:fdoff
lib/librumphijack/t_tcpip:http
lib/librumphijack/t_tcpip:nfs
lib/librumphijack/t_vfs:cpcopy
lib/librumphijack/t_vfs:mv_x
lib/librumphijack/t_vfs:paxcopy
net/net/t_forwarding:ipforwarding_fastforward_v4
net/net/t_forwarding:ipforwarding_fastforward_v6
net/net/t_forwarding:ipforwarding_fragment_v4
net/net/t_forwarding:ipforwarding_misc
net/net/t_mtudisc6:mtudisc6_basic

This revert fixes the failures, except lib/librumphijack/t_vfs.

The original changes were added in order to facilitate a usage of
sanitizers against programs linked with NetBSD's libc. It is no longer
needed, so abandon these changes.

Sponsored by <The NetBSD Foundation>


# 1.195 07-Jan-2018 kamil

Revert asctime() namespacing

asctime() is optionally a cancellation point in the POSIX spec.
It's not true for NetBSD.

Requested by <joerg>


# 1.194 07-Jan-2018 kamil

Revert namespacing of atoi(3)

Sanitizers can handle recursive interceptions in some / most cases, if they
will cause damage the problem will be not workaroundable without libc
changes - I will be back to it.

Keep namespace of asctime() as this can be a cancellation point according
to POSIX. Right now it's not implemented on NetBSD. Defer it for later.

Keep weak symbols and namespace for wait6(2) as this could be a
cancellation point as well. Defer this for later.

Sanitizers's [recursive] interceptors are a hack and moving one way or
another can cause new sets of problems. Recursive ones can be useful and
cause problems (on Linux there are known with with signal handlers).

Sponsored by <The NetBSD Foundation>


# 1.193 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: atoi

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add atoi to namespace.h.

Register a new __weak_alias() entry for atoi() in atoi.c.

atoi() is used internally in getrpcent(), rresvport_af(), ftok(), err(),
__llvm_profile_write_file(), llvm_gcda_start_file(), citrus_iconv_open(),
getprotoent_r(), __rpc_uaddr2taddr_af(), __res_nopt_rdata() and
servent_parseline().

This revision switches the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.192 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: asctime

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add asctime to namespace.h.

Register a new __weak_alias() entry for asctime() in asctime.c.

acstime() is used internally in ctime and __ctime50. This revision switches
the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.191 05-Jan-2018 kamil

Register dl_iterate_phdr in the libc's namespace.h

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Stop using the public global name of dl_iterate_phdr in tls/tls.c:
__libc_static_tls_setup().

Follow the approach with other dlopen(3)-like functions with the
namespace.h in the dl_iterate_phdr() case. Use internally a weak symbol:
__dl_iterate_phdr instead of dl_iterate_phdr.

Sponsored by <The NetBSD Foundation>


# 1.190 05-Jan-2018 kamil

Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev

These syscalls are already marked as WEAKASM, generating weak references.

Sponsored by <The NetBSD Foundation>


# 1.189 30-Nov-2017 riastradh

Import SHA-3 code into libc and libkern.

No new public symbols in libc, but publishing the symbols is a simple
matter if/when we decide to do so.

Proposed on tech-kern and tech-userlevel with no objections:

https://mail-index.NetBSD.org/tech-kern/2017/11/11/msg022581.html
https://mail-index.NetBSD.org/tech-userlevel/2017/11/11/msg010968.html


# 1.188 22-Oct-2017 riastradh

xref libc/README


# 1.187 22-Oct-2017 christos

Add an explanation of how namespace.h works.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320
# 1.186 08-Feb-2017 maya

Make paccept a weak symbol in preparation for using it in another function


Revision tags: bouyer-socketcan-base
# 1.185 13-Jan-2017 christos

branches: 1.185.2;
allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.198 18-Apr-2020 thorpej

Rename "syscall" to "_syscall" and provide "syscall" as a weak alias.


Revision tags: phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.197 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=


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.196 17-Jan-2018 kamil

branches: 1.196.4;
Revert to commits as they broke few rump tests

"Include namespace.h in a few of libc source files
[...]
This change finishes elimination of usage of the global name of the
following symbols:
- close -> _close
- execve -> _execve
- fcntl -> _fcntl
- setcontext -> _setcontext
- wait6 -> _wait6
- write -> _write
- writev -> _writev"

"Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev"

These changes broke:

fs/nfs/t_rquotad:get_nfs_be_1_both
fs/nfs/t_rquotad:get_nfs_be_1_group
fs/nfs/t_rquotad:get_nfs_be_1_user
fs/nfs/t_rquotad:get_nfs_le_1_both
fs/nfs/t_rquotad:get_nfs_le_1_group
fs/nfs/t_rquotad:get_nfs_le_1_user
lib/librumphijack/t_config:fdoff
lib/librumphijack/t_tcpip:http
lib/librumphijack/t_tcpip:nfs
lib/librumphijack/t_vfs:cpcopy
lib/librumphijack/t_vfs:mv_x
lib/librumphijack/t_vfs:paxcopy
net/net/t_forwarding:ipforwarding_fastforward_v4
net/net/t_forwarding:ipforwarding_fastforward_v6
net/net/t_forwarding:ipforwarding_fragment_v4
net/net/t_forwarding:ipforwarding_misc
net/net/t_mtudisc6:mtudisc6_basic

This revert fixes the failures, except lib/librumphijack/t_vfs.

The original changes were added in order to facilitate a usage of
sanitizers against programs linked with NetBSD's libc. It is no longer
needed, so abandon these changes.

Sponsored by <The NetBSD Foundation>


# 1.195 07-Jan-2018 kamil

Revert asctime() namespacing

asctime() is optionally a cancellation point in the POSIX spec.
It's not true for NetBSD.

Requested by <joerg>


# 1.194 07-Jan-2018 kamil

Revert namespacing of atoi(3)

Sanitizers can handle recursive interceptions in some / most cases, if they
will cause damage the problem will be not workaroundable without libc
changes - I will be back to it.

Keep namespace of asctime() as this can be a cancellation point according
to POSIX. Right now it's not implemented on NetBSD. Defer it for later.

Keep weak symbols and namespace for wait6(2) as this could be a
cancellation point as well. Defer this for later.

Sanitizers's [recursive] interceptors are a hack and moving one way or
another can cause new sets of problems. Recursive ones can be useful and
cause problems (on Linux there are known with with signal handlers).

Sponsored by <The NetBSD Foundation>


# 1.193 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: atoi

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add atoi to namespace.h.

Register a new __weak_alias() entry for atoi() in atoi.c.

atoi() is used internally in getrpcent(), rresvport_af(), ftok(), err(),
__llvm_profile_write_file(), llvm_gcda_start_file(), citrus_iconv_open(),
getprotoent_r(), __rpc_uaddr2taddr_af(), __res_nopt_rdata() and
servent_parseline().

This revision switches the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.192 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: asctime

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add asctime to namespace.h.

Register a new __weak_alias() entry for asctime() in asctime.c.

acstime() is used internally in ctime and __ctime50. This revision switches
the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.191 05-Jan-2018 kamil

Register dl_iterate_phdr in the libc's namespace.h

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Stop using the public global name of dl_iterate_phdr in tls/tls.c:
__libc_static_tls_setup().

Follow the approach with other dlopen(3)-like functions with the
namespace.h in the dl_iterate_phdr() case. Use internally a weak symbol:
__dl_iterate_phdr instead of dl_iterate_phdr.

Sponsored by <The NetBSD Foundation>


# 1.190 05-Jan-2018 kamil

Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev

These syscalls are already marked as WEAKASM, generating weak references.

Sponsored by <The NetBSD Foundation>


# 1.189 30-Nov-2017 riastradh

Import SHA-3 code into libc and libkern.

No new public symbols in libc, but publishing the symbols is a simple
matter if/when we decide to do so.

Proposed on tech-kern and tech-userlevel with no objections:

https://mail-index.NetBSD.org/tech-kern/2017/11/11/msg022581.html
https://mail-index.NetBSD.org/tech-userlevel/2017/11/11/msg010968.html


# 1.188 22-Oct-2017 riastradh

xref libc/README


# 1.187 22-Oct-2017 christos

Add an explanation of how namespace.h works.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320
# 1.186 08-Feb-2017 maya

Make paccept a weak symbol in preparation for using it in another function


Revision tags: bouyer-socketcan-base
# 1.185 13-Jan-2017 christos

branches: 1.185.2;
allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.197 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=


Revision tags: netbsd-9-base phil-wifi-20190609 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.196 17-Jan-2018 kamil

Revert to commits as they broke few rump tests

"Include namespace.h in a few of libc source files
[...]
This change finishes elimination of usage of the global name of the
following symbols:
- close -> _close
- execve -> _execve
- fcntl -> _fcntl
- setcontext -> _setcontext
- wait6 -> _wait6
- write -> _write
- writev -> _writev"

"Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev"

These changes broke:

fs/nfs/t_rquotad:get_nfs_be_1_both
fs/nfs/t_rquotad:get_nfs_be_1_group
fs/nfs/t_rquotad:get_nfs_be_1_user
fs/nfs/t_rquotad:get_nfs_le_1_both
fs/nfs/t_rquotad:get_nfs_le_1_group
fs/nfs/t_rquotad:get_nfs_le_1_user
lib/librumphijack/t_config:fdoff
lib/librumphijack/t_tcpip:http
lib/librumphijack/t_tcpip:nfs
lib/librumphijack/t_vfs:cpcopy
lib/librumphijack/t_vfs:mv_x
lib/librumphijack/t_vfs:paxcopy
net/net/t_forwarding:ipforwarding_fastforward_v4
net/net/t_forwarding:ipforwarding_fastforward_v6
net/net/t_forwarding:ipforwarding_fragment_v4
net/net/t_forwarding:ipforwarding_misc
net/net/t_mtudisc6:mtudisc6_basic

This revert fixes the failures, except lib/librumphijack/t_vfs.

The original changes were added in order to facilitate a usage of
sanitizers against programs linked with NetBSD's libc. It is no longer
needed, so abandon these changes.

Sponsored by <The NetBSD Foundation>


# 1.195 07-Jan-2018 kamil

Revert asctime() namespacing

asctime() is optionally a cancellation point in the POSIX spec.
It's not true for NetBSD.

Requested by <joerg>


# 1.194 07-Jan-2018 kamil

Revert namespacing of atoi(3)

Sanitizers can handle recursive interceptions in some / most cases, if they
will cause damage the problem will be not workaroundable without libc
changes - I will be back to it.

Keep namespace of asctime() as this can be a cancellation point according
to POSIX. Right now it's not implemented on NetBSD. Defer it for later.

Keep weak symbols and namespace for wait6(2) as this could be a
cancellation point as well. Defer this for later.

Sanitizers's [recursive] interceptors are a hack and moving one way or
another can cause new sets of problems. Recursive ones can be useful and
cause problems (on Linux there are known with with signal handlers).

Sponsored by <The NetBSD Foundation>


# 1.193 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: atoi

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add atoi to namespace.h.

Register a new __weak_alias() entry for atoi() in atoi.c.

atoi() is used internally in getrpcent(), rresvport_af(), ftok(), err(),
__llvm_profile_write_file(), llvm_gcda_start_file(), citrus_iconv_open(),
getprotoent_r(), __rpc_uaddr2taddr_af(), __res_nopt_rdata() and
servent_parseline().

This revision switches the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.192 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: asctime

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add asctime to namespace.h.

Register a new __weak_alias() entry for asctime() in asctime.c.

acstime() is used internally in ctime and __ctime50. This revision switches
the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.191 05-Jan-2018 kamil

Register dl_iterate_phdr in the libc's namespace.h

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Stop using the public global name of dl_iterate_phdr in tls/tls.c:
__libc_static_tls_setup().

Follow the approach with other dlopen(3)-like functions with the
namespace.h in the dl_iterate_phdr() case. Use internally a weak symbol:
__dl_iterate_phdr instead of dl_iterate_phdr.

Sponsored by <The NetBSD Foundation>


# 1.190 05-Jan-2018 kamil

Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev

These syscalls are already marked as WEAKASM, generating weak references.

Sponsored by <The NetBSD Foundation>


# 1.189 30-Nov-2017 riastradh

Import SHA-3 code into libc and libkern.

No new public symbols in libc, but publishing the symbols is a simple
matter if/when we decide to do so.

Proposed on tech-kern and tech-userlevel with no objections:

https://mail-index.NetBSD.org/tech-kern/2017/11/11/msg022581.html
https://mail-index.NetBSD.org/tech-userlevel/2017/11/11/msg010968.html


# 1.188 22-Oct-2017 riastradh

xref libc/README


# 1.187 22-Oct-2017 christos

Add an explanation of how namespace.h works.


Revision tags: netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320
# 1.186 08-Feb-2017 maya

Make paccept a weak symbol in preparation for using it in another function


Revision tags: bouyer-socketcan-base
# 1.185 13-Jan-2017 christos

branches: 1.185.2;
allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.196 17-Jan-2018 kamil

Revert to commits as they broke few rump tests

"Include namespace.h in a few of libc source files
[...]
This change finishes elimination of usage of the global name of the
following symbols:
- close -> _close
- execve -> _execve
- fcntl -> _fcntl
- setcontext -> _setcontext
- wait6 -> _wait6
- write -> _write
- writev -> _writev"

"Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev"

These changes broke:

fs/nfs/t_rquotad:get_nfs_be_1_both
fs/nfs/t_rquotad:get_nfs_be_1_group
fs/nfs/t_rquotad:get_nfs_be_1_user
fs/nfs/t_rquotad:get_nfs_le_1_both
fs/nfs/t_rquotad:get_nfs_le_1_group
fs/nfs/t_rquotad:get_nfs_le_1_user
lib/librumphijack/t_config:fdoff
lib/librumphijack/t_tcpip:http
lib/librumphijack/t_tcpip:nfs
lib/librumphijack/t_vfs:cpcopy
lib/librumphijack/t_vfs:mv_x
lib/librumphijack/t_vfs:paxcopy
net/net/t_forwarding:ipforwarding_fastforward_v4
net/net/t_forwarding:ipforwarding_fastforward_v6
net/net/t_forwarding:ipforwarding_fragment_v4
net/net/t_forwarding:ipforwarding_misc
net/net/t_mtudisc6:mtudisc6_basic

This revert fixes the failures, except lib/librumphijack/t_vfs.

The original changes were added in order to facilitate a usage of
sanitizers against programs linked with NetBSD's libc. It is no longer
needed, so abandon these changes.

Sponsored by <The NetBSD Foundation>


# 1.195 07-Jan-2018 kamil

Revert asctime() namespacing

asctime() is optionally a cancellation point in the POSIX spec.
It's not true for NetBSD.

Requested by <joerg>


# 1.194 07-Jan-2018 kamil

Revert namespacing of atoi(3)

Sanitizers can handle recursive interceptions in some / most cases, if they
will cause damage the problem will be not workaroundable without libc
changes - I will be back to it.

Keep namespace of asctime() as this can be a cancellation point according
to POSIX. Right now it's not implemented on NetBSD. Defer it for later.

Keep weak symbols and namespace for wait6(2) as this could be a
cancellation point as well. Defer this for later.

Sanitizers's [recursive] interceptors are a hack and moving one way or
another can cause new sets of problems. Recursive ones can be useful and
cause problems (on Linux there are known with with signal handlers).

Sponsored by <The NetBSD Foundation>


# 1.193 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: atoi

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add atoi to namespace.h.

Register a new __weak_alias() entry for atoi() in atoi.c.

atoi() is used internally in getrpcent(), rresvport_af(), ftok(), err(),
__llvm_profile_write_file(), llvm_gcda_start_file(), citrus_iconv_open(),
getprotoent_r(), __rpc_uaddr2taddr_af(), __res_nopt_rdata() and
servent_parseline().

This revision switches the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.192 05-Jan-2018 kamil

Register new weak symbol in libc for internal usage: asctime

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Add asctime to namespace.h.

Register a new __weak_alias() entry for asctime() in asctime.c.

acstime() is used internally in ctime and __ctime50. This revision switches
the internal usage to the internal symbol.

Sponsored by <The NetBSD Foundation>


# 1.191 05-Jan-2018 kamil

Register dl_iterate_phdr in the libc's namespace.h

The NetBSD Standard C Library uses internally some of its functions with
a mangled symbol name, usually "_symbol". The internal functions shall not
use the global (public) symbols.

Stop using the public global name of dl_iterate_phdr in tls/tls.c:
__libc_static_tls_setup().

Follow the approach with other dlopen(3)-like functions with the
namespace.h in the dl_iterate_phdr() case. Use internally a weak symbol:
__dl_iterate_phdr instead of dl_iterate_phdr.

Sponsored by <The NetBSD Foundation>


# 1.190 05-Jan-2018 kamil

Register more syscalls in namespace.h (of libc)

Add weak symbols for:
- fcntl
- close
- execve
- setcontext
- wait6
- write
- writev

These syscalls are already marked as WEAKASM, generating weak references.

Sponsored by <The NetBSD Foundation>


# 1.189 30-Nov-2017 riastradh

Import SHA-3 code into libc and libkern.

No new public symbols in libc, but publishing the symbols is a simple
matter if/when we decide to do so.

Proposed on tech-kern and tech-userlevel with no objections:

https://mail-index.NetBSD.org/tech-kern/2017/11/11/msg022581.html
https://mail-index.NetBSD.org/tech-userlevel/2017/11/11/msg010968.html


# 1.188 22-Oct-2017 riastradh

xref libc/README


# 1.187 22-Oct-2017 christos

Add an explanation of how namespace.h works.


Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320
# 1.186 08-Feb-2017 maya

Make paccept a weak symbol in preparation for using it in another function


Revision tags: bouyer-socketcan-base
# 1.185 13-Jan-2017 christos

branches: 1.185.2;
allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.188 22-Oct-2017 riastradh

xref libc/README


# 1.187 22-Oct-2017 christos

Add an explanation of how namespace.h works.


Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320
# 1.186 08-Feb-2017 maya

Make paccept a weak symbol in preparation for using it in another function


Revision tags: bouyer-socketcan-base
# 1.185 13-Jan-2017 christos

branches: 1.185.2;
allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.186 08-Feb-2017 maya

Make paccept a weak symbol in preparation for using it in another function


Revision tags: bouyer-socketcan-base
# 1.185 13-Jan-2017 christos

allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.185 13-Jan-2017 christos

allow overriding snprintf/vsnprintf


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


# 1.184 12-Jan-2017 christos

undo SSP damage from -Wsystem-headers


# 1.183 12-Jan-2017 christos

Add strerror_ss_r to be used by syslog_ss


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.


Revision tags: pgoyette-localcount-20161104
# 1.182 24-Sep-2016 christos

remove mpool_getf


# 1.181 24-Sep-2016 christos

bump for the flags version of db routines


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.180 03-Apr-2016 christos

branches: 1.180.2;
userland bits for wait6/waitid.


# 1.179 10-Sep-2015 christos

namespace protect allocaddrinfo


# 1.178 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.177 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.176 26-Sep-2014 christos

add execvpe, execlpe (reviewed by phone)


# 1.175 25-Sep-2014 manu

Fix argument paddiing for posix_fallocate and fdiscard with gcc 1.x


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.174 13-Jun-2014 joerg

branches: 1.174.2;
Add asysctl(3) and asysctlbyname(3) wrappers for the common idiom of
fetching dynamically sized data via sysctl.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.173 16-Jan-2014 christos

branches: 1.173.2;
remove dups


# 1.172 16-Jan-2014 christos

namespace protection for the new err functions


# 1.171 16-Jan-2014 joerg

Fix (v)errc/(v)warnc.


# 1.170 05-Dec-2013 joerg

Add cdbr_open_mem.


# 1.169 28-Aug-2013 riastradh

Publish explicit_memset and consttime_memequal in userland libc.

Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.

As discussed on tech-userlevel:

https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)


# 1.168 19-Aug-2013 joerg

Add strerror_l.


# 1.167 19-Aug-2013 joerg

Add nl_langinfo_l, catopen_l and wcsftime_l.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.166 30-Apr-2013 joerg

Make that to process PATH_LOCALE the first time _find_category is
called. Use this to implement newlocale and provide duplocale/freelocale
as well. Based on patches by Takehiko Nozaki with simplications and fix
for the init order by myself.


# 1.165 21-Apr-2013 joerg

Store time-specific locale data directly in the locale.
Ad dstrftime_l, strftime_lz and strptime_l.


# 1.164 19-Apr-2013 joerg

Add scanf_l and wscanf_l families.


# 1.163 19-Apr-2013 joerg

Add dummy strcoll_l and strxfrm_l.


# 1.162 19-Apr-2013 joerg

Add explicit locale versions for the printf family. Replace asprintf,
snprintf and sprintf with simple wrappers around the corresponding
va_list functions to reduce code duplication.


# 1.161 18-Apr-2013 joerg

Add wcscoll_l, wcsxfrm_l, wcsncasecmp_l, wcscasecmp_l, btowc_l,
mbrlen_l, mbsinit_l, mbsrtowcs_l, wcrtomb_l, wcsrtombs_l and wctob_l.


# 1.160 18-Apr-2013 joerg

Add wcstof_l, wcstod_l and wcstold_l.


# 1.159 18-Apr-2013 joerg

Add strtof_l, strtod_l and strtold_l.


# 1.158 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.157 16-Apr-2013 joerg

Add wcwidth_l, wcswidth_l and the wctype.h family of *_l functions.


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.156 20-Aug-2012 dsl

branches: 1.156.2;
I'm fairly sure the libc rules require that arc4random_addrandom,
arc4random_buf, arc4random_stir and arc4random_uniform be weak.


# 1.155 09-Jul-2012 rmind

Add weak symbol for murmurhash2.


# 1.154 03-Jun-2012 joerg

Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.153 12-Apr-2012 christos

name protection for getpassfd


# 1.152 12-Apr-2012 christos

Add a new getpass implementation that does not mess with signals, and
include getpass_r


# 1.151 02-Mar-2012 christos

PR/46111: Wolfgang Stukenbrock: Add yp_setbindtries(3) so that yp operations
don't hang forever if requested.


Revision tags: netbsd-6-base
# 1.150 15-Feb-2012 joerg

branches: 1.150.2;
Make sure that membar_producer gets the proper namespace mangling for libc.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.149 04-Jul-2011 manu

branches: 1.149.2;
Import xdr_sizeof() from FreeBSD


Revision tags: cherry-xenmp-base
# 1.148 26-Mar-2011 christos

add fpgetprec/fpsetprec


# 1.147 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.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.146 16-Dec-2010 christos

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.145 17-Nov-2010 tron

Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.


# 1.144 13-Nov-2010 christos

forgot to commit this one for two months!
add vdprintf.


# 1.143 06-Sep-2010 jakllsch

New vdprintf needs "namespace protection".


# 1.142 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.141 19-Mar-2010 joerg

Namespace protection for mi_vector_hash.


Revision tags: matt-premerge-20091211
# 1.140 02-Dec-2009 roy

Protect getline.


# 1.139 01-Dec-2009 roy

Protect getdelim when used internally.


# 1.138 26-May-2009 joerg

Add SHA224 implementation to libc.
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.137 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base
# 1.136 05-Dec-2008 ad

Add fdopendir(), from Solaris/Linux.


# 1.135 20-Nov-2008 matt

Add new ptree (Patricia / RADIX tree) implementation to NetBSD.


# 1.134 31-Oct-2008 christos

branches: 1.134.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections


Revision tags: netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.133 04-Aug-2008 matt

branches: 1.133.4; 1.133.6;
Add C99 functions imaxabs and imaxdiv.


# 1.132 25-Jun-2008 ad

Add getlogin_r. Manual page changes mostly lifted from FreeBSD.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
# 1.131 28-Apr-2008 martin

branches: 1.131.2;
Remove clause 3 and 4 from TNF licenses


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.130 02-Feb-2008 christos

branches: 1.130.4;
namespace protection for csetexpandtc()


Revision tags: matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base
# 1.129 03-Jun-2007 christos

branches: 1.129.4;
- add read and readlink since they are used internally
- protect vsnprintf and vsnprintf since for lex(1) generated files <stdio.h>
is included before "namespace.h".


# 1.128 10-May-2007 he

The sl_delete function needs namespace protection added here as well.


# 1.127 18-Feb-2007 christos

SHA512_Last is not public anymore.


# 1.126 17-Feb-2007 christos

Define for SHA512_Last.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.125 08-Nov-2006 drochner

branches: 1.125.2; 1.125.6;
cleanup unused stuff after hmac_* removal


# 1.124 03-Nov-2006 christos

protect the *syslog_ss


# 1.123 28-Oct-2006 christos

add {v,}snprintf_ss


# 1.122 25-Oct-2006 christos

add _r functions for syslog from OpenBSD


# 1.121 24-Aug-2006 mrg

remove duplicates added in previous commit.


# 1.120 23-Aug-2006 christos

I think we want both wcs{c,n}casecmp weak.


# 1.119 23-Aug-2006 mrg

add wcsdup, wcscasecmp and wcsncasecmp. fixes build problems..


# 1.118 12-Aug-2006 christos

- Add strndup and stresep
- Use stresep so in fstab so that we can mount paths with white space in them.


Revision tags: abandoned-netbsd-4-base
# 1.117 23-Jun-2006 christos

branches: 1.117.2;
Make these weak as Matthias Drochner pointed out.


# 1.116 05-May-2006 rpaulo

Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292).
* RFC 3542 isn't binary compatible with RFC 2292.
* RFC 2292 support is on by default but can be disabled.
* update ping6, telnet and traceroute6 to the new API.

From the KAME project (www.kame.net).
Reviewed by core.


# 1.115 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.114 16-Apr-2006 christos

namespace protect wcstod too, and fix the protection in wcstold and wcstof.


# 1.113 15-Apr-2006 tnozaki

wcstod(3) is conform to ISO C90 Ammendant1 (FreeBSD's manpage is incorrect...).
don't __weak_alias'ize it and fix manpage.


# 1.112 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.111 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.110 26-Jan-2006 kleink

Need to give the various rpc locks private names (prefixing them with
__rpc_). Rather than scattering changes around the 3rd-party RPC
code, place them in namespace.h.


# 1.109 26-Sep-2005 christos

the sha2 functions have an _.


# 1.108 25-Sep-2005 elad

Fix weak aliasing after recent changes.

Inspired by comments from christos@, xtraeme@, mlelstv@, mhitch@, mrg@,
and uwe@; all the bugs are mine.


# 1.107 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.106 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.105 07-Aug-2005 christos

add missing in6addr_linklocal_allrouters.


# 1.104 30-Jul-2005 christos

- Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror


# 1.103 17-Jul-2005 christos

Add comments at the end of #endif's; Requested by Havard Eidnes.


# 1.102 16-Jul-2005 christos

don't play #define games with lint. Breaks pass2.


# 1.101 15-May-2005 yamt

add fgetwln.


# 1.100 07-Apr-2005 christos

statvfs is both a function name and a struct tag. Defining it to _statvfs
causes lint to complain because it sees both struct statvfs and struct
_statvfs. Fix by changing the macro to have arguments.
XXX[1]: Probably this should be done for the rest of the functions that have
the same names as struct tags.
XXX[2]: Is there a better way?


# 1.99 02-Apr-2005 christos

PR/29849, PR/29850: Add getpwent_r and getgrent_r


Revision tags: netbsd-3-base
# 1.98 09-Feb-2005 kleink

branches: 1.98.2;
A little libc namespace housekeeping exercise:
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.


# 1.97 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.96 16-Dec-2004 kleink

Internally rename getdevmajor(); noted by Geoff Wing.


# 1.95 05-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.


# 1.94 04-Oct-2004 lukem

crank copyright


# 1.93 04-Oct-2004 lukem

Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getgrent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETGR_R_SIZE_MAX to sysconf(3).


# 1.92 17-Aug-2004 ginsbach

namespace protection for gethostent()


# 1.91 02-Jun-2004 christos

delete duplicate namespace protection.


# 1.90 21-May-2004 christos

namespace protection for resolver routines.


# 1.89 10-May-2004 drochner

After discussion with christos, turn fgetstr() into an internal function.
Its API in inherently non-threadsafe (and it depends on certain properties
of the underlying stdio implementation), so it shouldn't be a first-class
function for general use, polluting the application namespace.
Also remove the FLOCKFILE() code from it - this is under control of the
calling function now.
(XXX I'm not sure whether the FLOCKFILE() should be kept in fgetln(),
this function cannot be used in multiple threads anyway. It doesn't
hurt much, and it might prevent corruption of internal FILE structures.)


# 1.88 09-May-2004 kleink

We now need an internal name for fileno(), since when buildling libc
_REENTRANT we can no longer use the macro version from <stdio.h>.


# 1.87 27-Apr-2004 kleink

Remove internal names for dbm_*(3); these are not required at this time.


# 1.86 21-Apr-2004 christos

protect fgetstr


# 1.85 08-Apr-2004 atatat

Weak aliases for sysctlfoobar() functions.


Revision tags: netbsd-2-0-base
# 1.84 04-Mar-2004 kleink

branches: 1.84.2;
* 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.83 19-Feb-2004 christos

_r functions for services and protocols; also add the inet_cidr_* function
which will come next.


# 1.82 18-Sep-2003 jdolecek

remove pw_dup()


# 1.81 13-Sep-2003 itojun

weak alias for pw_dup


# 1.80 13-Sep-2003 itojun

use internal names for randomid()


# 1.79 27-Jun-2003 tshiozak

Citrus iconv support(4)
add iconv external I/F (iconv.h - iconv_open()/iconv()/iconv_close()) and
iconv(1) utility.
TODO:
- bump libc minor.
- add iconv data files.
- create manpages: iconv_open(3)/iconv(3)/iconv_close(3)/iconv(1)/
mkesdb(1)/mkcsmapper(1).


# 1.78 28-May-2003 christos

add readdir_r alias


# 1.77 17-May-2003 thorpej

Add isinfl() and isnanl().


# 1.76 13-Feb-2003 nathanw

Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).


# 1.75 18-Jan-2003 thorpej

Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.74 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.73 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.72 08-Nov-2002 fvdl

Add rpc_control.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.71 17-Apr-2002 kleink

branches: 1.71.2;
Need internal names for strlcat() and strlcpy().


# 1.70 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.69 14-Jan-2002 thorpej

* Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).


# 1.68 13-Jan-2002 thorpej

Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.


# 1.67 19-Sep-2001 aymeric

move adjtime and clock_settime where they belong, now that they are C functions.
Apart from being TRT, this makes a.out builds work again.


# 1.66 16-Sep-2001 manu

Added support to use the clockctl driver if present for adjtime(),
clock_settime(), ntp_adjtime() and settimeofday(). The super-user still
always use the plain system call.
Approved by Christos


# 1.65 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.64 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.63 13-Apr-2001 kleink

Need an internal name for asprintf(3).


# 1.62 31-Mar-2001 kleink

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.61 19-Mar-2001 atatat

Add md2 routines to libc.


# 1.60 19-Feb-2001 cgd

branches: 1.60.2;
define getprogname to _getprogname for internal use


# 1.59 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.58 28-Sep-2000 kleink

Need an internal name for pipe(2).


# 1.57 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.56 05-Jul-2000 kleink

Lexicographically sort in previous.


# 1.55 05-Jul-2000 ad

Pull in RIPEMD-160 functions from OpenBSD - this has the same API as our MD4,
MD5 and SHA1 stuff.


# 1.54 26-Jun-2000 kleink

Need an internal name for fork().


# 1.53 23-Jun-2000 kleink

Add internal names for brk() and sbrk().


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.52 02-Jun-2000 fvdl

branches: 1.52.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.


Revision tags: minoura-xpg4dl-base
# 1.51 08-May-2000 kleink

branches: 1.51.2;
Need an internal name for send(); noticed by itojun.


# 1.50 24-Apr-2000 itojun

use BSDI-origin if_{index,name}* functions. they use getifaddrs(3) as
backend and are more robust against SIOCGIFCONF alignment issue.
now getifaddrs always takes care of the issue. (sync with kame tree)
use weak symbol just in case.


# 1.49 24-Apr-2000 itojun

supply weak alias for IPv6-related library additions. sorry to be late.


# 1.48 02-Apr-2000 christos

protect getopt_long.


# 1.47 02-Apr-2000 minoura

Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


# 1.44 23-Jan-2000 mycroft

Ditto for nlist().


# 1.43 22-Jan-2000 mycroft

Don't do the namespace hack for timezone() here; it causes lint, and we don't
need it anyway.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.42 01-Dec-1999 thorpej

Implement XDR routines for 64-bit integer data types:
- xdr_int64_t(), xdr_u_int64_t(), per NetBSD convention.
- xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), xdr_u_longlong_t(), a'la
Solaris, implemented in terms of the above.


# 1.41 25-Nov-1999 wennmach

Added #defines for svis, strsvis, strsvisx


Revision tags: comdex-fall-1999-base
# 1.40 20-Sep-1999 kleink

branches: 1.40.4;
Need internal names for these, too.


# 1.39 15-Sep-1999 kleink

Add indirect reference stubs for inet_[ap]ton() for environments not supporting
weak aliases; addresses PR lib/7435 but leaves the original file intact.


# 1.38 17-Aug-1999 mycroft

getsubopt(3) has a weak alias.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.37 09-Mar-1999 kleink

Functionally back out namespace.h revision 1.7 and perror.c revision 1.15;
perror() is an identifier reserved by ANSI/ISO C, and in case of a redefition
the behavior is undefined.


# 1.36 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.35 04-Feb-1999 explorer

add sha1 functions, like md5/4


# 1.34 25-Jan-1999 lukem

namespace protect hesiod stuff


# 1.33 20-Jan-1999 lukem

protect nsdispatch. sort entries


# 1.32 30-Nov-1998 thorpej

Need an internal name for the (new) sys_nsig.


# 1.31 20-Oct-1998 kleink

Need internal names for MD[45]{Init,Final,Update}().


# 1.30 18-Oct-1998 kleink

Replace use of getdtablesize() with (the non-deprecated) sysconf(), hence no
need for an internal name for the former any more; suggested by Matthew Green.


# 1.29 16-Oct-1998 kleink

getsubopt() isn't used internally.


# 1.28 16-Oct-1998 kleink

Need an internal name for herror().


# 1.27 16-Oct-1998 kleink

Need an internal name for tzname.


# 1.26 16-Oct-1998 kleink

Need an internal name for signal().


# 1.25 16-Oct-1998 kleink

Need an internal name for fgetln().


# 1.24 15-Oct-1998 kleink

Need an internal name for dn_expand().


# 1.23 14-Oct-1998 kleink

Need internal names for {end,set}hostent().


# 1.22 14-Oct-1998 kleink

Need internal names for res_init(), res_mkquery(), res_query() and res_search().


# 1.21 14-Oct-1998 kleink

Need internal names for ftruncate(), lseek(), mmap(), pread() and pwrite().


# 1.20 13-Oct-1998 kleink

Need an internal name for inet_aton().


# 1.19 13-Oct-1998 kleink

Need internal names for gethostby{addr,name}().


# 1.18 13-Oct-1998 kleink

Need an internal name for getdomainname().


# 1.17 13-Oct-1998 kleink

Need an internal name for strsep().


# 1.16 13-Oct-1998 kleink

Need an internal name for strdup().


# 1.15 13-Oct-1998 kleink

Need an internal name for isatty().


# 1.14 13-Oct-1998 kleink

Need internal names for isinf() and isnan().


# 1.13 13-Oct-1998 kleink

Need internal names for snprintf() and vsnprintf().


# 1.12 13-Oct-1998 kleink

Need an internal name for fdopen().


# 1.11 08-Oct-1998 kleink

Add an internal name for getdtablesize(), since it's being used internally.


# 1.10 27-Sep-1998 kleink

Add missing renaming of tcgetsid().


# 1.9 27-Sep-1998 kleink

Add an internal name for strtok_r().


# 1.8 10-Sep-1998 kleink

Add asctime_r(), ctime_r(), gmtime_r() and localtime_r().


# 1.7 28-Jul-1998 mycroft

Add an internal name for perror(3).


# 1.6 20-Dec-1997 kleink

Add lockf(), an alternate interface to perform advisory record locking;
per XPG4.2.


# 1.5 02-Nov-1997 kleink

Add basename() and dirname(), from XPG4.2.


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.4 21-Jul-1997 jtc

Put TNF copyright on this file


# 1.3 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>.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.2 27-Feb-1995 cgd

branches: 1.2.4;
clean up Id


# 1.1 09-Feb-1995 jtc

branches: 1.1.2;
Initial set of ANSI clean namespace mappings.