-GNU C Library NEWS -- history of user-visible changes. 24 June 1996
+GNU C Library NEWS -- history of user-visible changes. 1999-02-07
-Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
See the end for copying conditions.
-Please send GNU C library bug reports to bug-glibc@prep.ai.mit.edu.
+Please send GNU C library bug reports using the `glibcbug' script to
+<bugs@gnu.org>. Questions and suggestions should be send to
+<bug-glibc@gnu.org>.
+\f
+Version 2.1.1
+
+* New ISO C 9x function _exit, imaxabs, and imaxdiv are added.
+\f
+Version 2.1
+
+* Richard Henderson corrected size of struct timeval on Linux/Alpha to
+ conform to POSIX member type requirements. Symbol versions have been
+ adjusted as needed within the library, and for direct use by applications,
+ but there is potential for problems if third-party libraries use
+ struct timeval as part of their interface. This does not present
+ a problem for X and other "essential" system libraries.
+
+* An additional locale model to support C++ Standard Library locale
+ model and probably more was implemented by Ulrich Drepper.
+
+* Eric Youngdale and Ulrich Drepper implemented versioning of objects on
+ symbol level.
+
+* Miles Bader provided the `argp' function family to support hierachical
+ command line argument parsing, layered on top of getopt.
+
+* strtod accepts new hexadecimal floating-point format from ISO C 9X.
+
+* printf has two new specifiers %a and %A to print hexadecimal flaoting-point
+ numbers.
+
+* scanf recognizes the %a and %A format for scanning floating point numbers.
+
+* the new headers <stdint.h> and <inttypes.h> from ISO C 9X provides
+ information and interfaces for the available integer types.
+
+* about 130 new math functions were added to implement the ISO C9x math
+ library.
+
+* the new header <complex.h> contains definitions of the complex math
+ functions from ISO C 9X.
+
+* the new header <tgmath.h> defines generic macros to use complex or
+ real valued functions.
+
+* Thorsten Kukuk provided an implementation for NIS+, securelevel 0, 1 and 2.
+
+* Andreas Jaeger provided a test suite for the math library.
+
+* Mark Kettenis implemented the utmpx interface and an utmp daemon.
+
+* Ulrich Drepper added character set conversion functions (iconv).
+
+* Optimized string functions have been added.
+
+* The localedata addon is now part of glibc.
+
+* An implementation of profiling shared libraries was added by Ulrich Drepper.
+
+* Thorsten Kukuk and Ulrich Drepper provided an implementation for a caching
+ daemon for NSS (nscd).
+
+ Missing a better place here are some numbers on improvements. Under
+ Linux 2.1.125 un-tar-ing the kernel sources takes
+
+ user system wall
+
+ using local files 12.19s 6.88s 22.91s
+
+ using NIS 13.92s 8.91s 26.34s
+
+ using NIS & nscd 10.37s 7.34s 25.30s
+
+ using NIS+ 27.57s 30.37s 640.46s
+
+ using NIS+ & nscd 10.25s 7.83s 26.51s
+
+ using NIS & old nscd [1] 13.83s 8.32s 29.60s
+
+ Keep in mind that non-namelookup related operations dominate above times.
+ It was just a common complain that using NIS+ unpacking the kernel is
+ horribly slow.
+
+ [1] The old nscd implementation is not available anymore since it was
+ distributed with glibc up to version 2.0.98 and thus is now replaced.
+
+* Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
+
+* Mark Kettenis provided a Hesiod NSS module.
+
+* The ELF dynamic loader knows how to process dynamic string tokens ($ORIGIN
+ and $PLATFORM) in RPATHs and similar strings (Ulrich Drepper).
+
+* rcmd can now handle netgroups (Dick Streefland).
+
+* A port to the ARM was contributed by Phil Blundell, Pat Beirne and Scott
+ Bambrough.
+
+* Support for the IPv6 protocol has been added to the socket API, as per the
+ latest draft standards.
+
+* Support for Linux 2.2 has been added.
+
+* Interface changes relative to the latest 2.0.x release:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+addseverity NEW: Unix98
+alphasort64 NEW: LFS
+argp_err_exit_status NEW: argp, GNU ext
+argp_error NEW: argp, GNU ext
+argp_failure NEW: argp, GNU ext
+argp_help NEW: argp, GNU ext
+argp_parse NEW: argp, GNU ext
+argp_program_bug_address NEW: argp, GNU ext
+argp_program_version NEW: argp, GNU ext
+argp_program_version_hook NEW: argp, GNU ext
+argp_state_help NEW: argp, GNU ext
+argp_usage NEW: argp, GNU ext
+authdes_create NEW: Secure RPC
+authdes_getucred NEW: Secure RPC
+authdes_pk_create NEW: Secure RPC
+backtrace NEW: GNU ext.
+backtrace_symbols NEW: GNU ext.
+backtrace_symbols_fd NEW: GNU ext.
+cacos NEW: ISO C 9x
+cacosf NEW: ISO C 9x
+cacosh NEW: ISO C 9x
+cacoshf NEW: ISO C 9x
+cacoshl NEW: ISO C 9x
+cacosl NEW: ISO C 9x
+capget NEW: kernel
+capset NEW: kernel
+carg NEW: ISO C 9x
+cargf NEW: ISO C 9x
+cargl NEW: ISO C 9x
+casin NEW: ISO C 9x
+casinf NEW: ISO C 9x
+casinh NEW: ISO C 9x
+casinhf NEW: ISO C 9x
+casinhl NEW: ISO C 9x
+casinl NEW: ISO C 9x
+catan NEW: ISO C 9x
+catanf NEW: ISO C 9x
+catanh NEW: ISO C 9x
+catanhf NEW: ISO C 9x
+catanhl NEW: ISO C 9x
+catanl NEW: ISO C 9x
+cbc_crypt NEW: Secure RPC
+ccos NEW: ISO C 9x
+ccosf NEW: ISO C 9x
+ccosh NEW: ISO C 9x
+ccoshf NEW: ISO C 9x
+ccoshl NEW: ISO C 9x
+ccosl NEW: ISO C 9x
+cexp NEW: ISO C 9x
+cexpf NEW: ISO C 9x
+cexpl NEW: ISO C 9x
+cimag NEW: ISO C 9x
+cimagf NEW: ISO C 9x
+cimagl NEW: ISO C 9x
+clearerr_locked REMOVED
+clntunix_create NEW: sunrpc ext
+clog NEW: ISO C 9x
+clog10 NEW: ISO C 9x
+clog10f NEW: ISO C 9x
+clog10l NEW: ISO C 9x
+clogf NEW: ISO C 9x
+clogl NEW: ISO C 9x
+conj NEW: ISO C 9x
+conjf NEW: ISO C 9x
+conjl NEW: ISO C 9x
+cpow NEW: ISO C 9x
+cpowf NEW: ISO C 9x
+cpowl NEW: ISO C 9x
+cproj NEW: ISO C 9x
+cprojf NEW: ISO C 9x
+cprojl NEW: ISO C 9x
+creal NEW: ISO C 9x
+crealf NEW: ISO C 9x
+creall NEW: ISO C 9x
+creat64 NEW: LFS
+csin NEW: ISO C 9x
+csinf NEW: ISO C 9x
+csinh NEW: ISO C 9x
+csinhf NEW: ISO C 9x
+csinhl NEW: ISO C 9x
+csinl NEW: ISO C 9x
+csqrt NEW: ISO C 9x
+csqrtf NEW: ISO C 9x
+csqrtl NEW: ISO C 9x
+ctan NEW: ISO C 9x
+ctanf NEW: ISO C 9x
+ctanh NEW: ISO C 9x
+ctanhf NEW: ISO C 9x
+ctanhl NEW: ISO C 9x
+ctanl NEW: ISO C 9x
+des_setparity NEW: Secure RPC
+ecb_crypt NEW: Secure RPC
+endutxent NEW: Unix98
+exp10 NEW: ISO C 9x
+exp10f NEW: ISO C 9x
+exp10l NEW: ISO C 9x
+exp2 NEW: ISO C 9x
+exp2f NEW: ISO C 9x
+exp2l NEW: ISO C 9x
+fattach NEW: STREAMS
+fdetach NEW: STREAMS
+fdim NEW: ISO C 9x
+fdimf NEW: ISO C 9x
+fdiml NEW: ISO C 9x
+feclearexcept NEW: ISO C 9x
+fegetenv NEW: ISO C 9x
+fegetexceptflag NEW: ISO C 9x
+fegetround NEW: ISO C 9x
+feholdexcept NEW: ISO C 9x
+feof_locked REMOVED
+feraiseexcept NEW: ISO C 9x
+ferror_locked REMOVED
+fesetenv NEW: ISO C 9x
+fesetexceptflag NEW: ISO C 9x
+fesetround NEW: ISO C 9x
+fetestexcept NEW: ISO C 9x
+feupdateenv NEW: ISO C 9x
+fflush_locked REMOVED
+ffsl NEW: GNU ext.
+ffsll NEW: GNU ext.
+fgetpos64 NEW: LFS
+fgets_unlocked NEW: GNU ext.
+fileno_locked REMOVED
+fma NEW: ISO C 9x
+fmaf NEW: ISO C 9x
+fmal NEW: ISO C 9x
+fmax NEW: ISO C 9x
+fmaxf NEW: ISO C 9x
+fmaxl NEW: ISO C 9x
+fmin NEW: ISO C 9x
+fminf NEW: ISO C 9x
+fminl NEW: ISO C 9x
+fmtmsg NEW: Unix98
+fopen64 NEW: LFS
+fputc_locked REMOVED
+fputs_unlocked NEW: GNU ext.
+fread_unlocked NEW: GNU ext.
+freopen64 NEW: LFS
+fseeko NEW: Unix98
+fsetpos64 NEW: LFS
+fstatfs64 NEW: LFS
+fstatvfs NEW: Unix98
+fstatvfs64 NEW: LFS
+ftello NEW: Unix98
+ftello64 NEW: LFS
+ftruncate64 NEW: LFS
+ftw64 NEW: LFS
+fwrite_unlocked NEW: GNU ext.
+gai_strerror NEW: IPv6
+gamma_r REMOVED
+gammaf_r REMOVED
+gammal_r REMOVED
+getchar_locked REMOVED
+getdate NEW: Unix98
+getdate_err NEW: Unix98
+getdate_r NEW: GNU ext.
+getmsg NEW: STREAMS
+getnameinfo NEW: IPv6
+getnetname NEW: Secure RPC
+getpmsg NEW: STREAMS
+getpt NEW: Unix98 PTY
+getrlimit64 NEW: LFS
+getutxent NEW: Unix98
+getutxid NEW: Unix98
+getutxline NEW: Unix98
+glob64 NEW: GNU ext.
+globfree64 NEW: GNU ext.
+gnu_get_libc_release NEW: GNU ext.
+gnu_get_libc_version NEW: GNU ext.
+grantpt NEW: Unix98 PTY
+host2netname NEW: Secure RPC
+iconv NEW: iconv
+iconv_close NEW: iconv
+iconv_open NEW: iconv
+if_freenameindex NEW: IPv6
+if_indextoname NEW: IPv6
+if_nameindex NEW: IPv6
+if_nametoindex NEW: IPv6
+in6addr_any NEW: IPv6
+in6addr_loopback NEW: IPv6
+inet6_isipv4mapped NEW: IPv6
+isastream NEW: STREAMS
+iswblank NEW: GNU ext.
+key_decryptsession NEW: Secure RPC
+key_decryptsession_pk NEW: Secure RPC
+key_encryptsession NEW: Secure RPC
+key_encryptsession_pk NEW: Secure RPC
+key_gendes NEW: Secure RPC
+key_get_conv NEW: Secure RPC
+key_secretkey_is_set NEW: Secure RPC
+key_setnet NEW: Secure RPC
+key_setsecret NEW: Secure RPC
+llrint NEW: ISO C 9x
+llrintf NEW: ISO C 9x
+llrintl NEW: ISO C 9x
+llround NEW: ISO C 9x
+llroundf NEW: ISO C 9x
+llroundl NEW: ISO C 9x
+log2 NEW: ISO C 9x
+log2f NEW: ISO C 9x
+log2l NEW: ISO C 9x
+lrint NEW: ISO C 9x
+lrintf NEW: ISO C 9x
+lrintl NEW: ISO C 9x
+lround NEW: ISO C 9x
+lroundf NEW: ISO C 9x
+lroundl NEW: ISO C 9x
+lseek64 NEW: LFS
+makecontext NEW: Unix98
+mempcpy NEW: GNU ext.
+mmap64 NEW: LFS
+moncontrol REMOVED
+modify_ldt NEW: kernel
+nan NEW: ISO C 9x
+nanf NEW: ISO C 9x
+nanl NEW: ISO C 9x
+nearbyint NEW: ISO C 9x
+nearbyintf NEW: ISO C 9x
+nearbyintl NEW: ISO C 9x
+netname2host NEW: Secure RPC
+netname2user NEW: Secure RPC
+nexttoward NEW: ISO C 9x
+nexttowardf NEW: ISO C 9x
+nexttowardl NEW: ISO C 9x
+nftw NEW: Unix98
+nftw64 NEW: LFS
+open64 NEW: LFS
+passwd2des NEW: Secure RPC
+pow10 NEW: GNU ext.
+pow10f NEW: GNU ext.
+pow10l NEW: GNU ext.
+pread NEW: Unix98
+pread64 NEW: LFS
+printf_size NEW: GNU ext.
+printf_size_info NEW: GNU ext.
+profil_counter REMOVED
+pthread_mutexattr_getkind_np REPLACED
+pthread_mutexattr_setkind_np REPLACED
+ptsname NEW: Unix98 PTY
+ptsname_r NEW: Unix98 PTY
+putc_locked REMOVED
+putchar_locked REMOVED
+putgrent NEW: GNU ext.
+putmsg NEW: STREAMS
+putpmsg NEW: STREAMS
+pututxline NEW: Unix98
+pwrite NEW: Unix98
+pwrite64 NEW: LFS
+readdir64 NEW: LFS
+readdir64_r NEW: LFS
+remquo NEW: ISO C 9x
+remquof NEW: ISO C 9x
+remquol NEW: ISO C 9x
+round NEW: ISO C 9x
+roundf NEW: ISO C 9x
+roundl NEW: ISO C 9x
+rtime NEW: GNU ext.
+scalbln NEW: ISO C 9x
+scalblnf NEW: ISO C 9x
+scalblnl NEW: ISO C 9x
+scandir64 NEW: LFS
+sendfile NEW: kernel
+setcontext NEW: Unix98
+setrlimit64 NEW: LFS
+setutxent NEW: Unix98
+sighold NEW: Unix98
+sigignore NEW: Unix98
+sigqueue NEW: POSIX.1b
+sigrelse NEW: Unix98
+sigset NEW: POSIX.1b
+sigtimedwait NEW: POSIX.1b
+sigwaitinfo NEW: POSIX.1b
+sincos NEW: GNU ext.
+sincosf NEW: GNU ext.
+sincosl NEW: GNU ext.
+statfs64 NEW: LFS
+statvfs NEW: Unix98
+statvfs64 NEW: LFS
+strcasestr NEW: GNU ext.
+strtoimax NEW: ISO C 9x
+strtoumax NEW: ISO C 9x
+strverscmp NEW: GNU ext.
+svcauthdes_stats NEW: Secure RPC
+svcunix_create NEW: sunrpc etx
+svcunixfd_create NEW: sunrpc ext
+swapcontext NEW: Unix98
+tcgetsid NEW: Unix98 PTY
+tdestroy NEW: GNU ext.
+tgamma NEW: ISO C 9x
+tgammaf NEW: ISO C 9x
+tgammal NEW: ISO C 9x
+tmpfile64 NEW: LFS
+trunc NEW: ISO C 9x
+truncate64 NEW: LFS
+truncf NEW: ISO C 9x
+truncl NEW: ISO C 9x
+umount2 NEW: kernel
+unlockpt NEW: Unix98 PTY
+updwtmpx NEW: Unix98
+user2netname NEW: Secure RPC
+utmpxname NEW: Unix98
+versionsort NEW: GNU ext.
+versionsort64 NEW: GNU ext.
+waitid NEW: Unix98
+wcscasecmp NEW: GNU ext.
+wcsncasecmp NEW: GNU ext.
+wcsnlen NEW: GNU ext.
+wcstoimax NEW: ISO C 9x
+wcstoll NEW: ISO C 9x
+wcstoull NEW: ISO C 9x
+wcstoumax NEW: ISO C 9x
+wcswcs NEW: Unix98
+wordexp NEW: POSIX.2
+wordfree NEW: POSIX.2
+write_profiling REMOVED
+xdecrypt NEW: Secure RPC
+xdr_authdes_cred NEW: Secure RPC
+xdr_authdes_verf NEW: Secure RPC
+xdr_cryptkeyarg NEW: Secure RPC
+xdr_cryptkeyarg2 NEW: Secure RPC
+xdr_cryptkeyres NEW: Secure RPC
+xdr_getcredres NEW: Secure RPC
+xdr_key_netstarg NEW: Secure RPC
+xdr_key_netstres NEW: Secure RPC
+xdr_keybuf NEW: Secure RPC
+xdr_keystatus NEW: Secure RPC
+xdr_netnamestr NEW: Secure RPC
+xdr_sizeof NEW: Secure RPC
+xdr_unixcred NEW: sunrpc ext
+xencrypt NEW: Secure RPC
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+\f
+Version 2.0.6
+
+* more bug fixes
+
+\f
+Version 2.0.5
+
+* more bug fixes
+
+* inet_ntoa is thread-safe
+
+* updwtmp is moved from libutil to libc
+
+* rewrite of cbrt function
+
+* update of timezone data
+\f
+Version 2.0.4
+
+* more bug fixes
+\f
+Version 2.0.3
+
+* more bug fixes
+\f
+Version 2.0.2
+
+* more bug fixes
+
+* add atoll function
+
+* fix complex problems in Berkeley DB code
+
+* fix math functions
+\f
+Version 2.0.1
+
+* fixed lots of header problems (especially Linux/GNU specific)
+
+* dynamic loader preserves all registers
+
+* Roland McGrath provided support for handling of auxiliary objects in
+ the ELF dynamic loader.
+
+* support for parallel builds is improved
\f
Version 2.0
of many files which contained only symbol aliases, reducing the size of
the source and the compiled library; many other files were renamed to
less cryptic names previously occupied by the symbol alias files.
- There is a new header file <elf.h> and new library `-lelf' for
- programs which operate on files in the ELF format.
+ There is a new header file <elf.h> for programs which operate on
+ files in the ELF format.
* Converted to Autoconf version 2, so `configure' has more options.
Run `configure --help' to see the details.
are enabled, the new library `-ldl' is available for arbitrary run-time
loading of shared objects; its interface is defined in <dlfcn.h>. The
new header file <link.h> gives access to the internals of the run-time
- dynamic linker, `ld.so'.
+ dynamic linker, `ld.so'. The shell script `ldd' is similar to the
+ application of same name on other systems and it provides information
+ about dynamically linked binaries.
* The C library now provides the run-time support code for profiling
executables compiled with `-pg'. Programs can control the profiling code
the support for this file format was contributed by David Mosberger-Tang.
* The math code has been replaced with a math library based on fdlibm from
- Sun, and modified by JT Conklin with i387 support and by Ian Taylor with
- `float' functions. The math functions now reside in a separate library,
- so programs using them will need to use `-lm' their linking commands.
+ Sun, and modified by JT Conklin and Ulrich Drepper with i387 support, by
+ Ian Taylor with `float' functions and by Ulrich Drepper with `long double'
+ functions. The math functions now reside in a separate library, so
+ programs using them will need to use `-lm' their linking commands.
+
+* John C. Bowman contributed optimized ix87 assembler inline functions.
* Ulrich Drepper has contributed support for an `/etc/nsswitch.conf'
mechanism similar to that found in Solaris 2. This is now used for the
- group, passwd, hosts, networks, services, protocols, and rpc databases.
- The `nsswitch.conf' file controls what services are used for each
- individual database. This works by loading shared libraries with names
- specified in `nsswitch.conf', so service modules can be changed or added at
- any time without even relinking any program. A future release of the
- separate NYS package will provide NIS/YP and NIS+ modules for this interface.
+ group, passwd, hosts, networks, services, protocols, rpc, ethers,
+ shadow, netgroup, publickey, and alias databases. The `nsswitch.conf'
+ file controls what services are used for each individual database. This
+ works by loading shared libraries with names specified in `nsswitch.conf',
+ so service modules can be changed or added at any time without even
+ relinking any program. Currently there are the file, db, and NIS based
+ NSS services available.
* The new functions `strtoq' and `strtouq' parse integer values from
strings, like `strtol' and `strtoul', but they return `long long int' and
`strtod', `strtof', and `strtold'. These new functions are perfectly
accurate, and much faster than the old ones.
+* The implementation of the POSIX locale model was completely rewritten by
+ Ulrich Drepper. This includes the new programs `localedef' and `locale'
+ to compile the POSIX locale definition.
+
+* The former dummy implementations of the strcoll and strxfrm function are
+ now replaced by fully functional code contributed by Ulrich Drepper. The
+ collation information comes from the POSIX locale definitions.
+
* The new header <langinfo.h> defines an interface for accessing
various locale-dependent data (using the locale chosen with `setlocale').
* Ulrich Drepper has contributed a new suite of functions for operation on
- wide-character and multibyte-character strings, in <wcstr.h> and <mbstr.h>;
+ wide-character and multibyte-character strings, in <wchar.h>;
and classification and case conversion of wide characters, in <wctype.h>.
- These new functions are intended to conform to the ISO C specification.
+ These new functions are conforming to the ISO C, Amendement 1 specification.
+
+* There is now a second implementation of the standard I/O library available.
+ It comes from GNU libg++ as was written by Per Bothner, heavily modified
+ by Hongjiu Lu and made thread safe by Ulrich Drepper.
* You can now use positional parameter specifications in format strings
for the `printf' and `scanf' families of functions. For example,
* The new header file <fts.h> and suite of functions simplify programs that
operate on directory trees. This code comes from 4.4 BSD.
-* The resolver code has been updated from the BIND 4.9.4-T3B release.
-
-* The new function `malloc_find_object_address' finds the starting address
- of a malloc'd block, given any address within the block;
- `malloc_object_allocated_size' returns the size of an allocated block;
- and `malloc_walk' lets you walk through all allocated blocks. These can
- be useful for debugging; see <malloc.h> for the interfaces.
+* The resolver code has been updated from the BIND 4.9.5-P1 release.
+ Parts of the code were heavily modified by Ulrich Drepper to fit in the
+ NSS scheme used in glibc.
* There is a new malloc debugging hook `__memalign_hook'.
* The new functions `ecvt', `fcvt', and `gcvt' provide an obsolete interface
for formatting floating-point numbers. They are provided only for
- compatibility; new programs should use `sprintf' instead.
+ compatibility; new programs should use `sprintf' instead. There are
+ also equivalent function for the `long double' floating-point type and
+ all functions also exist in a reentrant form.
* The new auxiliary library `-lutil' from 4.4 BSD contains various
functions for maintaining the login-record files (primarily of use to
* Ulrich Drepper has updated the Linux-specific code, based largely
on work done in Hongjiu Lu's version of GNU libc for Linux.
- The GNU library now supports Linux versions 1.3.29 and later,
- using the ELF object file format (i[345]86-*-linux).
+ The GNU library now supports Linux versions 2.0.10 and later,
+ using the ELF object file format (i[3456]86-*-linux).
* Andreas Schwab has ported the C library to Linux/m68k (m68k-*-linux).
-* David Mosberger-Tang has ported the C library to Linux/Alpha (alpha-*-linux).
- Richard Henderson contributed the dynamic linking support for ELF/Alpha.
+* David Mosberger-Tang and Richard Henderson have ported the C library
+ to Linux/Alpha (alpha-*-linux). Richard Henderson contributed the
+ dynamic linking support for ELF/Alpha.
+
+* Richard Henderson contributed several Alpha optimized assembler function
+ for arithmetic and string handling.
* Ulrich Drepper has contributed a new set of message catalog functions to
support multiple languages using the <libintl.h> interface, for use with
`struct sockaddr *' type, does not generate a type-clash warning.
* New function `error' declared in header file <error.h> is a convenient
- function for printing error messages and optionally exitting; this is the
+ function for printing error messages and optionally exiting; this is the
canonical function used in GNU programs. The new functions `err', `warn',
and friends in header file <err.h> are the canonical 4.4 BSD interface for
doing the same thing.
POSIX.2 `glob' function to do ~ and {...} expansion.
* New function `unsetenv' complements `setenv' for compatibility with 4.4 BSD.
+ `clearenv' which is used in POSIX.9 is also available.
* New function `getsid' returns session ID number on systems that support it.
* We have incorporated the 4.4 BSD `db' library (version 1.85). New header
files <db.h> and <mpool.h> provide a rich set of functions for several
types of simple databases stored in memory and in files, and <ndbm.h> is
- an old `ndbm'-compatbile interface using the `db' functions.
+ an old `ndbm'-compatible interface using the `db' functions. Link with
+ `-ldb' to get these functions.
* New macro `strdupa' copies a string like `strdup', but uses local stack
space from `alloca' instead of dynamic heap space from `malloc'.
* New function `strnlen' is like `strlen' but searches only a given maximum
- number of characters for the null terminator.
+ number of characters for the null terminator. `stpncpy', `strndup' and
+ `strndupa' are similar variants for the `stpcpy', `strdup' and `strdupa'
+ function.
* New function `statfs' in header <sys/statfs.h>.
* A new suite of functions in <utmp.h> handle all the details of reading
and writing the utmp file.
+
+* An implementation of the NIS/YP(tm) based NSS service was contributed by
+ Thorsten Kukuk.
+
+* Paul Eggert and Ulrich Drepper modified the `strftime' function to be
+ completely POSIX compliant and also implemented the extended functionality
+ to handle alternate digit representation and alternate era date formats.
+
+* Ulrich Drepper provided an implementation of the `strptime' function
+ defined in XPG4.2 which transforms a string into a `struct tm' value.
+
+* Paul Eggert provided the tzselect shell script as part of the timezone
+ code. The shell script makes it easy to select the correct timezone
+ specification.
+
+* The implementation of the malloc family of functions is completely replaced
+ by a new implementation by Doug Lea with many improvements by Wolfram Gloger.
+ The implementation uses the mmap function (if available) and it is
+ optimized for the use in multi threaded programs.
+
+* Ulrich Drepper contributed a MD5 "encryption" for the crypt family of
+ functions. This new functionality is usable by specifying a special
+ salt string and it is compatible with implementation on *BSD systems.
+
+* Lots of functions from the XPG4.2 standard were added by Ulrich Drepper:
+ `getsubopt' to handle second level command line options, `bsd_signal'
+ to access BSD style `signal' functionality, the obsolete `regexp' style
+ expression matcher.
+
+* the `lchown' function is available on system which support this
+ functionality.
+
+* The implementation of the shadow password handling function was contributed
+ by Ulrich Drepper.
+
+* David Mosberger-Tang changed the SunRPC implementation to be 64bit safe.
+
+* POSIX.1g support was added. The <sys/select.h> header is available,
+ `isfdtype' and `pselect' are implemented. Craig Metz contributed an
+ implementation of `getaddrinfo'.
\f
Version 1.09
`make dvi' will produce a DVI file of the printed manual.
`make info' will produce Info files that you can read on line using C-h i
in Emacs or the `info' program.
- Please send comments on the manual to bug-glibc-manual@prep.ai.mit.edu.
+ Please send comments on the manual to bug-glibc-manual@gnu.org.
* The library now supports SVR4 on i386s (i386-unknown-sysv4).