]> git.ipfire.org Git - thirdparty/glibc.git/blame - NEWS
Update.
[thirdparty/glibc.git] / NEWS
CommitLineData
3b0bdc72 1GNU C Library NEWS -- history of user-visible changes. 2002-2-26
8e57fc70 2Copyright (C) 1992-2000, 2001, 2002 Free Software Foundation, Inc.
28f540f4
RM
3See the end for copying conditions.
4
33a934a3 5Please send GNU C library bug reports using the `glibcbug' script to
af6f3906 6<bugs@gnu.org>. Questions and suggestions should be send to
2eb45444 7<bug-glibc@gnu.org>.
2e92188d 8\f
03a2c647 9Version 2.3
37fb1084 10
03a2c647
UD
11* Masahide Washizawa contributed iconv modules for IBM1163 and IBM1164
12 charsets.
13
14* iconv (the program and the interface) now accepts empty names (excluding
15 options like //TRANSLIT) to mean "use charset of current locale".
47e8b443
UD
16
17* localedef now can transliterate characters in strings which are not in
18 the provided charmap. The information from the input locale is used.
c17f665b
UD
19
20* Prelinking support was added for ELF targets. This requires additional
21 tools and recent versions of the GNU binutils. Contributed by Jakub Jelinek.
8e57fc70
UD
22
23* Read-only stdio streams now use mmap to speed up operation but eliminating
24 copying and buffer underflows. Implemented by Ulrich Drepper.
207b66ce
UD
25
26* The malloc functions were completely rewritten by Wolfram Gloger based
27 on Doug Lea's malloc-2.7.0.c.
3b0bdc72
UD
28
29* Isamu Hasegawa contributed a completely new and POSIX conforming
30 implementation of regex.
02779eaa
UD
31
32* Bruno Haible upgraded the iconv and locale implementation to support
33 Unicode 3.2.
03a2c647 34\f
a8ae31c2
UD
35Version 2.2.5
36
76321a25
AJ
37* Stephen Moshier implemented log2, log10, powl and cbrtl for the
38 128-bit long double format.
a8ae31c2 39
557a9213
UD
40* Masahide Washizawa contributed iconv modules for IBM1132, IBM1133, IBM1160,
41 IBM1161, and IBM1162 charsets.
a8ae31c2 42
ad2e4f18 43* Andreas Jaeger contributed a port to x86-64/Linux.
a8ae31c2 44
7d0c5823
RM
45* Peter Bruin contributed a port to PowerPC/Hurd.
46
a8ae31c2
UD
47* libc functions using I/O streams now can handle wide-oriented streams
48 as well.
49
95eaff64
UD
50* optimizations in the dynamic linker. binaries created by recent binutils
51 versions start up quicker due to reduced time spend on relocations.
8e57fc70
UD
52
53* Support for use of gcc3 added by Jakub Jelinek and HJ Lu.
7d0c5823 54\f
33996419
AJ
55Version 2.2.4
56
2995f70e 57* Stephen Moshier implemented cosh, expm1, log1p, acos, sinh, tanh,
aff17a50 58 asinh, atanh, j0 for the 128-bit long double format.
8fee1bb0
UD
59
60* Bruno Haible updated all the code handling Unicode in some form to
61 support Unicode 3.1.
86dbe05e
UD
62
63* Speed of regex for single-byte locales is back to previous levels.
64 Patch by Isamu Hasegawa.
045fcd26 65
69d5f925 66* Alpha, SPARC, and IA-64 now also using floating stacks.
045fcd26 67
69d5f925 68* Startup time of internationalized applications greatly improved through
045fcd26
UD
69 iconv cache. Use iconvconfig to generate the cache file.
70 Contributed by Ulrich Drepper.
71
72* The IA-64 specific part of ld.so was rewritten to eliminate some pretty
73 severe performance problems. Patch by David Mosberger.
74
75* The Hurd port got a lot more functionality like AIO, various stdio
76 extensions, etc. Mainly done by Roland McGrath.
129d706d
UD
77
78* mtrace can now lookup symbols in shared libraries.
33996419 79\f
2ace5721
UD
80Version 2.2.3
81
1746f2b0 82* Intel's IA-64 math library is largely integrated. It provides fast and
2ace5721
UD
83 accurate implementatations for most basic and standard math functions
84 in float, double, and long double format.
85
f128331c 86* Stephen Moshier implemented j0, j1, jn, y0, y1, yn, lgamma, erf, erfc,
b8750342
UD
87 and asin for the 96-bit long double format and asin, log, tan for the
88 128-bit long double format.
07f951e4 89
e4d82761
UD
90* The beginning of a last-bit accurate math library by IBM Haifa were added.
91 The basic double functions exist today. Contributed by Abraham Ziv
92 <ziv@il.ibm.com>, Moshe Olshansky <olshansk@il.ibm.com>, Ealan Henis
93 <ealan@il.ibm.com>, and Anna Reitman <reitman@il.ibm.com>.
94
2ace5721
UD
95* An asynchronous name lookup library was added. The interface is designed
96 after POSIX AIO. The proposal was circulated beforehand to get comments.
97 No negative ones came in. Implemented by Ulrich Drepper.
b8a8413c
UD
98
99* Port to S390/64bit contributed by Martin Schwidefsky
100 <schwidefsky@de.ibm.com>.
a66f0958
UD
101
102* David Mosberger <davidm@hpl.hp.com> implemented the setcontext family
103 of functions for Linux/IA-64.
481b550f
UD
104
105* The RPC code is now thread safe. Threads can now use the same service
106 of different services at the same time. Patch by Eric Norum
107 <eric.norum@usask.ca> with some help by Ulrich Drepper.
f128331c
UD
108
109* Martin Schwidefsky <schwidefsky@de.ibm.com> implemented the setcontext
110 family of functions for Linux/S390.
232fdf8c
UD
111
112* Ulrich Drepper <drepper@redhat.com> implemented the setcontext family
113 of functions for Linux/x86.
eacde9d0
UD
114
115* Port to Linux/CRIS contributed by Axis Communications.
2ace5721 116\f
306eeae5
UD
117Version 2.2.2
118
464d97ec 119* Lots of headers were cleaned up. Using the tool in the conform/ subdir
306eeae5
UD
120 we can now check for namespace violations and missing declarations. The
121 result is that almost all headers are now Unix-compliant (as defined in
122 the upcoming XPG6). The negative side is that some programs might need
123 corrections, too, if they depend on the incorrect form of the headers in
124 previous versions which defined too many symbols and included too many
125 other headers.
464d97ec
UD
126
127* regex now handles multibyte character sets correctly.
128 Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
129
130* iconv (the program) does now conform to the upcoming XPG6 and handles
131 charmaps. Instead of the charset names the path of charmaps can be
132 provided and the conversion happens based on this data.
133 Contributed by Ulrich Drepper.
134
135* The locale program now provides detailed information about the installed
136 locales. While
137
138 locale -a
139
140 only lists the names of the supported locales
141
142 locale -a --verbose
143
144 provides details such as country, language, and codeset name.
145 Contributed by Ulrich Drepper.
306eeae5 146\f
d2defdc4
UD
147Version 2.2.1
148
149* The gencat program now parses the input file according to the charset
150 selected by the LC_CTYPE category. This is important for stateful
151 character sets. To make generating catalogs easier there is a way
152 to overwrite the charset selected by the locale: before the first
153 message or $ quote line the catalog can contain a line like
154
155 $ codeset=ISO-8859-2
156
157 to select the charset (ISO-8859-2 in this case).
158
159 Implemented by Shinya Hanataka and Ulrich Drepper.
aea6353a
UD
160
161* New codeset conversion modules: IBM-922 (Estonia PC codeset),
162 IBM-1124 (Ukraine PC codeset), IBM-1129 (Vietnamese PC codeset).
163 Contributed by Masahide Washizawa <washi@jp.ibm.com>.
234669e2
UD
164
165* Optimized string functions for Alpha ev6 and ev67 by Richard Henderson
166 <rth@redhat.com> and Rick Gorton <rick.gorton@alpha-processor.com>.
167
168* The LANGUAGE environment variable is now ignored unless the locale is
169 changed from the default "C" locale.
170
171* The usual bug fixes.
d2defdc4 172\f
2e92188d
UD
173Version 2.2
174
08a2e4a0
GM
175* Greg McGary added runtime support for bounds checking using gcc's
176 new -fbounded-pointers option. ix86 target is complete. PowerPC
177 is in progress.
178
2e92188d
UD
179* Thorsten Kukuk added secure mode support to nscd.
180
793bd4d9 181* The Berkeley db libraries have been removed.
2e92188d 182
47b853e8
UD
183 Related, the nss_db module is now in a separate package since it
184 obviously requires a database library being available.
185
0013b2b1
UD
186* Wide character I/O streams implemented by Ulrich Drepper.
187
abbffdf9 188* Functions from the extended socket API added by Ulrich Drepper.
01c771d0 189
6e8afc1c
UD
190* Functions feenableexcept and fedisableexcept to control the
191 behaviour of individual exceptions have been added by Andreas Jaeger.
192
591e1ffb
UD
193* ldconfig program added by Andreas Jaeger and Jakub Jelinek.
194
d3436b3c
UD
195* The resolver code has been updated from bind 8.2.3-T5B which supports
196 threads. The integration was done by Andreas Jaeger, Adam D. Bradley,
197 and Mark Kettenis.
2588068b
UD
198
199 This change could in some situations effect backward compatibility. Since
200 now `_res' is a thread-local instead of a global variable, modifying it
201 in one thread does not have any effect in other threads.
66ac0abe 202
a00c3ca9 203 The resolver library was also extended to allow IPv6 as the transport
d3436b3c
UD
204 protocol for the requests. This work was done by Stig Venaas.
205
1c5d4617
UD
206* Compatibility code for K&R C compilers has been removed from the
207 header files. A ISO C compiler is needed to use the library
208 (conforming to either C89 or C99 standard).
209
abbffdf9
UD
210* Complete rewrite of the localedef program to support multibyte character
211 sets. Implement handling of ISO 14651 and ISO 14652. Rewrite strcoll,
212 strxfrm, wcscoll, and wcsxfrm functions. Make isw*() functions work.
213 Implemented by Ulrich Drepper.
214
8f3f1e09
UD
215 Bruno Haible significantly improved the generation and use of the data
216 structures for the wide character tables.
217
abbffdf9
UD
218* Plural handling in gettext implemented by Ulrich Drepper.
219
69173865
UD
220* The utmp daemon has been removed.
221
222* The port to MIPS-Linux has been finished by Andreas Jaeger.
223
37fb8add
UD
224* A port to Hitachi SH3 and SH4 has been contributed by Kazumoto Kojima
225 and Yutaka Niibe.
226
594cee6c
UD
227* POSIX clocks and timers implemented by Kaz Kylheku and Ulrich Drepper.
228
40c4c9b5
UD
229* POSIX barriers implemented by Kaz Kylheku.
230
594cee6c
UD
231* POSIX spawn function family implemented by Ulrich Drepper.
232
233* POSIX spinlocks are now available.
234
40c4c9b5
UD
235* Timed wait functions for mutex, rwlock, and semaphores are implemented.
236
8f3f1e09
UD
237* the configure option --enable-kernel=X.Y.Z allows to strip out
238 compatibility for kernel versions before X.Y.Z. This is currently only
239 implemented for Linux.
240
3107c0c5
UD
241* the sockaddr_in6 structure changed. The IPv6 working group added a new
242 field sin6_scope_id. This means that all programs using IPv6 should be
243 recompiled. Don't expect binary compatibility with previous glibc
244 versions.
245
d2830ba4
UD
246* various conversion modules for IBM character sets contributed by
247 Masahide Washizawa.
248
8f3f1e09
UD
249* IA-64 port by Jes Sorensen and HJ Lu.
250
251~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
252Compiling the GNU C Library for Linux/ia64
253******************************************
254
255 Please refer to the file INSTALL in the same directory as you found
256this file for general information about configuring and compiling
257glibc.
258
259 For general inquiries about glibc under Linux/ia64 please use the
260following mailing list linux-ia64@linuxia64.org or one of the relevant
261glibc mailing lists.
262
263Recommended Tools for Compilation
264=================================
265
266 In order for glibc-2.2 to build correctly on the ia64 you need at
267least the following versions of the GNU tools (the :
268
269 * The Cygnus toolchain snapshot for the ia64 as of August 4
aea6353a
UD
270 including the provided set of patches. It is however recommend
271 you use the October 24 toolchain snapshot or a more recent version.
8f3f1e09
UD
272
273 OR alternatively you can try the following (the Cygnus toolchain is
274 the recommended solution):
275
276 * GCC and binutils, GAS and GNU LD out of CVS from
aea6353a 277 sources.redhat.com as of August 28, 2000 or later. The CVS tree
8f3f1e09
UD
278 may require special patches to work properly on the ia64.
279
280Configuring and compiling GNU Libc for Linux/ia64
281=================================================
282
283 The library requires Linux kernel version 2.4.0-test4-000728 or
aea6353a
UD
284later to funtion properly. Besides that it support for debug libraries
285is currently untested. Hence the following options
8f3f1e09
UD
286are required for configuring the library:
287
aea6353a 288 --disable-debug --enable-kernel=2.4.0
8f3f1e09
UD
289
290 It is also important that you make sure the library picks up the
291appropriate kernel header files, if you do not have recent enough
292kernel headers in /usr/src/linux/include, you should use the
293--with-headers=<path> option to specify the location.
294
295 As an example I personally use the following options to configure
296the library:
297
298 --disable-debug
8f3f1e09
UD
299 --disable-cvs
300 --enable-kernel=2.4.0
301 --host=ia64-linux
302 --enable-add-ons=yes
303 --prefix=/usr
304 --with-headers=/home/jes/linux/include
305
306
307Good luck
308
309Jes Sorensen <jes@linuxcare.com>,
aea6353a 310November 14th, 2000
8f3f1e09 311~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6f2a8167
UD
312\f
313Version 2.1.3
314
315* bug fixes
316
01c771d0
UD
317\f
318Version 2.1.2
319
320* bug fixes
321
28f540f4 322\f
e518937a
UD
323Version 2.1.1
324
27995311
UD
325* New ISO C 9x function _Exit, imaxabs, and imaxdiv are added.
326
16b0f634
UD
327* New xdr functions are added; some rpc functions are now 64bit clean.
328
407d26b7 329* Fixed a number of bugs and memory leaks (especially in NIS+ code).
16b0f634
UD
330
331* Fixed known incompatibilities with glibc 2.0.
332
407d26b7 333* New functions lock64, strchrnul, rawmemchr, getutmp and getutmpx.
16b0f634 334
407d26b7 335* Optimized a number of functions (especially the ELF dynamic loader).
16b0f634
UD
336
337* Update timezone data files.
27995311 338
554b8800
UD
339* lots of charmaps corrections
340
341* some new locale definitions and charmaps
342
e518937a 343\f
c84142e8
UD
344Version 2.1
345
da2d1bc5
UD
346* Richard Henderson corrected size of struct timeval on Linux/Alpha to
347 conform to POSIX member type requirements. Symbol versions have been
348 adjusted as needed within the library, and for direct use by applications,
349 but there is potential for problems if third-party libraries use
350 struct timeval as part of their interface. This does not present
351 a problem for X and other "essential" system libraries.
352
c84142e8 353* An additional locale model to support C++ Standard Library locale
1fb05e3d 354 model and probably more was implemented by Ulrich Drepper.
c84142e8 355
1fb05e3d 356* Eric Youngdale and Ulrich Drepper implemented versioning of objects on
c84142e8
UD
357 symbol level.
358
359* Miles Bader provided the `argp' function family to support hierachical
360 command line argument parsing, layered on top of getopt.
377a515b 361
cbdee279 362* strtod accepts new hexadecimal floating-point format from ISO C 9X.
377a515b
UD
363
364* printf has two new specifiers %a and %A to print hexadecimal flaoting-point
cbdee279 365 numbers.
377a515b 366
cbdee279 367* scanf recognizes the %a and %A format for scanning floating point numbers.
e61abf83 368
48869012
UD
369* the new headers <stdint.h> and <inttypes.h> from ISO C 9X provides
370 information and interfaces for the available integer types.
e61abf83 371
813f4f4d
UD
372* about 130 new math functions were added to implement the ISO C9x math
373 library.
374
e61abf83 375* the new header <complex.h> contains definitions of the complex math
cbdee279
UD
376 functions from ISO C 9X.
377
378* the new header <tgmath.h> defines generic macros to use complex or
379 real valued functions.
e61abf83 380
a5a0310d 381* Thorsten Kukuk provided an implementation for NIS+, securelevel 0, 1 and 2.
e61abf83 382
a5a0310d
UD
383* Andreas Jaeger provided a test suite for the math library.
384
385* Mark Kettenis implemented the utmpx interface and an utmp daemon.
cbdee279 386
440d13e2 387* Ulrich Drepper added character set conversion functions (iconv).
cbdee279
UD
388
389* Optimized string functions have been added.
390
391* The localedata addon is now part of glibc.
2eb45444
UD
392
393* An implementation of profiling shared libraries was added by Ulrich Drepper.
ea278354 394
48244d09
UD
395* Thorsten Kukuk and Ulrich Drepper provided an implementation for a caching
396 daemon for NSS (nscd).
397
398 Missing a better place here are some numbers on improvements. Under
399 Linux 2.1.125 un-tar-ing the kernel sources takes
400
0dee6738 401 user system wall
48244d09 402
0dee6738 403 using local files 12.19s 6.88s 22.91s
48244d09 404
0dee6738 405 using NIS 13.92s 8.91s 26.34s
48244d09 406
0dee6738 407 using NIS & nscd 10.37s 7.34s 25.30s
48244d09 408
0dee6738
UD
409 using NIS+ 27.57s 30.37s 640.46s
410
411 using NIS+ & nscd 10.25s 7.83s 26.51s
412
413 using NIS & old nscd [1] 13.83s 8.32s 29.60s
48244d09 414
48244d09
UD
415 Keep in mind that non-namelookup related operations dominate above times.
416 It was just a common complain that using NIS+ unpacking the kernel is
0dee6738 417 horribly slow.
48244d09 418
0dee6738
UD
419 [1] The old nscd implementation is not available anymore since it was
420 distributed with glibc up to version 2.0.98 and thus is now replaced.
ea278354
UD
421
422* Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
48869012
UD
423
424* Mark Kettenis provided a Hesiod NSS module.
20833331
UD
425
426* The ELF dynamic loader knows how to process dynamic string tokens ($ORIGIN
427 and $PLATFORM) in RPATHs and similar strings (Ulrich Drepper).
428
429* rcmd can now handle netgroups (Dick Streefland).
48244d09 430
62595351
UD
431* A port to the ARM was contributed by Phil Blundell, Pat Beirne and Scott
432 Bambrough.
433
434* Support for the IPv6 protocol has been added to the socket API, as per the
435 latest draft standards.
436
1770a20d
UD
437* Support for Linux 2.2 has been added.
438
48244d09
UD
439* Interface changes relative to the latest 2.0.x release:
440~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
62595351 441addseverity NEW: Unix98
48244d09 442alphasort64 NEW: LFS
62595351
UD
443argp_err_exit_status NEW: argp, GNU ext
444argp_error NEW: argp, GNU ext
445argp_failure NEW: argp, GNU ext
446argp_help NEW: argp, GNU ext
447argp_parse NEW: argp, GNU ext
448argp_program_bug_address NEW: argp, GNU ext
449argp_program_version NEW: argp, GNU ext
450argp_program_version_hook NEW: argp, GNU ext
451argp_state_help NEW: argp, GNU ext
452argp_usage NEW: argp, GNU ext
e980ca92
UD
453authdes_create NEW: Secure RPC
454authdes_getucred NEW: Secure RPC
455authdes_pk_create NEW: Secure RPC
48244d09
UD
456backtrace NEW: GNU ext.
457backtrace_symbols NEW: GNU ext.
458backtrace_symbols_fd NEW: GNU ext.
459cacos NEW: ISO C 9x
460cacosf NEW: ISO C 9x
461cacosh NEW: ISO C 9x
462cacoshf NEW: ISO C 9x
463cacoshl NEW: ISO C 9x
464cacosl NEW: ISO C 9x
465capget NEW: kernel
466capset NEW: kernel
467carg NEW: ISO C 9x
468cargf NEW: ISO C 9x
469cargl NEW: ISO C 9x
470casin NEW: ISO C 9x
471casinf NEW: ISO C 9x
472casinh NEW: ISO C 9x
473casinhf NEW: ISO C 9x
474casinhl NEW: ISO C 9x
475casinl NEW: ISO C 9x
476catan NEW: ISO C 9x
477catanf NEW: ISO C 9x
478catanh NEW: ISO C 9x
479catanhf NEW: ISO C 9x
480catanhl NEW: ISO C 9x
481catanl NEW: ISO C 9x
e980ca92 482cbc_crypt NEW: Secure RPC
48244d09
UD
483ccos NEW: ISO C 9x
484ccosf NEW: ISO C 9x
485ccosh NEW: ISO C 9x
486ccoshf NEW: ISO C 9x
487ccoshl NEW: ISO C 9x
488ccosl NEW: ISO C 9x
489cexp NEW: ISO C 9x
490cexpf NEW: ISO C 9x
491cexpl NEW: ISO C 9x
492cimag NEW: ISO C 9x
493cimagf NEW: ISO C 9x
494cimagl NEW: ISO C 9x
495clearerr_locked REMOVED
496clntunix_create NEW: sunrpc ext
497clog NEW: ISO C 9x
498clog10 NEW: ISO C 9x
499clog10f NEW: ISO C 9x
500clog10l NEW: ISO C 9x
501clogf NEW: ISO C 9x
502clogl NEW: ISO C 9x
503conj NEW: ISO C 9x
504conjf NEW: ISO C 9x
505conjl NEW: ISO C 9x
506cpow NEW: ISO C 9x
507cpowf NEW: ISO C 9x
508cpowl NEW: ISO C 9x
509cproj NEW: ISO C 9x
510cprojf NEW: ISO C 9x
511cprojl NEW: ISO C 9x
512creal NEW: ISO C 9x
513crealf NEW: ISO C 9x
514creall NEW: ISO C 9x
515creat64 NEW: LFS
516csin NEW: ISO C 9x
517csinf NEW: ISO C 9x
518csinh NEW: ISO C 9x
519csinhf NEW: ISO C 9x
520csinhl NEW: ISO C 9x
521csinl NEW: ISO C 9x
522csqrt NEW: ISO C 9x
523csqrtf NEW: ISO C 9x
524csqrtl NEW: ISO C 9x
525ctan NEW: ISO C 9x
526ctanf NEW: ISO C 9x
527ctanh NEW: ISO C 9x
528ctanhf NEW: ISO C 9x
529ctanhl NEW: ISO C 9x
530ctanl NEW: ISO C 9x
e980ca92
UD
531des_setparity NEW: Secure RPC
532ecb_crypt NEW: Secure RPC
62595351 533endutxent NEW: Unix98
48244d09
UD
534exp10 NEW: ISO C 9x
535exp10f NEW: ISO C 9x
536exp10l NEW: ISO C 9x
537exp2 NEW: ISO C 9x
538exp2f NEW: ISO C 9x
539exp2l NEW: ISO C 9x
540fattach NEW: STREAMS
541fdetach NEW: STREAMS
542fdim NEW: ISO C 9x
543fdimf NEW: ISO C 9x
544fdiml NEW: ISO C 9x
545feclearexcept NEW: ISO C 9x
546fegetenv NEW: ISO C 9x
547fegetexceptflag NEW: ISO C 9x
548fegetround NEW: ISO C 9x
549feholdexcept NEW: ISO C 9x
550feof_locked REMOVED
551feraiseexcept NEW: ISO C 9x
552ferror_locked REMOVED
553fesetenv NEW: ISO C 9x
554fesetexceptflag NEW: ISO C 9x
555fesetround NEW: ISO C 9x
556fetestexcept NEW: ISO C 9x
557feupdateenv NEW: ISO C 9x
558fflush_locked REMOVED
559ffsl NEW: GNU ext.
560ffsll NEW: GNU ext.
561fgetpos64 NEW: LFS
562fgets_unlocked NEW: GNU ext.
563fileno_locked REMOVED
564fma NEW: ISO C 9x
565fmaf NEW: ISO C 9x
566fmal NEW: ISO C 9x
567fmax NEW: ISO C 9x
568fmaxf NEW: ISO C 9x
569fmaxl NEW: ISO C 9x
570fmin NEW: ISO C 9x
571fminf NEW: ISO C 9x
572fminl NEW: ISO C 9x
62595351 573fmtmsg NEW: Unix98
48244d09
UD
574fopen64 NEW: LFS
575fputc_locked REMOVED
576fputs_unlocked NEW: GNU ext.
577fread_unlocked NEW: GNU ext.
578freopen64 NEW: LFS
579fseeko NEW: Unix98
580fsetpos64 NEW: LFS
581fstatfs64 NEW: LFS
582fstatvfs NEW: Unix98
583fstatvfs64 NEW: LFS
584ftello NEW: Unix98
585ftello64 NEW: LFS
586ftruncate64 NEW: LFS
587ftw64 NEW: LFS
588fwrite_unlocked NEW: GNU ext.
589gai_strerror NEW: IPv6
590gamma_r REMOVED
591gammaf_r REMOVED
592gammal_r REMOVED
593getchar_locked REMOVED
594getdate NEW: Unix98
595getdate_err NEW: Unix98
596getdate_r NEW: GNU ext.
597getmsg NEW: STREAMS
598getnameinfo NEW: IPv6
e980ca92 599getnetname NEW: Secure RPC
48244d09
UD
600getpmsg NEW: STREAMS
601getpt NEW: Unix98 PTY
602getrlimit64 NEW: LFS
62595351
UD
603getutxent NEW: Unix98
604getutxid NEW: Unix98
605getutxline NEW: Unix98
48244d09
UD
606glob64 NEW: GNU ext.
607globfree64 NEW: GNU ext.
608gnu_get_libc_release NEW: GNU ext.
609gnu_get_libc_version NEW: GNU ext.
610grantpt NEW: Unix98 PTY
e980ca92 611host2netname NEW: Secure RPC
48244d09
UD
612iconv NEW: iconv
613iconv_close NEW: iconv
614iconv_open NEW: iconv
615if_freenameindex NEW: IPv6
616if_indextoname NEW: IPv6
617if_nameindex NEW: IPv6
618if_nametoindex NEW: IPv6
619in6addr_any NEW: IPv6
620in6addr_loopback NEW: IPv6
621inet6_isipv4mapped NEW: IPv6
622isastream NEW: STREAMS
623iswblank NEW: GNU ext.
e980ca92
UD
624key_decryptsession NEW: Secure RPC
625key_decryptsession_pk NEW: Secure RPC
626key_encryptsession NEW: Secure RPC
627key_encryptsession_pk NEW: Secure RPC
628key_gendes NEW: Secure RPC
629key_get_conv NEW: Secure RPC
630key_secretkey_is_set NEW: Secure RPC
631key_setnet NEW: Secure RPC
632key_setsecret NEW: Secure RPC
48244d09
UD
633llrint NEW: ISO C 9x
634llrintf NEW: ISO C 9x
635llrintl NEW: ISO C 9x
636llround NEW: ISO C 9x
637llroundf NEW: ISO C 9x
638llroundl NEW: ISO C 9x
639log2 NEW: ISO C 9x
640log2f NEW: ISO C 9x
641log2l NEW: ISO C 9x
642lrint NEW: ISO C 9x
643lrintf NEW: ISO C 9x
644lrintl NEW: ISO C 9x
645lround NEW: ISO C 9x
646lroundf NEW: ISO C 9x
647lroundl NEW: ISO C 9x
648lseek64 NEW: LFS
649makecontext NEW: Unix98
650mempcpy NEW: GNU ext.
651mmap64 NEW: LFS
652moncontrol REMOVED
653modify_ldt NEW: kernel
654nan NEW: ISO C 9x
655nanf NEW: ISO C 9x
656nanl NEW: ISO C 9x
657nearbyint NEW: ISO C 9x
658nearbyintf NEW: ISO C 9x
659nearbyintl NEW: ISO C 9x
e980ca92
UD
660netname2host NEW: Secure RPC
661netname2user NEW: Secure RPC
42bd0a85
UD
662nexttoward NEW: ISO C 9x
663nexttowardf NEW: ISO C 9x
664nexttowardl NEW: ISO C 9x
48244d09
UD
665nftw NEW: Unix98
666nftw64 NEW: LFS
667open64 NEW: LFS
e980ca92 668passwd2des NEW: Secure RPC
48244d09
UD
669pow10 NEW: GNU ext.
670pow10f NEW: GNU ext.
671pow10l NEW: GNU ext.
672pread NEW: Unix98
673pread64 NEW: LFS
674printf_size NEW: GNU ext.
675printf_size_info NEW: GNU ext.
676profil_counter REMOVED
677pthread_mutexattr_getkind_np REPLACED
678pthread_mutexattr_setkind_np REPLACED
679ptsname NEW: Unix98 PTY
680ptsname_r NEW: Unix98 PTY
681putc_locked REMOVED
682putchar_locked REMOVED
683putgrent NEW: GNU ext.
684putmsg NEW: STREAMS
685putpmsg NEW: STREAMS
62595351 686pututxline NEW: Unix98
48244d09
UD
687pwrite NEW: Unix98
688pwrite64 NEW: LFS
689readdir64 NEW: LFS
690readdir64_r NEW: LFS
691remquo NEW: ISO C 9x
692remquof NEW: ISO C 9x
693remquol NEW: ISO C 9x
694round NEW: ISO C 9x
695roundf NEW: ISO C 9x
696roundl NEW: ISO C 9x
697rtime NEW: GNU ext.
698scalbln NEW: ISO C 9x
699scalblnf NEW: ISO C 9x
700scalblnl NEW: ISO C 9x
701scandir64 NEW: LFS
702sendfile NEW: kernel
703setcontext NEW: Unix98
704setrlimit64 NEW: LFS
62595351 705setutxent NEW: Unix98
48244d09
UD
706sighold NEW: Unix98
707sigignore NEW: Unix98
708sigqueue NEW: POSIX.1b
709sigrelse NEW: Unix98
710sigset NEW: POSIX.1b
711sigtimedwait NEW: POSIX.1b
712sigwaitinfo NEW: POSIX.1b
713sincos NEW: GNU ext.
714sincosf NEW: GNU ext.
715sincosl NEW: GNU ext.
716statfs64 NEW: LFS
717statvfs NEW: Unix98
718statvfs64 NEW: LFS
719strcasestr NEW: GNU ext.
48244d09
UD
720strtoimax NEW: ISO C 9x
721strtoumax NEW: ISO C 9x
722strverscmp NEW: GNU ext.
e980ca92 723svcauthdes_stats NEW: Secure RPC
48244d09
UD
724svcunix_create NEW: sunrpc etx
725svcunixfd_create NEW: sunrpc ext
726swapcontext NEW: Unix98
727tcgetsid NEW: Unix98 PTY
728tdestroy NEW: GNU ext.
729tgamma NEW: ISO C 9x
730tgammaf NEW: ISO C 9x
731tgammal NEW: ISO C 9x
732tmpfile64 NEW: LFS
733trunc NEW: ISO C 9x
734truncate64 NEW: LFS
735truncf NEW: ISO C 9x
736truncl NEW: ISO C 9x
737umount2 NEW: kernel
738unlockpt NEW: Unix98 PTY
62595351 739updwtmpx NEW: Unix98
e980ca92 740user2netname NEW: Secure RPC
62595351 741utmpxname NEW: Unix98
48244d09 742versionsort NEW: GNU ext.
3ef4002b 743versionsort64 NEW: GNU ext.
48244d09
UD
744waitid NEW: Unix98
745wcscasecmp NEW: GNU ext.
746wcsncasecmp NEW: GNU ext.
747wcsnlen NEW: GNU ext.
748wcstoimax NEW: ISO C 9x
749wcstoll NEW: ISO C 9x
750wcstoull NEW: ISO C 9x
751wcstoumax NEW: ISO C 9x
752wcswcs NEW: Unix98
753wordexp NEW: POSIX.2
754wordfree NEW: POSIX.2
755write_profiling REMOVED
e980ca92
UD
756xdecrypt NEW: Secure RPC
757xdr_authdes_cred NEW: Secure RPC
758xdr_authdes_verf NEW: Secure RPC
759xdr_cryptkeyarg NEW: Secure RPC
760xdr_cryptkeyarg2 NEW: Secure RPC
761xdr_cryptkeyres NEW: Secure RPC
762xdr_getcredres NEW: Secure RPC
763xdr_key_netstarg NEW: Secure RPC
764xdr_key_netstres NEW: Secure RPC
765xdr_keybuf NEW: Secure RPC
766xdr_keystatus NEW: Secure RPC
767xdr_netnamestr NEW: Secure RPC
768xdr_sizeof NEW: Secure RPC
48244d09 769xdr_unixcred NEW: sunrpc ext
e980ca92 770xencrypt NEW: Secure RPC
48244d09 771~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1770a20d
UD
772\f
773Version 2.0.6
774
775* more bug fixes
776
a5a0310d
UD
777\f
778Version 2.0.5
779
780* more bug fixes
781
782* inet_ntoa is thread-safe
783
784* updwtmp is moved from libutil to libc
785
786* rewrite of cbrt function
787
788* update of timezone data
789\f
790Version 2.0.4
791
792* more bug fixes
793\f
794Version 2.0.3
795
796* more bug fixes
c84142e8 797\f
795fbc9a
UD
798Version 2.0.2
799
800* more bug fixes
801
802* add atoll function
803
804* fix complex problems in Berkeley DB code
e61abf83
UD
805
806* fix math functions
795fbc9a
UD
807\f
808Version 2.0.1
809
810* fixed lots of header problems (especially Linux/GNU specific)
811
812* dynamic loader preserves all registers
813
814* Roland McGrath provided support for handling of auxiliary objects in
815 the ELF dynamic loader.
816
817* support for parallel builds is improved
818\f
40a4b79f 819Version 2.0
28f540f4 820
d3669add
RM
821* GNU extensions are no longer declared by default. To enable them you
822 must define the macro `_GNU_SOURCE' in your program or compile with
823 `-D_GNU_SOURCE'.
824
28f540f4
RM
825* The library has changed from using GNU ld symbol aliases to using weak
826 symbols where available. The ELF object file format supports weak
827 symbols; GNU ld also supports weak symbols in the a.out format. (There
828 is also now support for other GNU ld extensions in ELF. Use the
787126fe
RM
829 `--with-elf' option to configure to indicate you have ELF, and
830 `--with-gnu-ld' if using GNU ld.) This change resulted in the deletion
28f540f4
RM
831 of many files which contained only symbol aliases, reducing the size of
832 the source and the compiled library; many other files were renamed to
833 less cryptic names previously occupied by the symbol alias files.
dcf0671d
UD
834 There is a new header file <elf.h> for programs which operate on
835 files in the ELF format.
49e522bf
RM
836
837* Converted to Autoconf version 2, so `configure' has more options.
838 Run `configure --help' to see the details.
839
840* The library can now be configured to build profiling, highly-optimized
b25c5d66
RM
841 (but undebuggable), and/or shared libraries (ELF with GNU ld only). The
842 `--enable-profile', `--enable-omitfp', and `--enable-shared' options to
843 `configure' enable building these extra libraries. The shared library is
844 built by default when using both ELF and GNU ld. When shared libraries
845 are enabled, the new library `-ldl' is available for arbitrary run-time
846 loading of shared objects; its interface is defined in <dlfcn.h>. The
847 new header file <link.h> gives access to the internals of the run-time
33a934a3
UD
848 dynamic linker, `ld.so'. The shell script `ldd' is similar to the
849 application of same name on other systems and it provides information
850 about dynamically linked binaries.
49e522bf 851
71733723
RM
852* The C library now provides the run-time support code for profiling
853 executables compiled with `-pg'. Programs can control the profiling code
d3669add
RM
854 through the interface in <sys/gmon.h>. The `gmon.out' files written by
855 the GNU C library can be read only by GNU `gprof' (from GNU binutils);
856 the support for this file format was contributed by David Mosberger-Tang.
71733723 857
f7eac6eb 858* The math code has been replaced with a math library based on fdlibm from
33a934a3
UD
859 Sun, and modified by JT Conklin and Ulrich Drepper with i387 support, by
860 Ian Taylor with `float' functions and by Ulrich Drepper with `long double'
861 functions. The math functions now reside in a separate library, so
862 programs using them will need to use `-lm' their linking commands.
863
864* John C. Bowman contributed optimized ix87 assembler inline functions.
f7eac6eb 865
5f0e6fc7
RM
866* Ulrich Drepper has contributed support for an `/etc/nsswitch.conf'
867 mechanism similar to that found in Solaris 2. This is now used for the
33a934a3
UD
868 group, passwd, hosts, networks, services, protocols, rpc, ethers,
869 shadow, netgroup, publickey, and alias databases. The `nsswitch.conf'
870 file controls what services are used for each individual database. This
871 works by loading shared libraries with names specified in `nsswitch.conf',
872 so service modules can be changed or added at any time without even
873 relinking any program. Currently there are the file, db, and NIS based
874 NSS services available.
5f0e6fc7 875
49e522bf
RM
876* The new functions `strtoq' and `strtouq' parse integer values from
877 strings, like `strtol' and `strtoul', but they return `long long int' and
878 `unsigned long long int' values, respectively (64-bit quantities).
879
880* The new functions `strtof' and `strtold' parse floating-point values from
881 strings, like `strtod', but they return `float' and `long double' values,
882 respectively (on some machines `double' and `long double' are the same).
883
884* Ulrich Drepper has contributed new implementations of the floating-point
885 printing and reading code used in the `printf' family of functions and
886 `strtod', `strtof', and `strtold'. These new functions are perfectly
887 accurate, and much faster than the old ones.
888
33a934a3
UD
889* The implementation of the POSIX locale model was completely rewritten by
890 Ulrich Drepper. This includes the new programs `localedef' and `locale'
891 to compile the POSIX locale definition.
892
893* The former dummy implementations of the strcoll and strxfrm function are
894 now replaced by fully functional code contributed by Ulrich Drepper. The
895 collation information comes from the POSIX locale definitions.
896
49e522bf
RM
897* The new header <langinfo.h> defines an interface for accessing
898 various locale-dependent data (using the locale chosen with `setlocale').
899
f7eac6eb 900* Ulrich Drepper has contributed a new suite of functions for operation on
33a934a3 901 wide-character and multibyte-character strings, in <wchar.h>;
b7407d63 902 and classification and case conversion of wide characters, in <wctype.h>.
33a934a3
UD
903 These new functions are conforming to the ISO C, Amendement 1 specification.
904
905* There is now a second implementation of the standard I/O library available.
906 It comes from GNU libg++ as was written by Per Bothner, heavily modified
907 by Hongjiu Lu and made thread safe by Ulrich Drepper.
f7eac6eb 908
71733723 909* You can now use positional parameter specifications in format strings
49e522bf
RM
910 for the `printf' and `scanf' families of functions. For example,
911 `printf ("Number %2$d, Mr %1$s\n", "Jones", 6);'' prints
912 ``Number 6, Mr Jones''. This is mainly useful when providing different
d365fd2c
RM
913 format strings for different languages, whose grammars may dictate
914 different orderings of the values being printed. To support this
49e522bf 915 feature, the interface for `register_printf_handler' has changed; see
d365fd2c 916 the header file <printf.h> for details.
49e522bf
RM
917
918* The `printf' and `scanf' families of functions now understand a new
919 formatting flag for numeric conversions: the ' flag (e.g. %'d or %'f) says
920 to group numbers as indicated by the locale; for `scanf' and friends, this
921 says to accept as valid only a number with all the proper grouping
922 separators in the right places. In the default "C" locale, numbers are
923 not grouped; but locales for specific countries will define the usual
924 conventions (i.e. separate thousands with `,' in the US locale).
28f540f4
RM
925
926* The pgrp functions have been regularized, slightly incompatibly but much
927 less confusingly. The core functions are now `getpgid' and `setpgid',
928 which take arguments for the PID to operate on; the POSIX.1 `getpgrp' (no
929 argument) and BSD `setpgrp' (identical to `setpgid') functions are
930 provided for compatibility. There is no longer an incompatible `getpgrp'
931 with an argument declared under _BSD_SOURCE; no BSD code uses it.
932
933* The new header file <fts.h> and suite of functions simplify programs that
934 operate on directory trees. This code comes from 4.4 BSD.
935
33a934a3
UD
936* The resolver code has been updated from the BIND 4.9.5-P1 release.
937 Parts of the code were heavily modified by Ulrich Drepper to fit in the
938 NSS scheme used in glibc.
28f540f4 939
28f540f4
RM
940* There is a new malloc debugging hook `__memalign_hook'.
941
942* There are new typedefs `ushort' for `unsigned short int' and `uint' for
943 `unsigned int' in <sys/types.h>. These are for compatibility only and
944 their use is discouraged.
945
946* The `-lmcheck' library to enable standard malloc debugging hooks is now
947 done differently, so that it works even without GNU ld.
787126fe 948
22a1292a
RM
949* New function `euidaccess' checks allowed access to a file like `access',
950 but using the effective IDs instead of the real IDs.
49e522bf
RM
951
952* The time zone data files have been updated for the latest and greatest
953 local time conventions of the countries of the world.
954
955* The new function `dirfd' extracts the file descriptor used by a DIR stream;
956 see <dirent.h>.
957
958* The new functions `ecvt', `fcvt', and `gcvt' provide an obsolete interface
959 for formatting floating-point numbers. They are provided only for
33a934a3
UD
960 compatibility; new programs should use `sprintf' instead. There are
961 also equivalent function for the `long double' floating-point type and
962 all functions also exist in a reentrant form.
342414a6
RM
963
964* The new auxiliary library `-lutil' from 4.4 BSD contains various
965 functions for maintaining the login-record files (primarily of use to
966 system programs such as `login'), and convenient functions for
967 allocating and initializing a pseudo-terminal (pty) device.
c709e372
RM
968
969* Ulrich Drepper has contributed new support for System V style
970 shared memory and IPC on systems that support it.
971
972* Ulrich Drepper has contributed several miscellaneous new functions found
973 in System V: The `hsearch' family of functions provide an effective
974 implementation of hash tables; `a64l' and `l64a' provide a very simple
975 binary to ASCII mapping; `drand48' and friends provide a 48-bit random
976 number generator.
977
978* Ulrich Drepper has contributed new reentrant counterparts for the
979 `random' and `hsearch' families of functions; `random_r', `hsearch_r', etc.
980
981* Ulrich Drepper has contributed new, highly-optimized versions of several
982 string functions for the i486/Pentium family of processors.
983
71733723 984* Ulrich Drepper has updated the Linux-specific code, based largely
c709e372 985 on work done in Hongjiu Lu's version of GNU libc for Linux.
33a934a3
UD
986 The GNU library now supports Linux versions 2.0.10 and later,
987 using the ELF object file format (i[3456]86-*-linux).
c709e372 988
d3669add
RM
989* Andreas Schwab has ported the C library to Linux/m68k (m68k-*-linux).
990
33a934a3
UD
991* David Mosberger-Tang and Richard Henderson have ported the C library
992 to Linux/Alpha (alpha-*-linux). Richard Henderson contributed the
993 dynamic linking support for ELF/Alpha.
994
995* Richard Henderson contributed several Alpha optimized assembler function
996 for arithmetic and string handling.
d3669add 997
c709e372 998* Ulrich Drepper has contributed a new set of message catalog functions to
40a4b79f
RM
999 support multiple languages using the <libintl.h> interface, for use with
1000 his new package GNU gettext. Translation volunteers have contributed
1001 catalogs of the library's messages in Spanish, German, and Korean.
1002
1003* For compatibility with XPG4, Ulrich Drepper has contributed the `gencat'
1004 program and the `catgets' function for reading the catalog files it
1005 creates. (The <libintl.h> interface is preferred; we include the
1006 <nl_types.h> interface using `catgets' only for source compatibility with
1007 programs already written to use it.)
71733723
RM
1008
1009* New header file <values.h> gives SVID-compatible names for <limits.h>
1010 constants.
1011
1012* Various new macros, declarations, and small header files for compatibility
1013 with 4.4 BSD.
1014
1015* New function `group_member' is a convenient way to check if a process has
1016 a given effective group ID.
1017
1018* When using GCC 2.7 and later, the socket functions are now declared in a
1019 special way so that passing an argument of type `struct sockaddr_in *',
1020 `struct sockaddr_ns *', or `struct sockaddr_un *' instead of the generic
1021 `struct sockaddr *' type, does not generate a type-clash warning.
1022
1023* New function `error' declared in header file <error.h> is a convenient
6d52618b 1024 function for printing error messages and optionally exiting; this is the
71733723
RM
1025 canonical function used in GNU programs. The new functions `err', `warn',
1026 and friends in header file <err.h> are the canonical 4.4 BSD interface for
1027 doing the same thing.
1028
1029* The <glob.h> interface has several new flags from 4.4 BSD that extend the
1030 POSIX.2 `glob' function to do ~ and {...} expansion.
1031
1032* New function `unsetenv' complements `setenv' for compatibility with 4.4 BSD.
33a934a3 1033 `clearenv' which is used in POSIX.9 is also available.
71733723
RM
1034
1035* New function `getsid' returns session ID number on systems that support it.
1036
f7eac6eb
RM
1037* We have incorporated the 4.4 BSD `db' library (version 1.85). New header
1038 files <db.h> and <mpool.h> provide a rich set of functions for several
1039 types of simple databases stored in memory and in files, and <ndbm.h> is
6d52618b 1040 an old `ndbm'-compatible interface using the `db' functions. Link with
999493cb 1041 `-ldb' to get these functions.
f7eac6eb
RM
1042
1043* New macro `strdupa' copies a string like `strdup', but uses local stack
1044 space from `alloca' instead of dynamic heap space from `malloc'.
52e9a9d1
RM
1045
1046* New function `strnlen' is like `strlen' but searches only a given maximum
33a934a3
UD
1047 number of characters for the null terminator. `stpncpy', `strndup' and
1048 `strndupa' are similar variants for the `stpcpy', `strdup' and `strdupa'
1049 function.
40a4b79f
RM
1050
1051* New function `statfs' in header <sys/statfs.h>.
1052
1053* The new <argz.h> and <envz.h> interfaces contributed by Miles Bader
1054 provide convenient functions for operating on blocks of null-terminated
1055 strings.
1056
1057* A new suite of functions in <utmp.h> handle all the details of reading
1058 and writing the utmp file.
33a934a3
UD
1059
1060* An implementation of the NIS/YP(tm) based NSS service was contributed by
1061 Thorsten Kukuk.
1062
1063* Paul Eggert and Ulrich Drepper modified the `strftime' function to be
1064 completely POSIX compliant and also implemented the extended functionality
1065 to handle alternate digit representation and alternate era date formats.
1066
1067* Ulrich Drepper provided an implementation of the `strptime' function
1068 defined in XPG4.2 which transforms a string into a `struct tm' value.
1069
1070* Paul Eggert provided the tzselect shell script as part of the timezone
1071 code. The shell script makes it easy to select the correct timezone
1072 specification.
1073
1074* The implementation of the malloc family of functions is completely replaced
1075 by a new implementation by Doug Lea with many improvements by Wolfram Gloger.
1076 The implementation uses the mmap function (if available) and it is
1077 optimized for the use in multi threaded programs.
1078
1079* Ulrich Drepper contributed a MD5 "encryption" for the crypt family of
1080 functions. This new functionality is usable by specifying a special
1081 salt string and it is compatible with implementation on *BSD systems.
1082
1083* Lots of functions from the XPG4.2 standard were added by Ulrich Drepper:
1084 `getsubopt' to handle second level command line options, `bsd_signal'
1085 to access BSD style `signal' functionality, the obsolete `regexp' style
1086 expression matcher.
1087
1088* the `lchown' function is available on system which support this
1089 functionality.
1090
1091* The implementation of the shadow password handling function was contributed
1092 by Ulrich Drepper.
1093
1094* David Mosberger-Tang changed the SunRPC implementation to be 64bit safe.
1095
1096* POSIX.1g support was added. The <sys/select.h> header is available,
1097 `isfdtype' and `pselect' are implemented. Craig Metz contributed an
1098 implementation of `getaddrinfo'.
28f540f4
RM
1099\f
1100Version 1.09
1101
1102* For cross-compilation you should now set `BUILD_CC' instead of `HOST_CC'.
1103
1104* New header file <fstab.h> and new functions `getfsspec', `getfsent' and
1105 friends, for parsing /etc/fstab. This code comes from 4.4 BSD.
1106
1107* The new function `daemon' from 4.4 BSD is useful for server programs that
1108 want to put themselves in the background.
1109
1110* Joel Sherrill has contributed support for several standalone boards that
1111 run without an operating system.
1112
1113* `printf', `scanf' and friends now accept a `q' type modifier for long
1114 long int as well as `ll'. Formats using these might be `%qu' or `%lld'.
1115
1116* All of the code taken from BSD (notably most of the math and networking
1117 routines) has been updated from the BSD 4.4-Lite release.
1118
1119* The resolver code has been updated from the BIND-4.9.3-BETA9 release.
1120
1121* The new functions `getdomainname' and `setdomainname' fetch or change the
1122 YP/NIS domain name. These are system calls which exist on systems which
1123 have YP (aka NIS).
1124
1125* The time zone data files have been updated for the latest international
1126 conventions.
1127
1128* The SunRPC programs `portmap' and `rpcinfo' are now installed in
1129 $(sbindir) (usually /usr/local/sbin) instead of $(bindir).
1130\f
1131Version 1.08
1132
1133* The C library now includes support for Sun RPC, from Sun's free
1134 RPCSRC-4.0 distribution. The `portmap', `rpcinfo', and `rpcgen' programs
1135 are included. (There is still no support for YP.)
1136
1137* Tom Quinn has contributed a port of the C library to SGI machines running
1138 Irix 4 (mips-sgi-irix4).
1139
1140* The new `lockf' function is a simplified interface to the locking
1141 facilities of `fcntl', included for compatibility.
1142
1143* New time functions `timegm', `timelocal', and `dysize' for compatibility.
1144
1145* New header file <sys/timeb.h> and new function `ftime' for compatibility.
1146
1147* New header files <poll.h> and <sys/poll.h> and new function `poll' for
1148 compatibility.
1149
1150* The error message printed by `assert' for a failed assertion now includes
1151 the name of the program (if using GNU ld) and the name of the calling
1152 function (with versions of GCC that support this).
1153
1154* The `psignal' function is now declared in <signal.h>, not <stdio.h>.
1155
1156* The library now includes the <sys/mman.h> header file and memory
1157 management functions `mmap', `munmap', `mprotect', `msync', and
1158 `madvise', on systems that support those facilities.
1159
1160* The interface for `mcheck' has changed slightly: the function called to
1161 abort the program when an allocation inconsistency is detected now takes
1162 an argument that indicates the type of failure. The new function
1163 `mprobe' lets you request a consistency check for a particular block at
1164 any time (checks are normally done only when you call `free' or `realloc'
1165 on a block).
1166
1167* It is now possible to easily cross-compile the C library, building on one
1168 system a library to run on another machine and/or operating system. All
1169 you need to do is set the variable `HOST_CC' in `configparms' to the
1170 native compiler for programs to run on the machine you are building on (a
1171 few generator programs are used on Unix systems); set `CC' to the
1172 cross-compiler.
1173
1174* The new function `fexecve' (only implemented on the GNU system) executes
1175 a program file given a file descriptor already open on the file.
1176\f
1177Version 1.07
1178
1179* Brendan Kehoe has contributed most of a port to the DEC Alpha
1180 running OSF/1 (alpha-dec-osf1). He says it is 75% complete.
1181
1182* You can set the variable `libprefix' in `configparms' to specify a prefix
1183 to be prepended to installed library files; this makes it easy to install
1184 the GNU C library to be linked as `-lgnuc' or whatever.
1185
1186* The new `stpncpy' is a cross between `stpcpy' and `strncpy': It
1187 copies a limited number of characters from a string, and returns the
1188 address of the last character written.
1189
1190* You no longer need to check for whether the installed `stddef.h' is
1191 compatible with the GNU C library. configure now checks for you.
1192
1193* You can now define a per-stream `fileno' function to convert the
1194 stream's cookie into an integral file descriptor.
1195
1196* ``malloc (0)'' no longer returns a null pointer. Instead, it
1197 allocates zero bytes of storage, and returns a unique pointer which
1198 you can pass to `realloc' or `free'. The behavior is undefined if
1199 you dereference this pointer.
1200
1201* The C library now runs on Sony NEWS m68k machines running either
1202 NewsOS 3 or NewsOS 4.
1203
1204* The new `syscall' function is a system-dependent primitive function
1205 for invoking system calls. It has the canonical behavior on Unix
1206 systems, including unreliable return values for some calls (such as
1207 `pipe', `fork' and `getppid').
1208
1209* The error code `EWOULDBLOCK' is now obsolete; it is always defined
1210 to `EAGAIN', which is the preferred name. On systems whose kernels
1211 use two distinct codes, the C library now translates EWOULDBLOCK to
1212 EAGAIN in every system call function.
1213\f
1214Version 1.06
1215
1216* The GNU C Library Reference Manual is now distributed with the library.
1217 `make dvi' will produce a DVI file of the printed manual.
1218 `make info' will produce Info files that you can read on line using C-h i
1219 in Emacs or the `info' program.
ea278354 1220 Please send comments on the manual to bug-glibc-manual@gnu.org.
28f540f4
RM
1221
1222* The library now supports SVR4 on i386s (i386-unknown-sysv4).
1223
1224* Brendan Kehoe has contributed a port to Sun SPARCs running Solaris 2.
1225
1226* Jason Merrill has contributed a port to the Sequent Symmetry running
1227 Dynix version 3 (i386-sequent-dynix).
1228
1229* The library has been ported to i386s running SCO 3.2.4 (also known as SCO
1230 ODT 2.0; i386-unknown-sco3.2.4) or SCO 3.2 (i386-unknown-sco3.2).
1231
1232* New function `memory_warnings' lets you arrange to get warnings when
1233 malloc is running out of memory to allocate, like Emacs gives you.
1234
1235* The C library now contains the relocating allocator used in Emacs 19 for
1236 its editing buffers. This allocator (ralloc) minimizes allocation
1237 overhead and fragmentation by moving allocated regions around whenever it
1238 needs to. You always refer to a ralloc'd region with a "handle" (a
1239 pointer to a pointer--an object of type `void **').
1240
1241* There is a new `printf' format: `%m' gives you the string corresponding
1242 to the error code in `errno'.
1243
1244* In `scanf' formats, you can now use `%as' or `%a[' to do the normal `%s'
1245 or `%[' conversion, but instead of filling in a fixed-sized buffer you
1246 pass, the `a' modifier says to fill in a `char **' you pass with a
1247 malloc'd string.
1248
1249* The `fnmatch' function supports the new flag bits `FNM_LEADING_DIR' and
1250 `FNM_CASEFOLD'. `FNM_LEADING_DIR' lets a pattern like `foo*' match a
1251 name like `foo/bar'. `FNM_CASEFOLD' says to ignore case in matching.
1252
1253* `mkstemp' is a traditional Unix function to atomically create and open a
1254 uniquely-named temporary file.
1255\f
1256Version 1.05
1257
1258* The standard location for the file that says what the local timezone is
1259 has changed again. It is now `/usr/local/etc/localtime' (or more
1260 precisely, `${prefix}/etc/localtime') rather than `/etc/localtime'.
1261
1262* The distribution no longer contains any files with names longer than 14
1263 characters.
1264
1265* `struct ttyent' has two new flag bits: TTY_TRUSTED and TTY_CONSOLE.
1266 These are set by the new `trusted' and `console' keywords in `/etc/ttys'.
1267
1268* New functions `ttyslot' and `syslog' from 4.4 BSD.
1269\f
1270Version 1.04
1271
1272* The configuration process has changed quite a bit. The `configure'
1273 script is now used just like the configuration scripts for other GNU
1274 packages. The `sysdeps' directory hierarchy is much rearranged.
1275 The file `INSTALL' explains the new scheme in detail.
1276
1277* The header files no longer need to be processed into ANSI C and
1278 traditional C versions. There is just one set of files to install, and
1279 it will work with ANSI or old C compilers (including `gcc -traditional').
1280
1281* Brendan Kehoe and Ian Lance Taylor have ported the library to the
1282 MIPS DECStation running Ultrix 4.
1283
1284* The Sun 4 startup code (crt0) can now properly load SunOS 4 shared libraries.
1285 Tom Quinn contributed the initial code. The GNU C library can NOT yet be
1286 made itself into a shared library.
1287
1288* Yet further improved support for the i386, running 4.3 BSD-like systems
1289 (such as Mach 3 with the Unix single-server), or System V.
1290
1291* New function `strncasecmp' to do case-insensitive string comparison
1292 with limited length.
1293
1294* New function `strsep' is a reentrant alternative to `strtok'.
1295
1296* New functions `scandir' and `alphasort' for searching directories.
1297
1298* New function `setenv' is a better interface to `putenv'.
1299
1300* Ian Lance Taylor has contributed an implementation of the SVID `ftw'
1301 function for traversing a directory tree.
1302
1303* The GNU obstack package is now also part of the C library.
1304 The new function `open_obstack_stream' creates a stdio stream that
1305 writes onto an obstack; `obstack_printf' and `obstack_vprintf' do
1306 formatted output directly to an obstack.
1307
1308* Miscellaneous new functions: reboot, nice, sigaltstack (4.4 BSD only),
1309 cfmakeraw, getusershell, getpass, swab, getttyent, seteuid, setegid.
1310
1311* `FNM_FILE_NAME' is another name for `FNM_PATHNAME', used with `fnmatch'.
1312
1313* The new functions `strfry' and `memfrob' do mysterious and wonderful
1314 things to your strings.
1315
1316* There are some new test programs: test-fseek, testmb, and testrand.
1317
1318* Some work has been done to begin porting the library to 4.4 BSD and Linux.
1319 These ports are not finished, but are a good starting place for really
1320 supporting those systems.
1321
1322* `/etc/localtime' is now the standard location for the file that says what
1323 the local timezone is, rather than `/usr/local/lib/zoneinfo/localtime'.
1324 This follows the general principle that `/etc' is the place for all local
1325 configuration files.
1326
1327* The C library header files now use `extern "C"' when used by the C++
1328 compiler, so the C library should now work with C++ code.
1329
1330* The header file <bstring.h> is gone. <string.h> now declares bcopy,
56ddf355
UD
1331 bcmp, bzero, and ffs. (Update: nowadays these functions are declared
1332 in <strings.h>.)
28f540f4
RM
1333
1334* Mike Haertel (of GNU e?grep and malloc fame) has written a new sorting
1335 function which uses the `merge sort' algorithm, and is said to be
1336 significantly faster than the old GNU `qsort' function. Merge sort is
1337 now the standard `qsort' function. The new algorithm can require a lot
1338 of temporary storage; so, the old sorting function is called when the
1339 required storage is not available.
1340
1341* The C library now includes Michael Glad's Ultra Fast Crypt, which
1342 provides the Unix `crypt' function, plus some other entry points.
28f540f4
RM
1343
1344* The code and header files taken from 4.4 BSD have been updated with the
1345 latest files released from Berkeley.
1346\f
1347----------------------------------------------------------------------
1348Copyright information:
1349
56ddf355 1350Copyright (C) 1992-1999, 2000 Free Software Foundation, Inc.
28f540f4
RM
1351
1352 Permission is granted to anyone to make or distribute verbatim copies
1353 of this document as received, in any medium, provided that the
1354 copyright notice and this permission notice are preserved,
1355 thus giving the recipient permission to redistribute in turn.
1356
1357 Permission is granted to distribute modified versions
1358 of this document, or of portions of it,
1359 under the above conditions, provided also that they
1360 carry prominent notices stating who last changed them.
1361\f
1362Local variables:
1363version-control: never
557a9213 1364End: