Update.
[platform/upstream/glibc.git] / NEWS
1 GNU C Library NEWS -- history of user-visible changes.  1999-08-25
2
3 Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
4 See the end for copying conditions.
5
6 Please send GNU C library bug reports using the `glibcbug' script to
7 <bugs@gnu.org>.  Questions and suggestions should be send to
8 <bug-glibc@gnu.org>.
9 \f
10 Version 2.2
11
12 * Thorsten Kukuk added secure mode support to nscd.
13
14 * Update from Berkeley db 2.7.5.
15
16 * Wide character I/O streams implemented by Ulrich Drepper.
17
18 * functions from the extended socket API added by Ulrich Drepper.
19
20 * Functions feenableexcept and fedisableexcept to control the
21   behaviour of individual exceptions have been added by Andreas Jaeger.
22
23 * ldconfig program added by Andreas Jaeger and Jakub Jelinek.
24
25 * The resolver code has been updated from bind 8.2.2-5 which supports
26   threads.  No changes should be necessary for user programs.  The
27   integration was done by Andreas Jaeger and Adam D. Bradley.
28
29 * Compatibility code for K&R C compilers has been removed from the
30   header files.  A ISO C compiler is needed to use the library
31   (conforming to either C89 or C99 standard).
32
33 \f
34 Version 2.1.2
35
36 * bug fixes
37
38 \f
39 Version 2.1.1
40
41 * New ISO C 9x function _Exit, imaxabs, and imaxdiv are added.
42
43 * New xdr functions are added; some rpc functions are now 64bit clean.
44
45 * Fixed a number of bugs and memory leaks (especially in NIS+ code).
46
47 * Fixed known incompatibilities with glibc 2.0.
48
49 * New functions lock64, strchrnul, rawmemchr, getutmp and getutmpx.
50
51 * Optimized a number of functions (especially the ELF dynamic loader).
52
53 * Update timezone data files.
54
55 * lots of charmaps corrections
56
57 * some new locale definitions and charmaps
58
59 \f
60 Version 2.1
61
62 * Richard Henderson corrected size of struct timeval on Linux/Alpha to
63   conform to POSIX member type requirements.  Symbol versions have been
64   adjusted as needed within the library, and for direct use by applications,
65   but there is potential for problems if third-party libraries use
66   struct timeval as part of their interface.  This does not present
67   a problem for X and other "essential" system libraries.
68
69 * An additional locale model to support C++ Standard Library locale
70   model and probably more was implemented by Ulrich Drepper.
71
72 * Eric Youngdale and Ulrich Drepper implemented versioning of objects on
73   symbol level.
74
75 * Miles Bader provided the `argp' function family to support hierachical
76   command line argument parsing, layered on top of getopt.
77
78 * strtod accepts new hexadecimal floating-point format from ISO C 9X.
79
80 * printf has two new specifiers %a and %A to print hexadecimal flaoting-point
81   numbers.
82
83 * scanf recognizes the %a and %A format for scanning floating point numbers.
84
85 * the new headers <stdint.h> and <inttypes.h> from ISO C 9X provides
86   information and interfaces for the available integer types.
87
88 * about 130 new math functions were added to implement the ISO C9x math
89   library.
90
91 * the new header <complex.h> contains definitions of the complex math
92   functions from ISO C 9X.
93
94 * the new header <tgmath.h> defines generic macros to use complex or
95   real valued functions.
96
97 * Thorsten Kukuk provided an implementation for NIS+, securelevel 0, 1 and 2.
98
99 * Andreas Jaeger provided a test suite for the math library.
100
101 * Mark Kettenis implemented the utmpx interface and an utmp daemon.
102
103 * Ulrich Drepper added character set conversion functions (iconv).
104
105 * Optimized string functions have been added.
106
107 * The localedata addon is now part of glibc.
108
109 * An implementation of profiling shared libraries was added by Ulrich Drepper.
110
111 * Thorsten Kukuk and Ulrich Drepper provided an implementation for a caching
112   daemon for NSS (nscd).
113
114   Missing a better place here are some numbers on improvements.  Under
115   Linux 2.1.125 un-tar-ing the kernel sources takes
116
117                                   user  system     wall
118
119     using local files           12.19s   6.88s   22.91s
120
121     using NIS                   13.92s   8.91s   26.34s
122
123     using NIS & nscd            10.37s   7.34s   25.30s
124
125     using NIS+                  27.57s  30.37s  640.46s
126
127     using NIS+ & nscd           10.25s   7.83s   26.51s
128
129     using NIS & old nscd [1]    13.83s   8.32s   29.60s
130
131   Keep in mind that non-namelookup related operations dominate above times.
132   It was just a common complain that using NIS+ unpacking the kernel is
133   horribly slow.
134
135   [1] The old nscd implementation is not available anymore since it was
136   distributed with glibc up to version 2.0.98 and thus is now replaced.
137
138 * Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
139
140 * Mark Kettenis provided a Hesiod NSS module.
141
142 * The ELF dynamic loader knows how to process dynamic string tokens ($ORIGIN
143   and $PLATFORM) in RPATHs and similar strings (Ulrich Drepper).
144
145 * rcmd can now handle netgroups (Dick Streefland).
146
147 * A port to the ARM was contributed by Phil Blundell, Pat Beirne and Scott
148   Bambrough.
149
150 * Support for the IPv6 protocol has been added to the socket API, as per the
151   latest draft standards.
152
153 * Support for Linux 2.2 has been added.
154
155 * Interface changes relative to the latest 2.0.x release:
156 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
157 addseverity                     NEW: Unix98
158 alphasort64                     NEW: LFS
159 argp_err_exit_status            NEW: argp, GNU ext
160 argp_error                      NEW: argp, GNU ext
161 argp_failure                    NEW: argp, GNU ext
162 argp_help                       NEW: argp, GNU ext
163 argp_parse                      NEW: argp, GNU ext
164 argp_program_bug_address        NEW: argp, GNU ext
165 argp_program_version            NEW: argp, GNU ext
166 argp_program_version_hook       NEW: argp, GNU ext
167 argp_state_help                 NEW: argp, GNU ext
168 argp_usage                      NEW: argp, GNU ext
169 authdes_create                  NEW: Secure RPC
170 authdes_getucred                NEW: Secure RPC
171 authdes_pk_create               NEW: Secure RPC
172 backtrace                       NEW: GNU ext.
173 backtrace_symbols               NEW: GNU ext.
174 backtrace_symbols_fd            NEW: GNU ext.
175 cacos                           NEW: ISO C 9x
176 cacosf                          NEW: ISO C 9x
177 cacosh                          NEW: ISO C 9x
178 cacoshf                         NEW: ISO C 9x
179 cacoshl                         NEW: ISO C 9x
180 cacosl                          NEW: ISO C 9x
181 capget                          NEW: kernel
182 capset                          NEW: kernel
183 carg                            NEW: ISO C 9x
184 cargf                           NEW: ISO C 9x
185 cargl                           NEW: ISO C 9x
186 casin                           NEW: ISO C 9x
187 casinf                          NEW: ISO C 9x
188 casinh                          NEW: ISO C 9x
189 casinhf                         NEW: ISO C 9x
190 casinhl                         NEW: ISO C 9x
191 casinl                          NEW: ISO C 9x
192 catan                           NEW: ISO C 9x
193 catanf                          NEW: ISO C 9x
194 catanh                          NEW: ISO C 9x
195 catanhf                         NEW: ISO C 9x
196 catanhl                         NEW: ISO C 9x
197 catanl                          NEW: ISO C 9x
198 cbc_crypt                       NEW: Secure RPC
199 ccos                            NEW: ISO C 9x
200 ccosf                           NEW: ISO C 9x
201 ccosh                           NEW: ISO C 9x
202 ccoshf                          NEW: ISO C 9x
203 ccoshl                          NEW: ISO C 9x
204 ccosl                           NEW: ISO C 9x
205 cexp                            NEW: ISO C 9x
206 cexpf                           NEW: ISO C 9x
207 cexpl                           NEW: ISO C 9x
208 cimag                           NEW: ISO C 9x
209 cimagf                          NEW: ISO C 9x
210 cimagl                          NEW: ISO C 9x
211 clearerr_locked                 REMOVED
212 clntunix_create                 NEW: sunrpc ext
213 clog                            NEW: ISO C 9x
214 clog10                          NEW: ISO C 9x
215 clog10f                         NEW: ISO C 9x
216 clog10l                         NEW: ISO C 9x
217 clogf                           NEW: ISO C 9x
218 clogl                           NEW: ISO C 9x
219 conj                            NEW: ISO C 9x
220 conjf                           NEW: ISO C 9x
221 conjl                           NEW: ISO C 9x
222 cpow                            NEW: ISO C 9x
223 cpowf                           NEW: ISO C 9x
224 cpowl                           NEW: ISO C 9x
225 cproj                           NEW: ISO C 9x
226 cprojf                          NEW: ISO C 9x
227 cprojl                          NEW: ISO C 9x
228 creal                           NEW: ISO C 9x
229 crealf                          NEW: ISO C 9x
230 creall                          NEW: ISO C 9x
231 creat64                         NEW: LFS
232 csin                            NEW: ISO C 9x
233 csinf                           NEW: ISO C 9x
234 csinh                           NEW: ISO C 9x
235 csinhf                          NEW: ISO C 9x
236 csinhl                          NEW: ISO C 9x
237 csinl                           NEW: ISO C 9x
238 csqrt                           NEW: ISO C 9x
239 csqrtf                          NEW: ISO C 9x
240 csqrtl                          NEW: ISO C 9x
241 ctan                            NEW: ISO C 9x
242 ctanf                           NEW: ISO C 9x
243 ctanh                           NEW: ISO C 9x
244 ctanhf                          NEW: ISO C 9x
245 ctanhl                          NEW: ISO C 9x
246 ctanl                           NEW: ISO C 9x
247 des_setparity                   NEW: Secure RPC
248 ecb_crypt                       NEW: Secure RPC
249 endutxent                       NEW: Unix98
250 exp10                           NEW: ISO C 9x
251 exp10f                          NEW: ISO C 9x
252 exp10l                          NEW: ISO C 9x
253 exp2                            NEW: ISO C 9x
254 exp2f                           NEW: ISO C 9x
255 exp2l                           NEW: ISO C 9x
256 fattach                         NEW: STREAMS
257 fdetach                         NEW: STREAMS
258 fdim                            NEW: ISO C 9x
259 fdimf                           NEW: ISO C 9x
260 fdiml                           NEW: ISO C 9x
261 feclearexcept                   NEW: ISO C 9x
262 fegetenv                        NEW: ISO C 9x
263 fegetexceptflag                 NEW: ISO C 9x
264 fegetround                      NEW: ISO C 9x
265 feholdexcept                    NEW: ISO C 9x
266 feof_locked                     REMOVED
267 feraiseexcept                   NEW: ISO C 9x
268 ferror_locked                   REMOVED
269 fesetenv                        NEW: ISO C 9x
270 fesetexceptflag                 NEW: ISO C 9x
271 fesetround                      NEW: ISO C 9x
272 fetestexcept                    NEW: ISO C 9x
273 feupdateenv                     NEW: ISO C 9x
274 fflush_locked                   REMOVED
275 ffsl                            NEW: GNU ext.
276 ffsll                           NEW: GNU ext.
277 fgetpos64                       NEW: LFS
278 fgets_unlocked                  NEW: GNU ext.
279 fileno_locked                   REMOVED
280 fma                             NEW: ISO C 9x
281 fmaf                            NEW: ISO C 9x
282 fmal                            NEW: ISO C 9x
283 fmax                            NEW: ISO C 9x
284 fmaxf                           NEW: ISO C 9x
285 fmaxl                           NEW: ISO C 9x
286 fmin                            NEW: ISO C 9x
287 fminf                           NEW: ISO C 9x
288 fminl                           NEW: ISO C 9x
289 fmtmsg                          NEW: Unix98
290 fopen64                         NEW: LFS
291 fputc_locked                    REMOVED
292 fputs_unlocked                  NEW: GNU ext.
293 fread_unlocked                  NEW: GNU ext.
294 freopen64                       NEW: LFS
295 fseeko                          NEW: Unix98
296 fsetpos64                       NEW: LFS
297 fstatfs64                       NEW: LFS
298 fstatvfs                        NEW: Unix98
299 fstatvfs64                      NEW: LFS
300 ftello                          NEW: Unix98
301 ftello64                        NEW: LFS
302 ftruncate64                     NEW: LFS
303 ftw64                           NEW: LFS
304 fwrite_unlocked                 NEW: GNU ext.
305 gai_strerror                    NEW: IPv6
306 gamma_r                         REMOVED
307 gammaf_r                        REMOVED
308 gammal_r                        REMOVED
309 getchar_locked                  REMOVED
310 getdate                         NEW: Unix98
311 getdate_err                     NEW: Unix98
312 getdate_r                       NEW: GNU ext.
313 getmsg                          NEW: STREAMS
314 getnameinfo                     NEW: IPv6
315 getnetname                      NEW: Secure RPC
316 getpmsg                         NEW: STREAMS
317 getpt                           NEW: Unix98 PTY
318 getrlimit64                     NEW: LFS
319 getutxent                       NEW: Unix98
320 getutxid                        NEW: Unix98
321 getutxline                      NEW: Unix98
322 glob64                          NEW: GNU ext.
323 globfree64                      NEW: GNU ext.
324 gnu_get_libc_release            NEW: GNU ext.
325 gnu_get_libc_version            NEW: GNU ext.
326 grantpt                         NEW: Unix98 PTY
327 host2netname                    NEW: Secure RPC
328 iconv                           NEW: iconv
329 iconv_close                     NEW: iconv
330 iconv_open                      NEW: iconv
331 if_freenameindex                NEW: IPv6
332 if_indextoname                  NEW: IPv6
333 if_nameindex                    NEW: IPv6
334 if_nametoindex                  NEW: IPv6
335 in6addr_any                     NEW: IPv6
336 in6addr_loopback                NEW: IPv6
337 inet6_isipv4mapped              NEW: IPv6
338 isastream                       NEW: STREAMS
339 iswblank                        NEW: GNU ext.
340 key_decryptsession              NEW: Secure RPC
341 key_decryptsession_pk           NEW: Secure RPC
342 key_encryptsession              NEW: Secure RPC
343 key_encryptsession_pk           NEW: Secure RPC
344 key_gendes                      NEW: Secure RPC
345 key_get_conv                    NEW: Secure RPC
346 key_secretkey_is_set            NEW: Secure RPC
347 key_setnet                      NEW: Secure RPC
348 key_setsecret                   NEW: Secure RPC
349 llrint                          NEW: ISO C 9x
350 llrintf                         NEW: ISO C 9x
351 llrintl                         NEW: ISO C 9x
352 llround                         NEW: ISO C 9x
353 llroundf                        NEW: ISO C 9x
354 llroundl                        NEW: ISO C 9x
355 log2                            NEW: ISO C 9x
356 log2f                           NEW: ISO C 9x
357 log2l                           NEW: ISO C 9x
358 lrint                           NEW: ISO C 9x
359 lrintf                          NEW: ISO C 9x
360 lrintl                          NEW: ISO C 9x
361 lround                          NEW: ISO C 9x
362 lroundf                         NEW: ISO C 9x
363 lroundl                         NEW: ISO C 9x
364 lseek64                         NEW: LFS
365 makecontext                     NEW: Unix98
366 mempcpy                         NEW: GNU ext.
367 mmap64                          NEW: LFS
368 moncontrol                      REMOVED
369 modify_ldt                      NEW: kernel
370 nan                             NEW: ISO C 9x
371 nanf                            NEW: ISO C 9x
372 nanl                            NEW: ISO C 9x
373 nearbyint                       NEW: ISO C 9x
374 nearbyintf                      NEW: ISO C 9x
375 nearbyintl                      NEW: ISO C 9x
376 netname2host                    NEW: Secure RPC
377 netname2user                    NEW: Secure RPC
378 nexttoward                      NEW: ISO C 9x
379 nexttowardf                     NEW: ISO C 9x
380 nexttowardl                     NEW: ISO C 9x
381 nftw                            NEW: Unix98
382 nftw64                          NEW: LFS
383 open64                          NEW: LFS
384 passwd2des                      NEW: Secure RPC
385 pow10                           NEW: GNU ext.
386 pow10f                          NEW: GNU ext.
387 pow10l                          NEW: GNU ext.
388 pread                           NEW: Unix98
389 pread64                         NEW: LFS
390 printf_size                     NEW: GNU ext.
391 printf_size_info                NEW: GNU ext.
392 profil_counter                  REMOVED
393 pthread_mutexattr_getkind_np    REPLACED
394 pthread_mutexattr_setkind_np    REPLACED
395 ptsname                         NEW: Unix98 PTY
396 ptsname_r                       NEW: Unix98 PTY
397 putc_locked                     REMOVED
398 putchar_locked                  REMOVED
399 putgrent                        NEW: GNU ext.
400 putmsg                          NEW: STREAMS
401 putpmsg                         NEW: STREAMS
402 pututxline                      NEW: Unix98
403 pwrite                          NEW: Unix98
404 pwrite64                        NEW: LFS
405 readdir64                       NEW: LFS
406 readdir64_r                     NEW: LFS
407 remquo                          NEW: ISO C 9x
408 remquof                         NEW: ISO C 9x
409 remquol                         NEW: ISO C 9x
410 round                           NEW: ISO C 9x
411 roundf                          NEW: ISO C 9x
412 roundl                          NEW: ISO C 9x
413 rtime                           NEW: GNU ext.
414 scalbln                         NEW: ISO C 9x
415 scalblnf                        NEW: ISO C 9x
416 scalblnl                        NEW: ISO C 9x
417 scandir64                       NEW: LFS
418 sendfile                        NEW: kernel
419 setcontext                      NEW: Unix98
420 setrlimit64                     NEW: LFS
421 setutxent                       NEW: Unix98
422 sighold                         NEW: Unix98
423 sigignore                       NEW: Unix98
424 sigqueue                        NEW: POSIX.1b
425 sigrelse                        NEW: Unix98
426 sigset                          NEW: POSIX.1b
427 sigtimedwait                    NEW: POSIX.1b
428 sigwaitinfo                     NEW: POSIX.1b
429 sincos                          NEW: GNU ext.
430 sincosf                         NEW: GNU ext.
431 sincosl                         NEW: GNU ext.
432 statfs64                        NEW: LFS
433 statvfs                         NEW: Unix98
434 statvfs64                       NEW: LFS
435 strcasestr                      NEW: GNU ext.
436 strtoimax                       NEW: ISO C 9x
437 strtoumax                       NEW: ISO C 9x
438 strverscmp                      NEW: GNU ext.
439 svcauthdes_stats                NEW: Secure RPC
440 svcunix_create                  NEW: sunrpc etx
441 svcunixfd_create                NEW: sunrpc ext
442 swapcontext                     NEW: Unix98
443 tcgetsid                        NEW: Unix98 PTY
444 tdestroy                        NEW: GNU ext.
445 tgamma                          NEW: ISO C 9x
446 tgammaf                         NEW: ISO C 9x
447 tgammal                         NEW: ISO C 9x
448 tmpfile64                       NEW: LFS
449 trunc                           NEW: ISO C 9x
450 truncate64                      NEW: LFS
451 truncf                          NEW: ISO C 9x
452 truncl                          NEW: ISO C 9x
453 umount2                         NEW: kernel
454 unlockpt                        NEW: Unix98 PTY
455 updwtmpx                        NEW: Unix98
456 user2netname                    NEW: Secure RPC
457 utmpxname                       NEW: Unix98
458 versionsort                     NEW: GNU ext.
459 versionsort64                   NEW: GNU ext.
460 waitid                          NEW: Unix98
461 wcscasecmp                      NEW: GNU ext.
462 wcsncasecmp                     NEW: GNU ext.
463 wcsnlen                         NEW: GNU ext.
464 wcstoimax                       NEW: ISO C 9x
465 wcstoll                         NEW: ISO C 9x
466 wcstoull                        NEW: ISO C 9x
467 wcstoumax                       NEW: ISO C 9x
468 wcswcs                          NEW: Unix98
469 wordexp                         NEW: POSIX.2
470 wordfree                        NEW: POSIX.2
471 write_profiling                 REMOVED
472 xdecrypt                        NEW: Secure RPC
473 xdr_authdes_cred                NEW: Secure RPC
474 xdr_authdes_verf                NEW: Secure RPC
475 xdr_cryptkeyarg                 NEW: Secure RPC
476 xdr_cryptkeyarg2                NEW: Secure RPC
477 xdr_cryptkeyres                 NEW: Secure RPC
478 xdr_getcredres                  NEW: Secure RPC
479 xdr_key_netstarg                NEW: Secure RPC
480 xdr_key_netstres                NEW: Secure RPC
481 xdr_keybuf                      NEW: Secure RPC
482 xdr_keystatus                   NEW: Secure RPC
483 xdr_netnamestr                  NEW: Secure RPC
484 xdr_sizeof                      NEW: Secure RPC
485 xdr_unixcred                    NEW: sunrpc ext
486 xencrypt                        NEW: Secure RPC
487 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
488 \f
489 Version 2.0.6
490
491 * more bug fixes
492
493 \f
494 Version 2.0.5
495
496 * more bug fixes
497
498 * inet_ntoa is thread-safe
499
500 * updwtmp is moved from libutil to libc
501
502 * rewrite of cbrt function
503
504 * update of timezone data
505 \f
506 Version 2.0.4
507
508 * more bug fixes
509 \f
510 Version 2.0.3
511
512 * more bug fixes
513 \f
514 Version 2.0.2
515
516 * more bug fixes
517
518 * add atoll function
519
520 * fix complex problems in Berkeley DB code
521
522 * fix math functions
523 \f
524 Version 2.0.1
525
526 * fixed lots of header problems (especially Linux/GNU specific)
527
528 * dynamic loader preserves all registers
529
530 * Roland McGrath provided support for handling of auxiliary objects in
531   the ELF dynamic loader.
532
533 * support for parallel builds is improved
534 \f
535 Version 2.0
536
537 * GNU extensions are no longer declared by default.  To enable them you
538   must define the macro `_GNU_SOURCE' in your program or compile with
539   `-D_GNU_SOURCE'.
540
541 * The library has changed from using GNU ld symbol aliases to using weak
542   symbols where available.  The ELF object file format supports weak
543   symbols; GNU ld also supports weak symbols in the a.out format.  (There
544   is also now support for other GNU ld extensions in ELF.  Use the
545   `--with-elf' option to configure to indicate you have ELF, and
546   `--with-gnu-ld' if using GNU ld.)  This change resulted in the deletion
547   of many files which contained only symbol aliases, reducing the size of
548   the source and the compiled library; many other files were renamed to
549   less cryptic names previously occupied by the symbol alias files.
550   There is a new header file <elf.h> for programs which operate on
551   files in the ELF format.
552
553 * Converted to Autoconf version 2, so `configure' has more options.
554   Run `configure --help' to see the details.
555
556 * The library can now be configured to build profiling, highly-optimized
557   (but undebuggable), and/or shared libraries (ELF with GNU ld only).  The
558   `--enable-profile', `--enable-omitfp', and `--enable-shared' options to
559   `configure' enable building these extra libraries.  The shared library is
560   built by default when using both ELF and GNU ld.  When shared libraries
561   are enabled, the new library `-ldl' is available for arbitrary run-time
562   loading of shared objects; its interface is defined in <dlfcn.h>.  The
563   new header file <link.h> gives access to the internals of the run-time
564   dynamic linker, `ld.so'.  The shell script `ldd' is similar to the
565   application of same name on other systems and it provides information
566   about dynamically linked binaries.
567
568 * The C library now provides the run-time support code for profiling
569   executables compiled with `-pg'.  Programs can control the profiling code
570   through the interface in <sys/gmon.h>.  The `gmon.out' files written by
571   the GNU C library can be read only by GNU `gprof' (from GNU binutils);
572   the support for this file format was contributed by David Mosberger-Tang.
573
574 * The math code has been replaced with a math library based on fdlibm from
575   Sun, and modified by JT Conklin and Ulrich Drepper with i387 support, by
576   Ian Taylor with `float' functions and by Ulrich Drepper with `long double'
577   functions.  The math functions now reside in a separate library,  so
578   programs using them will need to use `-lm' their linking commands.
579
580 * John C. Bowman contributed optimized ix87 assembler inline functions.
581
582 * Ulrich Drepper has contributed support for an `/etc/nsswitch.conf'
583   mechanism similar to that found in Solaris 2.  This is now used for the
584   group, passwd, hosts, networks, services, protocols, rpc, ethers,
585   shadow, netgroup, publickey, and alias databases.  The `nsswitch.conf'
586   file controls what services are used for each individual database.  This
587   works by loading shared libraries with names specified in `nsswitch.conf',
588   so service modules can be changed or added at any time without even
589   relinking any program.  Currently there are the file, db, and NIS based
590   NSS services available.
591
592 * The new functions `strtoq' and `strtouq' parse integer values from
593   strings, like `strtol' and `strtoul', but they return `long long int' and
594   `unsigned long long int' values, respectively (64-bit quantities).
595
596 * The new functions `strtof' and `strtold' parse floating-point values from
597   strings, like `strtod', but they return `float' and `long double' values,
598   respectively (on some machines `double' and `long double' are the same).
599
600 * Ulrich Drepper has contributed new implementations of the floating-point
601   printing and reading code used in the `printf' family of functions and
602   `strtod', `strtof', and `strtold'.  These new functions are perfectly
603   accurate, and much faster than the old ones.
604
605 * The implementation of the POSIX locale model was completely rewritten by
606   Ulrich Drepper.  This includes the new programs `localedef' and `locale'
607   to compile the POSIX locale definition.
608
609 * The former dummy implementations of the strcoll and strxfrm function are
610   now replaced by fully functional code contributed by Ulrich Drepper.  The
611   collation information comes from the POSIX locale definitions.
612
613 * The new header <langinfo.h> defines an interface for accessing
614   various locale-dependent data (using the locale chosen with `setlocale').
615
616 * Ulrich Drepper has contributed a new suite of functions for operation on
617   wide-character and multibyte-character strings, in <wchar.h>;
618   and classification and case conversion of wide characters, in <wctype.h>.
619   These new functions are conforming to the ISO C, Amendement 1 specification.
620
621 * There is now a second implementation of the standard I/O library available.
622   It comes from GNU libg++ as was written by Per Bothner, heavily modified
623   by Hongjiu Lu and made thread safe by Ulrich Drepper.
624
625 * You can now use positional parameter specifications in format strings
626   for the `printf' and `scanf' families of functions.  For example,
627   `printf ("Number %2$d, Mr %1$s\n", "Jones", 6);'' prints
628   ``Number 6, Mr Jones''.  This is mainly useful when providing different
629   format strings for different languages, whose grammars may dictate
630   different orderings of the values being printed.  To support this
631   feature, the interface for `register_printf_handler' has changed; see
632   the header file <printf.h> for details.
633
634 * The `printf' and `scanf' families of functions now understand a new
635   formatting flag for numeric conversions: the ' flag (e.g. %'d or %'f) says
636   to group numbers as indicated by the locale; for `scanf' and friends, this
637   says to accept as valid only a number with all the proper grouping
638   separators in the right places.  In the default "C" locale, numbers are
639   not grouped; but locales for specific countries will define the usual
640   conventions (i.e. separate thousands with `,' in the US locale).
641
642 * The pgrp functions have been regularized, slightly incompatibly but much
643   less confusingly.  The core functions are now `getpgid' and `setpgid',
644   which take arguments for the PID to operate on; the POSIX.1 `getpgrp' (no
645   argument) and BSD `setpgrp' (identical to `setpgid') functions are
646   provided for compatibility.  There is no longer an incompatible `getpgrp'
647   with an argument declared under _BSD_SOURCE; no BSD code uses it.
648
649 * The new header file <fts.h> and suite of functions simplify programs that
650   operate on directory trees.  This code comes from 4.4 BSD.
651
652 * The resolver code has been updated from the BIND 4.9.5-P1 release.
653   Parts of the code were heavily modified by Ulrich Drepper to fit in the
654   NSS scheme used in glibc.
655
656 * There is a new malloc debugging hook `__memalign_hook'.
657
658 * There are new typedefs `ushort' for `unsigned short int' and `uint' for
659   `unsigned int' in <sys/types.h>.  These are for compatibility only and
660   their use is discouraged.
661
662 * The `-lmcheck' library to enable standard malloc debugging hooks is now
663   done differently, so that it works even without GNU ld.
664
665 * New function `euidaccess' checks allowed access to a file like `access',
666   but using the effective IDs instead of the real IDs.
667
668 * The time zone data files have been updated for the latest and greatest
669   local time conventions of the countries of the world.
670
671 * The new function `dirfd' extracts the file descriptor used by a DIR stream;
672   see <dirent.h>.
673
674 * The new functions `ecvt', `fcvt', and `gcvt' provide an obsolete interface
675   for formatting floating-point numbers.  They are provided only for
676   compatibility; new programs should use `sprintf' instead.  There are
677   also equivalent function for the `long double' floating-point type and
678   all functions also exist in a reentrant form.
679
680 * The new auxiliary library `-lutil' from 4.4 BSD contains various
681   functions for maintaining the login-record files (primarily of use to
682   system programs such as `login'), and convenient functions for
683   allocating and initializing a pseudo-terminal (pty) device.
684
685 * Ulrich Drepper has contributed new support for System V style
686   shared memory and IPC on systems that support it.
687
688 * Ulrich Drepper has contributed several miscellaneous new functions found
689   in System V: The `hsearch' family of functions provide an effective
690   implementation of hash tables; `a64l' and `l64a' provide a very simple
691   binary to ASCII mapping; `drand48' and friends provide a 48-bit random
692   number generator.
693
694 * Ulrich Drepper has contributed new reentrant counterparts for the
695   `random' and `hsearch' families of functions; `random_r', `hsearch_r', etc.
696
697 * Ulrich Drepper has contributed new, highly-optimized versions of several
698   string functions for the i486/Pentium family of processors.
699
700 * Ulrich Drepper has updated the Linux-specific code, based largely
701   on work done in Hongjiu Lu's version of GNU libc for Linux.
702   The GNU library now supports Linux versions 2.0.10 and later,
703   using the ELF object file format (i[3456]86-*-linux).
704
705 * Andreas Schwab has ported the C library to Linux/m68k (m68k-*-linux).
706
707 * David Mosberger-Tang and Richard Henderson have ported the C library
708   to Linux/Alpha (alpha-*-linux).  Richard Henderson contributed the
709   dynamic linking support for ELF/Alpha.
710
711 * Richard Henderson contributed several Alpha optimized assembler function
712   for arithmetic and string handling.
713
714 * Ulrich Drepper has contributed a new set of message catalog functions to
715   support multiple languages using the <libintl.h> interface, for use with
716   his new package GNU gettext.  Translation volunteers have contributed
717   catalogs of the library's messages in Spanish, German, and Korean.
718
719 * For compatibility with XPG4, Ulrich Drepper has contributed the `gencat'
720   program and the `catgets' function for reading the catalog files it
721   creates.  (The <libintl.h> interface is preferred; we include the
722   <nl_types.h> interface using `catgets' only for source compatibility with
723   programs already written to use it.)
724
725 * New header file <values.h> gives SVID-compatible names for <limits.h>
726   constants.
727
728 * Various new macros, declarations, and small header files for compatibility
729   with 4.4 BSD.
730
731 * New function `group_member' is a convenient way to check if a process has
732   a given effective group ID.
733
734 * When using GCC 2.7 and later, the socket functions are now declared in a
735   special way so that passing an argument of type `struct sockaddr_in *',
736   `struct sockaddr_ns *', or `struct sockaddr_un *' instead of the generic
737   `struct sockaddr *' type, does not generate a type-clash warning.
738
739 * New function `error' declared in header file <error.h> is a convenient
740   function for printing error messages and optionally exiting; this is the
741   canonical function used in GNU programs.  The new functions `err', `warn',
742   and friends in header file <err.h> are the canonical 4.4 BSD interface for
743   doing the same thing.
744
745 * The <glob.h> interface has several new flags from 4.4 BSD that extend the
746   POSIX.2 `glob' function to do ~ and {...} expansion.
747
748 * New function `unsetenv' complements `setenv' for compatibility with 4.4 BSD.
749   `clearenv' which is used in POSIX.9 is also available.
750
751 * New function `getsid' returns session ID number on systems that support it.
752
753 * We have incorporated the 4.4 BSD `db' library (version 1.85).  New header
754   files <db.h> and <mpool.h> provide a rich set of functions for several
755   types of simple databases stored in memory and in files, and <ndbm.h> is
756   an old `ndbm'-compatible interface using the `db' functions.  Link with
757   `-ldb' to get these functions.
758
759 * New macro `strdupa' copies a string like `strdup', but uses local stack
760   space from `alloca' instead of dynamic heap space from `malloc'.
761
762 * New function `strnlen' is like `strlen' but searches only a given maximum
763   number of characters for the null terminator.  `stpncpy', `strndup' and
764   `strndupa' are similar variants for the `stpcpy', `strdup' and `strdupa'
765   function.
766
767 * New function `statfs' in header <sys/statfs.h>.
768
769 * The new <argz.h> and <envz.h> interfaces contributed by Miles Bader
770   provide convenient functions for operating on blocks of null-terminated
771   strings.
772
773 * A new suite of functions in <utmp.h> handle all the details of reading
774   and writing the utmp file.
775
776 * An implementation of the NIS/YP(tm) based NSS service was contributed by
777   Thorsten Kukuk.
778
779 * Paul Eggert and Ulrich Drepper modified the `strftime' function to be
780   completely POSIX compliant and also implemented the extended functionality
781   to handle alternate digit representation and alternate era date formats.
782
783 * Ulrich Drepper provided an implementation of the `strptime' function
784   defined in XPG4.2 which transforms a string into a `struct tm' value.
785
786 * Paul Eggert provided the tzselect shell script as part of the timezone
787   code.  The shell script makes it easy to select the correct timezone
788   specification.
789
790 * The implementation of the malloc family of functions is completely replaced
791   by a new implementation by Doug Lea with many improvements by Wolfram Gloger.
792   The implementation uses the mmap function (if available) and it is
793   optimized for the use in multi threaded programs.
794
795 * Ulrich Drepper contributed a MD5 "encryption" for the crypt family of
796   functions.  This new functionality is usable by specifying a special
797   salt string and it is compatible with implementation on *BSD systems.
798
799 * Lots of functions from the XPG4.2 standard were added by Ulrich Drepper:
800   `getsubopt' to handle second level command line options, `bsd_signal'
801   to access BSD style `signal' functionality, the obsolete `regexp' style
802   expression matcher.
803
804 * the `lchown' function is available on system which support this
805   functionality.
806
807 * The implementation of the shadow password handling function was contributed
808   by Ulrich Drepper.
809
810 * David Mosberger-Tang changed the SunRPC implementation to be 64bit safe.
811
812 * POSIX.1g support was added.  The <sys/select.h> header is available,
813   `isfdtype' and `pselect' are implemented.  Craig Metz contributed an
814   implementation of `getaddrinfo'.
815 \f
816 Version 1.09
817
818 * For cross-compilation you should now set `BUILD_CC' instead of `HOST_CC'.
819
820 * New header file <fstab.h> and new functions `getfsspec', `getfsent' and
821   friends, for parsing /etc/fstab.  This code comes from 4.4 BSD.
822
823 * The new function `daemon' from 4.4 BSD is useful for server programs that
824   want to put themselves in the background.
825
826 * Joel Sherrill has contributed support for several standalone boards that
827   run without an operating system.
828
829 * `printf', `scanf' and friends now accept a `q' type modifier for long
830   long int as well as `ll'.  Formats using these might be `%qu' or `%lld'.
831
832 * All of the code taken from BSD (notably most of the math and networking
833   routines) has been updated from the BSD 4.4-Lite release.
834
835 * The resolver code has been updated from the BIND-4.9.3-BETA9 release.
836
837 * The new functions `getdomainname' and `setdomainname' fetch or change the
838   YP/NIS domain name.  These are system calls which exist on systems which
839   have YP (aka NIS).
840
841 * The time zone data files have been updated for the latest international
842   conventions.
843
844 * The SunRPC programs `portmap' and `rpcinfo' are now installed in
845   $(sbindir) (usually /usr/local/sbin) instead of $(bindir).
846 \f
847 Version 1.08
848
849 * The C library now includes support for Sun RPC, from Sun's free
850   RPCSRC-4.0 distribution.  The `portmap', `rpcinfo', and `rpcgen' programs
851   are included.  (There is still no support for YP.)
852
853 * Tom Quinn has contributed a port of the C library to SGI machines running
854   Irix 4 (mips-sgi-irix4).
855
856 * The new `lockf' function is a simplified interface to the locking
857   facilities of `fcntl', included for compatibility.
858
859 * New time functions `timegm', `timelocal', and `dysize' for compatibility.
860
861 * New header file <sys/timeb.h> and new function `ftime' for compatibility.
862
863 * New header files <poll.h> and <sys/poll.h> and new function `poll' for
864   compatibility.
865
866 * The error message printed by `assert' for a failed assertion now includes
867   the name of the program (if using GNU ld) and the name of the calling
868   function (with versions of GCC that support this).
869
870 * The `psignal' function is now declared in <signal.h>, not <stdio.h>.
871
872 * The library now includes the <sys/mman.h> header file and memory
873   management functions `mmap', `munmap', `mprotect', `msync', and
874   `madvise', on systems that support those facilities.
875
876 * The interface for `mcheck' has changed slightly: the function called to
877   abort the program when an allocation inconsistency is detected now takes
878   an argument that indicates the type of failure.  The new function
879   `mprobe' lets you request a consistency check for a particular block at
880   any time (checks are normally done only when you call `free' or `realloc'
881   on a block).
882
883 * It is now possible to easily cross-compile the C library, building on one
884   system a library to run on another machine and/or operating system.  All
885   you need to do is set the variable `HOST_CC' in `configparms' to the
886   native compiler for programs to run on the machine you are building on (a
887   few generator programs are used on Unix systems); set `CC' to the
888   cross-compiler.
889
890 * The new function `fexecve' (only implemented on the GNU system) executes
891   a program file given a file descriptor already open on the file.
892 \f
893 Version 1.07
894
895 * Brendan Kehoe has contributed most of a port to the DEC Alpha
896   running OSF/1 (alpha-dec-osf1).  He says it is 75% complete.
897
898 * You can set the variable `libprefix' in `configparms' to specify a prefix
899   to be prepended to installed library files; this makes it easy to install
900   the GNU C library to be linked as `-lgnuc' or whatever.
901
902 * The new `stpncpy' is a cross between `stpcpy' and `strncpy': It
903   copies a limited number of characters from a string, and returns the
904   address of the last character written.
905
906 * You no longer need to check for whether the installed `stddef.h' is
907   compatible with the GNU C library.  configure now checks for you.
908
909 * You can now define a per-stream `fileno' function to convert the
910   stream's cookie into an integral file descriptor.
911
912 * ``malloc (0)'' no longer returns a null pointer.  Instead, it
913   allocates zero bytes of storage, and returns a unique pointer which
914   you can pass to `realloc' or `free'.  The behavior is undefined if
915   you dereference this pointer.
916
917 * The C library now runs on Sony NEWS m68k machines running either
918   NewsOS 3 or NewsOS 4.
919
920 * The new `syscall' function is a system-dependent primitive function
921   for invoking system calls.  It has the canonical behavior on Unix
922   systems, including unreliable return values for some calls (such as
923   `pipe', `fork' and `getppid').
924
925 * The error code `EWOULDBLOCK' is now obsolete; it is always defined
926   to `EAGAIN', which is the preferred name.  On systems whose kernels
927   use two distinct codes, the C library now translates EWOULDBLOCK to
928   EAGAIN in every system call function.
929 \f
930 Version 1.06
931
932 * The GNU C Library Reference Manual is now distributed with the library.
933   `make dvi' will produce a DVI file of the printed manual.
934   `make info' will produce Info files that you can read on line using C-h i
935   in Emacs or the `info' program.
936   Please send comments on the manual to bug-glibc-manual@gnu.org.
937
938 * The library now supports SVR4 on i386s (i386-unknown-sysv4).
939
940 * Brendan Kehoe has contributed a port to Sun SPARCs running Solaris 2.
941
942 * Jason Merrill has contributed a port to the Sequent Symmetry running
943   Dynix version 3 (i386-sequent-dynix).
944
945 * The library has been ported to i386s running SCO 3.2.4 (also known as SCO
946   ODT 2.0; i386-unknown-sco3.2.4) or SCO 3.2 (i386-unknown-sco3.2).
947
948 * New function `memory_warnings' lets you arrange to get warnings when
949   malloc is running out of memory to allocate, like Emacs gives you.
950
951 * The C library now contains the relocating allocator used in Emacs 19 for
952   its editing buffers.  This allocator (ralloc) minimizes allocation
953   overhead and fragmentation by moving allocated regions around whenever it
954   needs to.  You always refer to a ralloc'd region with a "handle" (a
955   pointer to a pointer--an object of type `void **').
956
957 * There is a new `printf' format: `%m' gives you the string corresponding
958   to the error code in `errno'.
959
960 * In `scanf' formats, you can now use `%as' or `%a[' to do the normal `%s'
961   or `%[' conversion, but instead of filling in a fixed-sized buffer you
962   pass, the `a' modifier says to fill in a `char **' you pass with a
963   malloc'd string.
964
965 * The `fnmatch' function supports the new flag bits `FNM_LEADING_DIR' and
966   `FNM_CASEFOLD'.  `FNM_LEADING_DIR' lets a pattern like `foo*' match a
967   name like `foo/bar'.  `FNM_CASEFOLD' says to ignore case in matching.
968
969 * `mkstemp' is a traditional Unix function to atomically create and open a
970   uniquely-named temporary file.
971 \f
972 Version 1.05
973
974 * The standard location for the file that says what the local timezone is
975   has changed again.  It is now `/usr/local/etc/localtime' (or more
976   precisely, `${prefix}/etc/localtime') rather than `/etc/localtime'.
977
978 * The distribution no longer contains any files with names longer than 14
979   characters.
980
981 * `struct ttyent' has two new flag bits: TTY_TRUSTED and TTY_CONSOLE.
982   These are set by the new `trusted' and `console' keywords in `/etc/ttys'.
983
984 * New functions `ttyslot' and `syslog' from 4.4 BSD.
985 \f
986 Version 1.04
987
988 * The configuration process has changed quite a bit.  The `configure'
989   script is now used just like the configuration scripts for other GNU
990   packages.  The `sysdeps' directory hierarchy is much rearranged.
991   The file `INSTALL' explains the new scheme in detail.
992
993 * The header files no longer need to be processed into ANSI C and
994   traditional C versions.  There is just one set of files to install, and
995   it will work with ANSI or old C compilers (including `gcc -traditional').
996
997 * Brendan Kehoe and Ian Lance Taylor have ported the library to the
998   MIPS DECStation running Ultrix 4.
999
1000 * The Sun 4 startup code (crt0) can now properly load SunOS 4 shared libraries.
1001   Tom Quinn contributed the initial code.  The GNU C library can NOT yet be
1002   made itself into a shared library.
1003
1004 * Yet further improved support for the i386, running 4.3 BSD-like systems
1005   (such as Mach 3 with the Unix single-server), or System V.
1006
1007 * New function `strncasecmp' to do case-insensitive string comparison
1008   with limited length.
1009
1010 * New function `strsep' is a reentrant alternative to `strtok'.
1011
1012 * New functions `scandir' and `alphasort' for searching directories.
1013
1014 * New function `setenv' is a better interface to `putenv'.
1015
1016 * Ian Lance Taylor has contributed an implementation of the SVID `ftw'
1017   function for traversing a directory tree.
1018
1019 * The GNU obstack package is now also part of the C library.
1020   The new function `open_obstack_stream' creates a stdio stream that
1021   writes onto an obstack; `obstack_printf' and `obstack_vprintf' do
1022   formatted output directly to an obstack.
1023
1024 * Miscellaneous new functions: reboot, nice, sigaltstack (4.4 BSD only),
1025   cfmakeraw, getusershell, getpass, swab, getttyent, seteuid, setegid.
1026
1027 * `FNM_FILE_NAME' is another name for `FNM_PATHNAME', used with `fnmatch'.
1028
1029 * The new functions `strfry' and `memfrob' do mysterious and wonderful
1030   things to your strings.
1031
1032 * There are some new test programs: test-fseek, testmb, and testrand.
1033
1034 * Some work has been done to begin porting the library to 4.4 BSD and Linux.
1035   These ports are not finished, but are a good starting place for really
1036   supporting those systems.
1037
1038 * `/etc/localtime' is now the standard location for the file that says what
1039   the local timezone is, rather than `/usr/local/lib/zoneinfo/localtime'.
1040   This follows the general principle that `/etc' is the place for all local
1041   configuration files.
1042
1043 * The C library header files now use `extern "C"' when used by the C++
1044   compiler, so the C library should now work with C++ code.
1045
1046 * The header file <bstring.h> is gone.  <string.h> now declares bcopy,
1047   bcmp, bzero, and ffs.
1048
1049 * Mike Haertel (of GNU e?grep and malloc fame) has written a new sorting
1050   function which uses the `merge sort' algorithm, and is said to be
1051   significantly faster than the old GNU `qsort' function.  Merge sort is
1052   now the standard `qsort' function.  The new algorithm can require a lot
1053   of temporary storage; so, the old sorting function is called when the
1054   required storage is not available.
1055
1056 * The C library now includes Michael Glad's Ultra Fast Crypt, which
1057   provides the Unix `crypt' function, plus some other entry points.
1058   Because of the United States export restriction on DES implementations,
1059   we are distributing this code separately from the rest of the C library.
1060   There is an extra distribution tar file just for crypt; it is called
1061   `glibc-VERSION-crypt.tar.Z', e.g. `glibc-1.04-crypt.tar.Z'.  You can just
1062   unpack the crypt distribution along with the rest of the C library and
1063   build; you can also build the library without getting crypt.  Users
1064   outside the USA can get the crypt distribution via anonymous FTP from
1065   ftp.uni-c.dk [129.142.6.74], or another archive site outside the U.S.
1066
1067 * The code and header files taken from 4.4 BSD have been updated with the
1068   latest files released from Berkeley.
1069 \f
1070 ----------------------------------------------------------------------
1071 Copyright information:
1072
1073 Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
1074
1075    Permission is granted to anyone to make or distribute verbatim copies
1076    of this document as received, in any medium, provided that the
1077    copyright notice and this permission notice are preserved,
1078    thus giving the recipient permission to redistribute in turn.
1079
1080    Permission is granted to distribute modified versions
1081    of this document, or of portions of it,
1082    under the above conditions, provided also that they
1083    carry prominent notices stating who last changed them.
1084 \f
1085 Local variables:
1086 version-control: never
1087 end: