1 GNU C Library NEWS -- history of user-visible changes. 1999-01-24
3 Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
4 See the end for copying conditions.
6 Please send GNU C library bug reports using the `glibcbug' script to
7 <bugs@gnu.org>. Questions and suggestions should be send to
12 * Richard Henderson corrected size of struct timeval on Linux/Alpha to
13 conform to POSIX member type requirements. Symbol versions have been
14 adjusted as needed within the library, and for direct use by applications,
15 but there is potential for problems if third-party libraries use
16 struct timeval as part of their interface. This does not present
17 a problem for X and other "essential" system libraries.
19 * An additional locale model to support C++ Standard Library locale
20 model and probably more was implemented by Ulrich Drepper.
22 * Eric Youngdale and Ulrich Drepper implemented versioning of objects on
25 * Miles Bader provided the `argp' function family to support hierachical
26 command line argument parsing, layered on top of getopt.
28 * strtod accepts new hexadecimal floating-point format from ISO C 9X.
30 * printf has two new specifiers %a and %A to print hexadecimal flaoting-point
33 * scanf recognizes the %a and %A format for scanning floating point numbers.
35 * the new headers <stdint.h> and <inttypes.h> from ISO C 9X provides
36 information and interfaces for the available integer types.
38 * the new header <complex.h> contains definitions of the complex math
39 functions from ISO C 9X.
41 * the new header <tgmath.h> defines generic macros to use complex or
42 real valued functions.
44 * Thorsten Kukuk provided an implementation for NIS+, securelevel 0, 1 and 2.
46 * Andreas Jaeger provided a test suite for the math library.
48 * Mark Kettenis implemented the utmpx interface and an utmp daemon.
50 * Ulrich Drepper added character set conversion functions (iconv).
52 * Optimized string functions have been added.
54 * The localedata addon is now part of glibc.
56 * An implementation of profiling shared libraries was added by Ulrich Drepper.
58 * Thorsten Kukuk and Ulrich Drepper provided an implementation for a caching
59 daemon for NSS (nscd).
61 Missing a better place here are some numbers on improvements. Under
62 Linux 2.1.125 un-tar-ing the kernel sources takes
66 using local files 12.19s 6.88s 22.91s
68 using NIS 13.92s 8.91s 26.34s
70 using NIS & nscd 10.37s 7.34s 25.30s
72 using NIS+ 27.57s 30.37s 640.46s
74 using NIS+ & nscd 10.25s 7.83s 26.51s
76 using NIS & old nscd [1] 13.83s 8.32s 29.60s
78 Keep in mind that non-namelookup related operations dominate above times.
79 It was just a common complain that using NIS+ unpacking the kernel is
82 [1] The old nscd implementation is not available anymore since it was
83 distributed with glibc up to version 2.0.98 and thus is now replaced.
85 * Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
87 * Mark Kettenis provided a Hesiod NSS module.
89 * The ELF dynamic loader knows how to process dynamic string tokens ($ORIGIN
90 and $PLATFORM) in RPATHs and similar strings (Ulrich Drepper).
92 * rcmd can now handle netgroups (Dick Streefland).
94 * A port to the ARM was contributed by Phil Blundell, Pat Beirne and Scott
97 * Support for the IPv6 protocol has been added to the socket API, as per the
98 latest draft standards.
100 * Support for Linux 2.2 has been added.
102 * Interface changes relative to the latest 2.0.x release:
103 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104 addseverity NEW: Unix98
106 argp_err_exit_status NEW: argp, GNU ext
107 argp_error NEW: argp, GNU ext
108 argp_failure NEW: argp, GNU ext
109 argp_help NEW: argp, GNU ext
110 argp_parse NEW: argp, GNU ext
111 argp_program_bug_address NEW: argp, GNU ext
112 argp_program_version NEW: argp, GNU ext
113 argp_program_version_hook NEW: argp, GNU ext
114 argp_state_help NEW: argp, GNU ext
115 argp_usage NEW: argp, GNU ext
116 authdes_create NEW: Secure RPC
117 authdes_getucred NEW: Secure RPC
118 authdes_pk_create NEW: Secure RPC
119 backtrace NEW: GNU ext.
120 backtrace_symbols NEW: GNU ext.
121 backtrace_symbols_fd NEW: GNU ext.
125 cacoshf NEW: ISO C 9x
126 cacoshl NEW: ISO C 9x
136 casinhf NEW: ISO C 9x
137 casinhl NEW: ISO C 9x
142 catanhf NEW: ISO C 9x
143 catanhl NEW: ISO C 9x
145 cbc_crypt NEW: Secure RPC
158 clearerr_locked REMOVED
159 clntunix_create NEW: sunrpc ext
162 clog10f NEW: ISO C 9x
163 clog10l NEW: ISO C 9x
194 des_setparity NEW: Secure RPC
195 ecb_crypt NEW: Secure RPC
196 endutxent NEW: Unix98
208 feclearexcept NEW: ISO C 9x
209 fegetenv NEW: ISO C 9x
210 fegetexceptflag NEW: ISO C 9x
211 fegetround NEW: ISO C 9x
212 feholdexcept NEW: ISO C 9x
214 feraiseexcept NEW: ISO C 9x
215 ferror_locked REMOVED
216 fesetenv NEW: ISO C 9x
217 fesetexceptflag NEW: ISO C 9x
218 fesetround NEW: ISO C 9x
219 fetestexcept NEW: ISO C 9x
220 feupdateenv NEW: ISO C 9x
221 fflush_locked REMOVED
225 fgets_unlocked NEW: GNU ext.
226 fileno_locked REMOVED
239 fputs_unlocked NEW: GNU ext.
240 fread_unlocked NEW: GNU ext.
251 fwrite_unlocked NEW: GNU ext.
252 gai_strerror NEW: IPv6
256 getchar_locked REMOVED
258 getdate_err NEW: Unix98
259 getdate_r NEW: GNU ext.
261 getnameinfo NEW: IPv6
262 getnetname NEW: Secure RPC
264 getpt NEW: Unix98 PTY
266 getutxent NEW: Unix98
268 getutxline NEW: Unix98
270 globfree64 NEW: GNU ext.
271 gnu_get_libc_release NEW: GNU ext.
272 gnu_get_libc_version NEW: GNU ext.
273 grantpt NEW: Unix98 PTY
274 host2netname NEW: Secure RPC
276 iconv_close NEW: iconv
277 iconv_open NEW: iconv
278 if_freenameindex NEW: IPv6
279 if_indextoname NEW: IPv6
280 if_nameindex NEW: IPv6
281 if_nametoindex NEW: IPv6
282 in6addr_any NEW: IPv6
283 in6addr_loopback NEW: IPv6
284 inet6_isipv4mapped NEW: IPv6
285 isastream NEW: STREAMS
286 iswblank NEW: GNU ext.
287 key_decryptsession NEW: Secure RPC
288 key_decryptsession_pk NEW: Secure RPC
289 key_encryptsession NEW: Secure RPC
290 key_encryptsession_pk NEW: Secure RPC
291 key_gendes NEW: Secure RPC
292 key_get_conv NEW: Secure RPC
293 key_secretkey_is_set NEW: Secure RPC
294 key_setnet NEW: Secure RPC
295 key_setsecret NEW: Secure RPC
297 llrintf NEW: ISO C 9x
298 llrintl NEW: ISO C 9x
299 llround NEW: ISO C 9x
300 llroundf NEW: ISO C 9x
301 llroundl NEW: ISO C 9x
309 lroundf NEW: ISO C 9x
310 lroundl NEW: ISO C 9x
312 makecontext NEW: Unix98
313 mempcpy NEW: GNU ext.
316 modify_ldt NEW: kernel
320 nearbyint NEW: ISO C 9x
321 nearbyintf NEW: ISO C 9x
322 nearbyintl NEW: ISO C 9x
323 netname2host NEW: Secure RPC
324 netname2user NEW: Secure RPC
325 nexttoward NEW: ISO C 9x
326 nexttowardf NEW: ISO C 9x
327 nexttowardl NEW: ISO C 9x
331 passwd2des NEW: Secure RPC
337 printf_size NEW: GNU ext.
338 printf_size_info NEW: GNU ext.
339 profil_counter REMOVED
340 pthread_mutexattr_getkind_np REPLACED
341 pthread_mutexattr_setkind_np REPLACED
342 ptsname NEW: Unix98 PTY
343 ptsname_r NEW: Unix98 PTY
345 putchar_locked REMOVED
346 putgrent NEW: GNU ext.
349 pututxline NEW: Unix98
355 remquof NEW: ISO C 9x
356 remquol NEW: ISO C 9x
361 scalbln NEW: ISO C 9x
362 scalblnf NEW: ISO C 9x
363 scalblnl NEW: ISO C 9x
366 setcontext NEW: Unix98
368 setutxent NEW: Unix98
370 sigignore NEW: Unix98
371 sigqueue NEW: POSIX.1b
374 sigtimedwait NEW: POSIX.1b
375 sigwaitinfo NEW: POSIX.1b
377 sincosf NEW: GNU ext.
378 sincosl NEW: GNU ext.
382 strcasestr NEW: GNU ext.
383 strtoimax NEW: ISO C 9x
384 strtoumax NEW: ISO C 9x
385 strverscmp NEW: GNU ext.
386 svcauthdes_stats NEW: Secure RPC
387 svcunix_create NEW: sunrpc etx
388 svcunixfd_create NEW: sunrpc ext
389 swapcontext NEW: Unix98
390 tcgetsid NEW: Unix98 PTY
391 tdestroy NEW: GNU ext.
393 tgammaf NEW: ISO C 9x
394 tgammal NEW: ISO C 9x
401 unlockpt NEW: Unix98 PTY
403 user2netname NEW: Secure RPC
404 utmpxname NEW: Unix98
405 versionsort NEW: GNU ext.
406 versionsort64 NEW: GNU ext.
408 wcscasecmp NEW: GNU ext.
409 wcsncasecmp NEW: GNU ext.
410 wcsnlen NEW: GNU ext.
411 wcstoimax NEW: ISO C 9x
412 wcstoll NEW: ISO C 9x
413 wcstoull NEW: ISO C 9x
414 wcstoumax NEW: ISO C 9x
417 wordfree NEW: POSIX.2
418 write_profiling REMOVED
419 xdecrypt NEW: Secure RPC
420 xdr_authdes_cred NEW: Secure RPC
421 xdr_authdes_verf NEW: Secure RPC
422 xdr_cryptkeyarg NEW: Secure RPC
423 xdr_cryptkeyarg2 NEW: Secure RPC
424 xdr_cryptkeyres NEW: Secure RPC
425 xdr_getcredres NEW: Secure RPC
426 xdr_key_netstarg NEW: Secure RPC
427 xdr_key_netstres NEW: Secure RPC
428 xdr_keybuf NEW: Secure RPC
429 xdr_keystatus NEW: Secure RPC
430 xdr_netnamestr NEW: Secure RPC
431 xdr_sizeof NEW: Secure RPC
432 xdr_unixcred NEW: sunrpc ext
433 xencrypt NEW: Secure RPC
434 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
445 * inet_ntoa is thread-safe
447 * updwtmp is moved from libutil to libc
449 * rewrite of cbrt function
451 * update of timezone data
467 * fix complex problems in Berkeley DB code
473 * fixed lots of header problems (especially Linux/GNU specific)
475 * dynamic loader preserves all registers
477 * Roland McGrath provided support for handling of auxiliary objects in
478 the ELF dynamic loader.
480 * support for parallel builds is improved
484 * GNU extensions are no longer declared by default. To enable them you
485 must define the macro `_GNU_SOURCE' in your program or compile with
488 * The library has changed from using GNU ld symbol aliases to using weak
489 symbols where available. The ELF object file format supports weak
490 symbols; GNU ld also supports weak symbols in the a.out format. (There
491 is also now support for other GNU ld extensions in ELF. Use the
492 `--with-elf' option to configure to indicate you have ELF, and
493 `--with-gnu-ld' if using GNU ld.) This change resulted in the deletion
494 of many files which contained only symbol aliases, reducing the size of
495 the source and the compiled library; many other files were renamed to
496 less cryptic names previously occupied by the symbol alias files.
497 There is a new header file <elf.h> for programs which operate on
498 files in the ELF format.
500 * Converted to Autoconf version 2, so `configure' has more options.
501 Run `configure --help' to see the details.
503 * The library can now be configured to build profiling, highly-optimized
504 (but undebuggable), and/or shared libraries (ELF with GNU ld only). The
505 `--enable-profile', `--enable-omitfp', and `--enable-shared' options to
506 `configure' enable building these extra libraries. The shared library is
507 built by default when using both ELF and GNU ld. When shared libraries
508 are enabled, the new library `-ldl' is available for arbitrary run-time
509 loading of shared objects; its interface is defined in <dlfcn.h>. The
510 new header file <link.h> gives access to the internals of the run-time
511 dynamic linker, `ld.so'. The shell script `ldd' is similar to the
512 application of same name on other systems and it provides information
513 about dynamically linked binaries.
515 * The C library now provides the run-time support code for profiling
516 executables compiled with `-pg'. Programs can control the profiling code
517 through the interface in <sys/gmon.h>. The `gmon.out' files written by
518 the GNU C library can be read only by GNU `gprof' (from GNU binutils);
519 the support for this file format was contributed by David Mosberger-Tang.
521 * The math code has been replaced with a math library based on fdlibm from
522 Sun, and modified by JT Conklin and Ulrich Drepper with i387 support, by
523 Ian Taylor with `float' functions and by Ulrich Drepper with `long double'
524 functions. The math functions now reside in a separate library, so
525 programs using them will need to use `-lm' their linking commands.
527 * John C. Bowman contributed optimized ix87 assembler inline functions.
529 * Ulrich Drepper has contributed support for an `/etc/nsswitch.conf'
530 mechanism similar to that found in Solaris 2. This is now used for the
531 group, passwd, hosts, networks, services, protocols, rpc, ethers,
532 shadow, netgroup, publickey, and alias databases. The `nsswitch.conf'
533 file controls what services are used for each individual database. This
534 works by loading shared libraries with names specified in `nsswitch.conf',
535 so service modules can be changed or added at any time without even
536 relinking any program. Currently there are the file, db, and NIS based
537 NSS services available.
539 * The new functions `strtoq' and `strtouq' parse integer values from
540 strings, like `strtol' and `strtoul', but they return `long long int' and
541 `unsigned long long int' values, respectively (64-bit quantities).
543 * The new functions `strtof' and `strtold' parse floating-point values from
544 strings, like `strtod', but they return `float' and `long double' values,
545 respectively (on some machines `double' and `long double' are the same).
547 * Ulrich Drepper has contributed new implementations of the floating-point
548 printing and reading code used in the `printf' family of functions and
549 `strtod', `strtof', and `strtold'. These new functions are perfectly
550 accurate, and much faster than the old ones.
552 * The implementation of the POSIX locale model was completely rewritten by
553 Ulrich Drepper. This includes the new programs `localedef' and `locale'
554 to compile the POSIX locale definition.
556 * The former dummy implementations of the strcoll and strxfrm function are
557 now replaced by fully functional code contributed by Ulrich Drepper. The
558 collation information comes from the POSIX locale definitions.
560 * The new header <langinfo.h> defines an interface for accessing
561 various locale-dependent data (using the locale chosen with `setlocale').
563 * Ulrich Drepper has contributed a new suite of functions for operation on
564 wide-character and multibyte-character strings, in <wchar.h>;
565 and classification and case conversion of wide characters, in <wctype.h>.
566 These new functions are conforming to the ISO C, Amendement 1 specification.
568 * There is now a second implementation of the standard I/O library available.
569 It comes from GNU libg++ as was written by Per Bothner, heavily modified
570 by Hongjiu Lu and made thread safe by Ulrich Drepper.
572 * You can now use positional parameter specifications in format strings
573 for the `printf' and `scanf' families of functions. For example,
574 `printf ("Number %2$d, Mr %1$s\n", "Jones", 6);'' prints
575 ``Number 6, Mr Jones''. This is mainly useful when providing different
576 format strings for different languages, whose grammars may dictate
577 different orderings of the values being printed. To support this
578 feature, the interface for `register_printf_handler' has changed; see
579 the header file <printf.h> for details.
581 * The `printf' and `scanf' families of functions now understand a new
582 formatting flag for numeric conversions: the ' flag (e.g. %'d or %'f) says
583 to group numbers as indicated by the locale; for `scanf' and friends, this
584 says to accept as valid only a number with all the proper grouping
585 separators in the right places. In the default "C" locale, numbers are
586 not grouped; but locales for specific countries will define the usual
587 conventions (i.e. separate thousands with `,' in the US locale).
589 * The pgrp functions have been regularized, slightly incompatibly but much
590 less confusingly. The core functions are now `getpgid' and `setpgid',
591 which take arguments for the PID to operate on; the POSIX.1 `getpgrp' (no
592 argument) and BSD `setpgrp' (identical to `setpgid') functions are
593 provided for compatibility. There is no longer an incompatible `getpgrp'
594 with an argument declared under _BSD_SOURCE; no BSD code uses it.
596 * The new header file <fts.h> and suite of functions simplify programs that
597 operate on directory trees. This code comes from 4.4 BSD.
599 * The resolver code has been updated from the BIND 4.9.5-P1 release.
600 Parts of the code were heavily modified by Ulrich Drepper to fit in the
601 NSS scheme used in glibc.
603 * There is a new malloc debugging hook `__memalign_hook'.
605 * There are new typedefs `ushort' for `unsigned short int' and `uint' for
606 `unsigned int' in <sys/types.h>. These are for compatibility only and
607 their use is discouraged.
609 * The `-lmcheck' library to enable standard malloc debugging hooks is now
610 done differently, so that it works even without GNU ld.
612 * New function `euidaccess' checks allowed access to a file like `access',
613 but using the effective IDs instead of the real IDs.
615 * The time zone data files have been updated for the latest and greatest
616 local time conventions of the countries of the world.
618 * The new function `dirfd' extracts the file descriptor used by a DIR stream;
621 * The new functions `ecvt', `fcvt', and `gcvt' provide an obsolete interface
622 for formatting floating-point numbers. They are provided only for
623 compatibility; new programs should use `sprintf' instead. There are
624 also equivalent function for the `long double' floating-point type and
625 all functions also exist in a reentrant form.
627 * The new auxiliary library `-lutil' from 4.4 BSD contains various
628 functions for maintaining the login-record files (primarily of use to
629 system programs such as `login'), and convenient functions for
630 allocating and initializing a pseudo-terminal (pty) device.
632 * Ulrich Drepper has contributed new support for System V style
633 shared memory and IPC on systems that support it.
635 * Ulrich Drepper has contributed several miscellaneous new functions found
636 in System V: The `hsearch' family of functions provide an effective
637 implementation of hash tables; `a64l' and `l64a' provide a very simple
638 binary to ASCII mapping; `drand48' and friends provide a 48-bit random
641 * Ulrich Drepper has contributed new reentrant counterparts for the
642 `random' and `hsearch' families of functions; `random_r', `hsearch_r', etc.
644 * Ulrich Drepper has contributed new, highly-optimized versions of several
645 string functions for the i486/Pentium family of processors.
647 * Ulrich Drepper has updated the Linux-specific code, based largely
648 on work done in Hongjiu Lu's version of GNU libc for Linux.
649 The GNU library now supports Linux versions 2.0.10 and later,
650 using the ELF object file format (i[3456]86-*-linux).
652 * Andreas Schwab has ported the C library to Linux/m68k (m68k-*-linux).
654 * David Mosberger-Tang and Richard Henderson have ported the C library
655 to Linux/Alpha (alpha-*-linux). Richard Henderson contributed the
656 dynamic linking support for ELF/Alpha.
658 * Richard Henderson contributed several Alpha optimized assembler function
659 for arithmetic and string handling.
661 * Ulrich Drepper has contributed a new set of message catalog functions to
662 support multiple languages using the <libintl.h> interface, for use with
663 his new package GNU gettext. Translation volunteers have contributed
664 catalogs of the library's messages in Spanish, German, and Korean.
666 * For compatibility with XPG4, Ulrich Drepper has contributed the `gencat'
667 program and the `catgets' function for reading the catalog files it
668 creates. (The <libintl.h> interface is preferred; we include the
669 <nl_types.h> interface using `catgets' only for source compatibility with
670 programs already written to use it.)
672 * New header file <values.h> gives SVID-compatible names for <limits.h>
675 * Various new macros, declarations, and small header files for compatibility
678 * New function `group_member' is a convenient way to check if a process has
679 a given effective group ID.
681 * When using GCC 2.7 and later, the socket functions are now declared in a
682 special way so that passing an argument of type `struct sockaddr_in *',
683 `struct sockaddr_ns *', or `struct sockaddr_un *' instead of the generic
684 `struct sockaddr *' type, does not generate a type-clash warning.
686 * New function `error' declared in header file <error.h> is a convenient
687 function for printing error messages and optionally exiting; this is the
688 canonical function used in GNU programs. The new functions `err', `warn',
689 and friends in header file <err.h> are the canonical 4.4 BSD interface for
690 doing the same thing.
692 * The <glob.h> interface has several new flags from 4.4 BSD that extend the
693 POSIX.2 `glob' function to do ~ and {...} expansion.
695 * New function `unsetenv' complements `setenv' for compatibility with 4.4 BSD.
696 `clearenv' which is used in POSIX.9 is also available.
698 * New function `getsid' returns session ID number on systems that support it.
700 * We have incorporated the 4.4 BSD `db' library (version 1.85). New header
701 files <db.h> and <mpool.h> provide a rich set of functions for several
702 types of simple databases stored in memory and in files, and <ndbm.h> is
703 an old `ndbm'-compatible interface using the `db' functions. Link with
704 `-ldb' to get these functions.
706 * New macro `strdupa' copies a string like `strdup', but uses local stack
707 space from `alloca' instead of dynamic heap space from `malloc'.
709 * New function `strnlen' is like `strlen' but searches only a given maximum
710 number of characters for the null terminator. `stpncpy', `strndup' and
711 `strndupa' are similar variants for the `stpcpy', `strdup' and `strdupa'
714 * New function `statfs' in header <sys/statfs.h>.
716 * The new <argz.h> and <envz.h> interfaces contributed by Miles Bader
717 provide convenient functions for operating on blocks of null-terminated
720 * A new suite of functions in <utmp.h> handle all the details of reading
721 and writing the utmp file.
723 * An implementation of the NIS/YP(tm) based NSS service was contributed by
726 * Paul Eggert and Ulrich Drepper modified the `strftime' function to be
727 completely POSIX compliant and also implemented the extended functionality
728 to handle alternate digit representation and alternate era date formats.
730 * Ulrich Drepper provided an implementation of the `strptime' function
731 defined in XPG4.2 which transforms a string into a `struct tm' value.
733 * Paul Eggert provided the tzselect shell script as part of the timezone
734 code. The shell script makes it easy to select the correct timezone
737 * The implementation of the malloc family of functions is completely replaced
738 by a new implementation by Doug Lea with many improvements by Wolfram Gloger.
739 The implementation uses the mmap function (if available) and it is
740 optimized for the use in multi threaded programs.
742 * Ulrich Drepper contributed a MD5 "encryption" for the crypt family of
743 functions. This new functionality is usable by specifying a special
744 salt string and it is compatible with implementation on *BSD systems.
746 * Lots of functions from the XPG4.2 standard were added by Ulrich Drepper:
747 `getsubopt' to handle second level command line options, `bsd_signal'
748 to access BSD style `signal' functionality, the obsolete `regexp' style
751 * the `lchown' function is available on system which support this
754 * The implementation of the shadow password handling function was contributed
757 * David Mosberger-Tang changed the SunRPC implementation to be 64bit safe.
759 * POSIX.1g support was added. The <sys/select.h> header is available,
760 `isfdtype' and `pselect' are implemented. Craig Metz contributed an
761 implementation of `getaddrinfo'.
765 * For cross-compilation you should now set `BUILD_CC' instead of `HOST_CC'.
767 * New header file <fstab.h> and new functions `getfsspec', `getfsent' and
768 friends, for parsing /etc/fstab. This code comes from 4.4 BSD.
770 * The new function `daemon' from 4.4 BSD is useful for server programs that
771 want to put themselves in the background.
773 * Joel Sherrill has contributed support for several standalone boards that
774 run without an operating system.
776 * `printf', `scanf' and friends now accept a `q' type modifier for long
777 long int as well as `ll'. Formats using these might be `%qu' or `%lld'.
779 * All of the code taken from BSD (notably most of the math and networking
780 routines) has been updated from the BSD 4.4-Lite release.
782 * The resolver code has been updated from the BIND-4.9.3-BETA9 release.
784 * The new functions `getdomainname' and `setdomainname' fetch or change the
785 YP/NIS domain name. These are system calls which exist on systems which
788 * The time zone data files have been updated for the latest international
791 * The SunRPC programs `portmap' and `rpcinfo' are now installed in
792 $(sbindir) (usually /usr/local/sbin) instead of $(bindir).
796 * The C library now includes support for Sun RPC, from Sun's free
797 RPCSRC-4.0 distribution. The `portmap', `rpcinfo', and `rpcgen' programs
798 are included. (There is still no support for YP.)
800 * Tom Quinn has contributed a port of the C library to SGI machines running
801 Irix 4 (mips-sgi-irix4).
803 * The new `lockf' function is a simplified interface to the locking
804 facilities of `fcntl', included for compatibility.
806 * New time functions `timegm', `timelocal', and `dysize' for compatibility.
808 * New header file <sys/timeb.h> and new function `ftime' for compatibility.
810 * New header files <poll.h> and <sys/poll.h> and new function `poll' for
813 * The error message printed by `assert' for a failed assertion now includes
814 the name of the program (if using GNU ld) and the name of the calling
815 function (with versions of GCC that support this).
817 * The `psignal' function is now declared in <signal.h>, not <stdio.h>.
819 * The library now includes the <sys/mman.h> header file and memory
820 management functions `mmap', `munmap', `mprotect', `msync', and
821 `madvise', on systems that support those facilities.
823 * The interface for `mcheck' has changed slightly: the function called to
824 abort the program when an allocation inconsistency is detected now takes
825 an argument that indicates the type of failure. The new function
826 `mprobe' lets you request a consistency check for a particular block at
827 any time (checks are normally done only when you call `free' or `realloc'
830 * It is now possible to easily cross-compile the C library, building on one
831 system a library to run on another machine and/or operating system. All
832 you need to do is set the variable `HOST_CC' in `configparms' to the
833 native compiler for programs to run on the machine you are building on (a
834 few generator programs are used on Unix systems); set `CC' to the
837 * The new function `fexecve' (only implemented on the GNU system) executes
838 a program file given a file descriptor already open on the file.
842 * Brendan Kehoe has contributed most of a port to the DEC Alpha
843 running OSF/1 (alpha-dec-osf1). He says it is 75% complete.
845 * You can set the variable `libprefix' in `configparms' to specify a prefix
846 to be prepended to installed library files; this makes it easy to install
847 the GNU C library to be linked as `-lgnuc' or whatever.
849 * The new `stpncpy' is a cross between `stpcpy' and `strncpy': It
850 copies a limited number of characters from a string, and returns the
851 address of the last character written.
853 * You no longer need to check for whether the installed `stddef.h' is
854 compatible with the GNU C library. configure now checks for you.
856 * You can now define a per-stream `fileno' function to convert the
857 stream's cookie into an integral file descriptor.
859 * ``malloc (0)'' no longer returns a null pointer. Instead, it
860 allocates zero bytes of storage, and returns a unique pointer which
861 you can pass to `realloc' or `free'. The behavior is undefined if
862 you dereference this pointer.
864 * The C library now runs on Sony NEWS m68k machines running either
865 NewsOS 3 or NewsOS 4.
867 * The new `syscall' function is a system-dependent primitive function
868 for invoking system calls. It has the canonical behavior on Unix
869 systems, including unreliable return values for some calls (such as
870 `pipe', `fork' and `getppid').
872 * The error code `EWOULDBLOCK' is now obsolete; it is always defined
873 to `EAGAIN', which is the preferred name. On systems whose kernels
874 use two distinct codes, the C library now translates EWOULDBLOCK to
875 EAGAIN in every system call function.
879 * The GNU C Library Reference Manual is now distributed with the library.
880 `make dvi' will produce a DVI file of the printed manual.
881 `make info' will produce Info files that you can read on line using C-h i
882 in Emacs or the `info' program.
883 Please send comments on the manual to bug-glibc-manual@gnu.org.
885 * The library now supports SVR4 on i386s (i386-unknown-sysv4).
887 * Brendan Kehoe has contributed a port to Sun SPARCs running Solaris 2.
889 * Jason Merrill has contributed a port to the Sequent Symmetry running
890 Dynix version 3 (i386-sequent-dynix).
892 * The library has been ported to i386s running SCO 3.2.4 (also known as SCO
893 ODT 2.0; i386-unknown-sco3.2.4) or SCO 3.2 (i386-unknown-sco3.2).
895 * New function `memory_warnings' lets you arrange to get warnings when
896 malloc is running out of memory to allocate, like Emacs gives you.
898 * The C library now contains the relocating allocator used in Emacs 19 for
899 its editing buffers. This allocator (ralloc) minimizes allocation
900 overhead and fragmentation by moving allocated regions around whenever it
901 needs to. You always refer to a ralloc'd region with a "handle" (a
902 pointer to a pointer--an object of type `void **').
904 * There is a new `printf' format: `%m' gives you the string corresponding
905 to the error code in `errno'.
907 * In `scanf' formats, you can now use `%as' or `%a[' to do the normal `%s'
908 or `%[' conversion, but instead of filling in a fixed-sized buffer you
909 pass, the `a' modifier says to fill in a `char **' you pass with a
912 * The `fnmatch' function supports the new flag bits `FNM_LEADING_DIR' and
913 `FNM_CASEFOLD'. `FNM_LEADING_DIR' lets a pattern like `foo*' match a
914 name like `foo/bar'. `FNM_CASEFOLD' says to ignore case in matching.
916 * `mkstemp' is a traditional Unix function to atomically create and open a
917 uniquely-named temporary file.
921 * The standard location for the file that says what the local timezone is
922 has changed again. It is now `/usr/local/etc/localtime' (or more
923 precisely, `${prefix}/etc/localtime') rather than `/etc/localtime'.
925 * The distribution no longer contains any files with names longer than 14
928 * `struct ttyent' has two new flag bits: TTY_TRUSTED and TTY_CONSOLE.
929 These are set by the new `trusted' and `console' keywords in `/etc/ttys'.
931 * New functions `ttyslot' and `syslog' from 4.4 BSD.
935 * The configuration process has changed quite a bit. The `configure'
936 script is now used just like the configuration scripts for other GNU
937 packages. The `sysdeps' directory hierarchy is much rearranged.
938 The file `INSTALL' explains the new scheme in detail.
940 * The header files no longer need to be processed into ANSI C and
941 traditional C versions. There is just one set of files to install, and
942 it will work with ANSI or old C compilers (including `gcc -traditional').
944 * Brendan Kehoe and Ian Lance Taylor have ported the library to the
945 MIPS DECStation running Ultrix 4.
947 * The Sun 4 startup code (crt0) can now properly load SunOS 4 shared libraries.
948 Tom Quinn contributed the initial code. The GNU C library can NOT yet be
949 made itself into a shared library.
951 * Yet further improved support for the i386, running 4.3 BSD-like systems
952 (such as Mach 3 with the Unix single-server), or System V.
954 * New function `strncasecmp' to do case-insensitive string comparison
957 * New function `strsep' is a reentrant alternative to `strtok'.
959 * New functions `scandir' and `alphasort' for searching directories.
961 * New function `setenv' is a better interface to `putenv'.
963 * Ian Lance Taylor has contributed an implementation of the SVID `ftw'
964 function for traversing a directory tree.
966 * The GNU obstack package is now also part of the C library.
967 The new function `open_obstack_stream' creates a stdio stream that
968 writes onto an obstack; `obstack_printf' and `obstack_vprintf' do
969 formatted output directly to an obstack.
971 * Miscellaneous new functions: reboot, nice, sigaltstack (4.4 BSD only),
972 cfmakeraw, getusershell, getpass, swab, getttyent, seteuid, setegid.
974 * `FNM_FILE_NAME' is another name for `FNM_PATHNAME', used with `fnmatch'.
976 * The new functions `strfry' and `memfrob' do mysterious and wonderful
977 things to your strings.
979 * There are some new test programs: test-fseek, testmb, and testrand.
981 * Some work has been done to begin porting the library to 4.4 BSD and Linux.
982 These ports are not finished, but are a good starting place for really
983 supporting those systems.
985 * `/etc/localtime' is now the standard location for the file that says what
986 the local timezone is, rather than `/usr/local/lib/zoneinfo/localtime'.
987 This follows the general principle that `/etc' is the place for all local
990 * The C library header files now use `extern "C"' when used by the C++
991 compiler, so the C library should now work with C++ code.
993 * The header file <bstring.h> is gone. <string.h> now declares bcopy,
994 bcmp, bzero, and ffs.
996 * Mike Haertel (of GNU e?grep and malloc fame) has written a new sorting
997 function which uses the `merge sort' algorithm, and is said to be
998 significantly faster than the old GNU `qsort' function. Merge sort is
999 now the standard `qsort' function. The new algorithm can require a lot
1000 of temporary storage; so, the old sorting function is called when the
1001 required storage is not available.
1003 * The C library now includes Michael Glad's Ultra Fast Crypt, which
1004 provides the Unix `crypt' function, plus some other entry points.
1005 Because of the United States export restriction on DES implementations,
1006 we are distributing this code separately from the rest of the C library.
1007 There is an extra distribution tar file just for crypt; it is called
1008 `glibc-VERSION-crypt.tar.Z', e.g. `glibc-1.04-crypt.tar.Z'. You can just
1009 unpack the crypt distribution along with the rest of the C library and
1010 build; you can also build the library without getting crypt. Users
1011 outside the USA can get the crypt distribution via anonymous FTP from
1012 ftp.uni-c.dk [129.142.6.74], or another archive site outside the U.S.
1014 * The code and header files taken from 4.4 BSD have been updated with the
1015 latest files released from Berkeley.
1017 ----------------------------------------------------------------------
1018 Copyright information:
1020 Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
1022 Permission is granted to anyone to make or distribute verbatim copies
1023 of this document as received, in any medium, provided that the
1024 copyright notice and this permission notice are preserved,
1025 thus giving the recipient permission to redistribute in turn.
1027 Permission is granted to distribute modified versions
1028 of this document, or of portions of it,
1029 under the above conditions, provided also that they
1030 carry prominent notices stating who last changed them.
1033 version-control: never