freebsd-nq/lib
Brian Feldman 33dee81933 Make the resolver(3) and many associated interfaces much more reentrant.
The getaddrinfo(3), getipnodebyname(3) and resolver(3) can coincide now
with what should be totally reentrant, and h_errno values will now
be preserved correctly, but this does not affect interfaces such as
gethostbyname(3) which are still mostly non-reentrant.

In all of these relevant functions, the thread-safety has been pushed
down as far as it seems possible right now.  This means that operations
that are selected via nsdispatch(3) (i.e. files, yp, dns) are protected
still under global locks that getaddrinfo(3) defines, but where possible
the locking is greatly reduced.  The most noticeable improvement is
that multiple DNS lookups can now be run at the same time, and this
shows major improvement in performance of DNS-lookup threaded programs,
and solves the "Mozilla tab serialization" problem.

No single-threaded applications need to be recompiled.  Multi-threaded
applications that reference "_res" to change resolver(3) options will
need to be recompiled, and ones which reference "h_errno" will also
if they desire the correct h_errno values.  If the applications already
understood that _res and h_errno were not thread-safe and had their own
locking, they will see no performance improvement but will not
actually break in any way.

Please note that when NSS modules are used, or when nsdispatch(3)
defaults to adding any lookups of its own to the individual libc
_nsdispatch() calls, those MUST be reentrant as well.
2004-02-25 21:03:46 +00:00
..
compat Update with the 4.9 pam modules, and add pam_opieaccess.so to the mix. 2003-12-07 03:02:27 +00:00
csu The <bsd.files.mk> API seems the best to use here. 2004-01-20 13:31:35 +00:00
libalias Mostly mechanical rework of libalias: 2004-01-17 10:52:21 +00:00
libarchive sys/types.h must be included before sys/acl.h, 2004-02-12 20:35:59 +00:00
libatm Fix a couple of potential buffer overflows. 2004-02-21 16:29:10 +00:00
libbind
libbluetooth Update Bluetooth code. 2003-10-12 22:04:24 +00:00
libbsnmp Rename the MIBS makefile variable to BMIBS so that it does not conflict 2004-01-24 20:12:30 +00:00
libbz2 Remove MAINTAINER lines. 2003-06-14 19:32:52 +00:00
libc Make the resolver(3) and many associated interfaces much more reentrant. 2004-02-25 21:03:46 +00:00
libc_r style cleanup: Remove duplicate $FreeBSD$ tags. 2004-02-10 20:45:28 +00:00
libcalendar mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
libcam Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libcom_err
libcompat mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
libcrypt Stage 3 of dynamic root support. Make all the libraries needed to run 2003-08-17 08:28:46 +00:00
libdevinfo mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
libdevstat Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libdisk style.Makefile: 2004-02-23 20:07:47 +00:00
libedit mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
libexpat Stage 3 of dynamic root support. Make all the libraries needed to run 2003-08-17 08:28:46 +00:00
libfetch Slight tweak to previous commit: don't forget to call _http_seterr() if 2004-02-11 09:35:27 +00:00
libform Use 2003-06-06 13:46:55 +00:00
libftpio The .Fn function 2003-06-08 10:34:00 +00:00
libgeom style.Makefile(5) 2003-08-18 15:25:39 +00:00
libio Remove now redundant and now conflicting declaration of sysarch(2). 2004-01-10 18:37:11 +00:00
libipsec Initial import of RFC 2385 (TCP-MD5) digest support. 2004-02-11 04:34:34 +00:00
libipx style.Makefile(5) 2003-08-18 15:25:39 +00:00
libisc Fix the #include part of the SYNOPSIS for heap.3 2003-06-17 08:43:19 +00:00
libkiconv Make msdosfs long filenames matching case insensitive again. 2003-12-08 08:32:20 +00:00
libkse style cleanup: Remove duplicate $FreeBSD$ tags. 2004-02-10 20:42:33 +00:00
libkvm Update man page to reflect additional flag to allow selection of threads. 2004-02-22 18:12:56 +00:00
libmd Assorted mdoc(7) fixes: 2003-10-09 23:06:06 +00:00
libmenu Use 2003-06-06 13:46:55 +00:00
libmilter Remove MAINTAINER= lines from individual Makefiles in favor of the 2003-07-07 03:54:04 +00:00
libmp Add a reference to bn(3) for those looking for functional multiprecision 2003-08-30 05:35:46 +00:00
libncp Fix for 64 bit platforms. sysctl's length args are pointers to 2003-07-25 19:17:46 +00:00
libncurses Unbreak the NOINSTALLLIB install. 2003-08-30 13:57:31 +00:00
libnetgraph Increment WARNS. 2004-01-28 00:11:42 +00:00
libngatm style.Makefile: 2004-02-23 20:07:47 +00:00
libopie Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libpam style cleanup: Remove duplicate $FreeBSD$ tags. 2004-02-10 20:42:33 +00:00
libpanel Use 2003-06-06 13:46:55 +00:00
libpcap * Modify libpcap to work a bit better with our 802.11 code. This means 2003-11-04 06:12:21 +00:00
libpthread style cleanup: Remove duplicate $FreeBSD$ tags. 2004-02-10 20:45:28 +00:00
libpthread_dbg Add missing file. 2004-02-04 06:32:45 +00:00
libradius Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
librpcsvc clnt_call takes args of type xdrproc_t. 2003-10-26 03:43:35 +00:00
libsbuf style.Makefile(5) 2003-08-18 15:25:39 +00:00
libsdp Cleanup CFLAGS in libsdp(3) Makefile 2004-01-25 21:33:59 +00:00
libsm Remove MAINTAINER= lines from individual Makefiles in favor of the 2003-07-07 03:54:04 +00:00
libsmb Zap now-unused SHLIB_MINOR 2002-09-28 00:25:32 +00:00
libsmdb Remove MAINTAINER= lines from individual Makefiles in favor of the 2003-07-07 03:54:04 +00:00
libsmutil Remove MAINTAINER= lines from individual Makefiles in favor of the 2003-07-07 03:54:04 +00:00
libstand No reason to disable this test on powerpc. 2004-02-25 00:53:06 +00:00
libtacplus Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libtelnet Make sure that a "make release" (more accurately the bit that makes 2003-07-24 17:19:15 +00:00
libthr Implement PThreads barriers and barrier attributes. 2004-02-19 13:51:52 +00:00
libufs Remove unneccessary include of sys/types.h in the SYNOPSIS 2003-10-09 09:45:20 +00:00
libugidfw Add bsde_add_rule(), which is similar to bsde_set_rule() except that 2004-02-25 03:24:39 +00:00
libusbhid Do not cast dval. 2004-02-11 21:09:13 +00:00
libutil Bump the major version on libtuil. libutil now relies on the mac_* 2003-11-12 21:56:07 +00:00
libvgl Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
libwrap Turn on the extended syntax, which TCP_wrappers has by default, as 2003-07-24 19:58:56 +00:00
libxpg4 Mark libxpg4 as OBSOLETE_IN_6: it has been empty since its contents 2003-06-13 07:21:37 +00:00
liby Zap now-unused SHLIB_MINOR 2002-09-28 00:25:32 +00:00
libypclnt Nothing in libypclnt depends on librpcsvc. 2004-02-04 09:53:29 +00:00
libz Stage 3 of dynamic root support. Make all the libraries needed to run 2003-08-17 08:28:46 +00:00
msun Fix a problem where libm compiled under 5.X would depend on features 2003-10-27 01:28:07 +00:00
ncurses Unbreak the NOINSTALLLIB install. 2003-08-30 13:57:31 +00:00
Makefile Moving forward, there's no reason to exclude libpthread on sparc64. 2004-02-20 03:42:34 +00:00
Makefile.inc Zap now-unused SHLIB_MINOR 2002-09-28 00:25:32 +00:00