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