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