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