]> git.ipfire.org Git - thirdparty/glibc.git/blame - NEWS
Implement interfaces to set and get names of threads.
[thirdparty/glibc.git] / NEWS
CommitLineData
86a4c67f 1GNU C Library NEWS -- history of user-visible changes. 2010-4-9
71170aa0 2Copyright (C) 1992-2009, 2010 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.
ee1a7fab
UD
7\f
8Version 2.12
9
d36b9613
UD
10* The following bugs are resolved with this release:
11
12 3662, 4457, 5553, 10162, 10401, 10414, 10554, 10824, 10864, 10915, 10918,
13 10936, 10939, 10958, 10968, 10969, 10972, 10992, 11000, 11007, 11010,
14 11027, 11039, 11040, 11041, 11043, 11046, 11056, 11070, 11093, 11115,
15 11120, 11125, 11126, 11127, 11134, 11141, 11149, 11183, 11184, 11185,
16 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11200,
17 11230, 11235, 11242, 11254, 11258, 11271, 11272, 11276, 11279, 11287,
86a4c67f
UD
18 11292, 11319, 11332, 11333, 11387, 11389, 11390, 11394, 11397, 11410,
19 11438, 11449, 11470, 11471
20
21
22* New interfaces: pthread_getname_np, pthread_setname_np
d36b9613 23
ee1a7fab
UD
24* New Linux interface: recvmmsg
25
5e4295fb
UD
26* STT_GNU_IFUNC implemented for Sparc by David Miller.
27
28* The dynamic linker now recognizes supported ABI versions from the
29 EI_ABIVERSION field in the ELF header.
30 Implemented by Ulrich Drepper.
31
71170aa0
UD
32* New NIS mode selector ADJUNCT_AS_SHADOW. The passwd.adjunct.byname table
33 will not be used to fill in password fields in the passwd.byname replies.
34 Instead it is used to synthesize the shadow.byname table, should it be
35 missing. This is a useful mode in some installations involving Solaris.
36 Implemented by Ulrich Drepper.
37
d36b9613 38* New locales: kok_IN, sq_MK, cv_RU
b50f8e42
UD
39\f
40Version 2.11
41
d36b9613
UD
42* The following bugs are resolved with this release:
43
44 3270, 7094, 9924, 9986, 10011, 10085, 10107, 10159, 10162, 10166, 10183,
45 10195, 10196, 10200, 10203, 10207, 10211, 10213, 10217, 10221, 10229,
46 10262, 10286, 10312, 10315, 10319, 10349, 10360, 10391, 10402, 10416,
47 10418, 10422, 10425, 10446, 10448, 10452, 10540, 10553, 10560, 10564,
48 10609, 10643, 10692, 10713, 10717, 10730, 10731, 10742, 10780, 10784,
49 10789, 10817, 10823, 10840, 10847
50
3a83202d
UD
51* New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps,
52 mkostemps64
3d5243d4
UD
53 Implemented by Ulrich Drepper.
54
24ab9c76 55* Checking version of longjmp added that fails if an uninitialized stack
b50f8e42
UD
56 frame would be created. Implemented by Ulrich Drepper.
57
b8706f70
UD
58* STT_GNU_IFUNC is now supported in static executables.
59 Implemented by H.J. Lu.
60
51a71cf0
UD
61* STT_GNU_IFUNC implemented for PPC by Alan Modra.
62
0122f28e 63* New optimized string functions for x86-64: strstr, strcasestr, memcmp,
9d36a6c4 64 strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp (SSE2, SSE4.2),
7f3146e7 65 strncmp (SSE2, SSE4.2), strchr (SSE4.2), strrchr (SSE4.2).
0122f28e
UD
66 Contributed by H.J. Lu.
67
9d36a6c4 68 strlen, rawmemchr, strcmp (SSSE3), strncmp (SSSE3).
0122f28e
UD
69 Implemented by Ulrich Drepper.
70
9d36a6c4
UD
71* New optimized string functions for x86: strlen, strcspn, strspn, strpbrk,
72 strstr, strcasestr.
73 Contributed by H.J. Lu.
74
75* Support for fma instruction in AVX on x86-64.
76 Implemented by H.J. Lu and Ulrich Drepper.
77
0122f28e
UD
78* AVX support in x86-64 auditing support in ld.so.
79 Implemented by H.J. Lu.
80
81* STB_GNU_UNIQUE support added.
82 Implemented by Ulrich Drepper.
83
84* Implement second fallback mode for optimized DNS lookup for even more
85 broken environments. If two requests from the same port are not
86 handled correctly close the socket and open a new one before sending
87 the second request. The 'single-request-reopen' option in /etc/resolv.conf
88 can be used to select this mode right away, instead of rediscovering the
89 necessity is every process again.
90 Implemented by Ulrich Drepper.
91
9d36a6c4
UD
92* New resolver flag RES_USE_DNSSEC to enable use of verified lookup.
93 Implemented by Adam Tkac.
94
95* Optimized iconv conversions for S390x.
96 Implemented by Andreas Krebbel.
97
4bc1b896
UD
98* Using condvars with PI mutexes is now more efficient due to kernel
99 support for requeueing to PI futexes. NPTL support added for x86-64.
100 Implemented by Ulrich Drepper.
101
9dd5b8a1 102* New locales: ps_AF, my_MM
f1092afe
UD
103\f
104Version 2.10
105
d36b9613
UD
106* The following bugs are resolved with this release:
107
108 697, 5381, 5807, 6411, 6545, 7040, 7058, 7067, 7080, 7083, 7095, 7098,
109 9677, 9694, 9697, 9701, 9704, 9705, 9706, 9720, 9726, 9730, 9733, 9736,
110 9741, 9750, 9753, 9759, 9781, 9791, 9793, 9823, 9833, 9844, 9880, 9881,
111 9891, 9893, 9895, 9913, 9916, 9920, 9948, 9955, 9957, 9963, 9985, 10052,
112 10069, 10086, 10087, 10090, 10092, 10093, 10100, 10118, 10128
113
bb066545 114* New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info
e109c612
UD
115 Implemented by Ulrich Drepper.
116
425ce2ed 117* New Linux interfaces: accept4, fallocate, fallocate64.
e109c612 118 Implemented by Ulrich Drepper.
6f5c3117 119
1fdd89a7 120* Correct declarations of string function when used in C++ code. This
735be400 121 could lead to compile errors for invalid C++ code.
1fdd89a7 122
6cbe890a
UD
123* XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are
124 now in POSIX.
77db439e 125
1f04d005 126* New POSIX 2008 interface: psiginfo
6cbe890a 127 Implemented by Ulrich Drepper.
1f04d005 128
610e67ed
UD
129* New ISO C++1x interfaces: quick_exit, at_quick_exit
130 Implemented by Ulrich Drepper.
131
878b72c5
UD
132* Support for selecting between multiple function definitions at runtime
133 using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper.
134
e109c612
UD
135* The libcrypt library can now use the hash function implementations in
136 NSS. Implemented by Ulrich Drepper.
137
138* The malloc implementation can be compiled to be less memory efficient
139 but higher performing in multi-threaded programs.
140 Implemented by Ulrich Drepper.
141
735be400 142* New locales: nan_TW@latin, ks_IN
878b72c5 143
84aa52d7 144* Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64.
9d26efa9
UD
145 Implemented by Ulrich Drepper.
146
147* Extended printf hook support. It is possible to use user-defined types
148 and extend existing format specifiers.
a152f366
UD
149 Implemented by Ulrich Drepper.
150
c7e74e59
UD
151* Handling for group shadow files has been added.
152 Implemented by Ulrich Drepper.
153
57be3fd7
UD
154* DNS IPv4-IPv6 parallel lookup now deals better with broken DNS
155 servers (the case, e.g., for some people using the built-in DNS
156 server in ADSL modems/routers). There is a once-per-process timeout
157 in case of a broken server. To avoid it, users can run nscd or put
158 'options single-request' in /etc/resolv.conf.
159 Implemented by Ulrich Drepper.
28919a77 160\f
b29899ae
UD
161Version 2.9
162
d36b9613
UD
163* The following bugs are resolved with this release:
164
165 3406, 5209, 5210, 5381, 5794, 5814, 5911, 6428, 6438, 6442, 6447, 6461,
166 6472, 6505, 6544, 6589, 6612, 6634, 6653, 6654, 6657, 6698, 6712, 6713,
167 6719, 6723, 6724, 6740, 6763, 6771, 6790, 6791, 6817, 6824, 6839, 6843,
168 6845, 6856, 6857, 6860, 6867, 6875, 6919, 6920, 6942, 6947, 6955, 6966,
169 6968, 6974, 6980, 6995, 7008, 7009, 7029
170
b29899ae 171* Unified lookup for getaddrinfo: IPv4 and IPv6 addresses are now looked
f05ac8f5
UD
172 up at the same time. Implemented by Ulrich Drepper.
173
174* TLS descriptors for LD and GD on x86 and x86-64.
175 Implemented by Alexandre Oliva.
18a74157
UD
176
177* getaddrinfo now handles DCCP and UDPlite.
178 Implemented by Ulrich Drepper.
0caca71a
UD
179
180* New fixed-size conversion macros: htobe16, htole16, be16toh, le16toh,
181 htobe32, htole32, be32toh, le32toh, htobe64, htole64, be64toh, le64toh.
182 Implemented by Ulrich Drepper.
183
184* New implementation of memmem, strstr, and strcasestr which is O(n).
185 Implemented by Eric Blake.
e038616f 186
8ec2550e 187* New Linux interfaces: inotify_init1, dup3, epoll_create1, pipe2
e038616f
UD
188
189* Implement "e" option for popen to open file descriptor with the
ebcc1f4d 190 close-on-exec flag set. Implemented by Ulrich Drepper.
e038616f 191
7b3ba2c4
UD
192* Implement "b" mode for fmemopen. In this mode writes writes don't
193 implicitly add a NUL byte and seeks from the end of the buffer really
194 use the buffer end, not the string length as the basis.
195 Implemented by Ulrich Drepper.
196
e038616f
UD
197* Many functions, exported and internal, now atomically set the close-on-exec
198 flag when run on a sufficiently new kernel. Implemented by Ulrich Drepper.
48b22986 199
bf837fa3
UD
200* Sorting rules for some Indian languages (Kannada, Gurumukhi, Telugu,
201 Sinhala)
48b22986 202 Implemented by Pravin Satpute.
0a26fc4d
UD
203
204* New locales: sd_IN, sd_IN@devanagari, ks_IN@devanagari, ht_HT, en_AG, nl_AW.
b29899ae 205\f
28919a77
UD
206Version 2.8
207
d36b9613
UD
208* The following bugs are resolved with this release:
209
210 2549, 3112, 4314, 4407, 4997, 5012, 5040, 5112, 5204, 5208, 5209, 5220,
211 5222, 5224, 5225, 5237, 5238, 5240, 5245, 5277, 5346, 5375, 5378, 5382,
212 5424, 5427, 5428, 5435, 5436, 5439, 5441, 5442, 5443, 5451, 5452, 5454,
213 5455, 5463, 5464, 5465, 5475, 5477, 5478, 5520, 5541, 5545, 5553, 5600,
214 5602, 5607, 5614, 5627, 5628, 5736, 5737, 5741, 5753, 5760, 5762, 5768,
215 5774, 5777, 5778, 5779, 5786, 5790, 5818, 5854, 5857, 5903, 5939, 5979,
216 5983, 5995, 5998, 6004, 6007, 6020, 6021, 6024, 6040, 6042
217
e038616f 218* New locales: bo_CN, bo_IN, shs_CA.
b4354cf4 219
77751669 220* New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8.
aece054b
UD
221
222* Sorting rules for some Indian languages (Devanagari and Gujarati).
223 Implemented by Pravin Satpute.
224
225* IPV6 addresses in /etc/resolv.conf can now have a scope ID
226
227* nscd caches now all timeouts for DNS entries
228 Implemented by Ulrich Drepper.
229
230* nscd is more efficient and wakes up less often.
231 Implemented by Ulrich Drepper.
232
233* More checking functions: asprintf, dprintf, obstack_printf, vasprintf,
234 vdprintf, and obstack_vprintf.
235 Implemented by Jakub Jelinek.
236
237* Faster memset for x86-64.
238 Implemented by Harsha Jagasia and H.J. Lu.
239
240* Faster memcpy on x86.
241 Implemented by Ulrich Drepper.
242
243* ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX).
244 Implemented by Ulrich Drepper.
3b32d8a2
UD
245
246* Faster sqrt and sqrtf implemention for some PPC variants.
247 Implemented by Stephen Munroe.
46c38bd7 248\f
e1db0493
UD
249Version 2.7
250
d36b9613
UD
251* The following bugs are resolved with this release:
252
253 4125, 4126, 4178, 4359, 4407, 4512, 4514, 4525, 4554, 4556, 4557, 4566,
254 4582, 4586, 4588, 4599, 4610, 4647, 4702, 4705, 4726, 4745, 4772, 4773,
255 4775, 4776, 4792, 4813, 4814, 4816, 4833, 4858, 4860, 4896, 4905, 4925,
256 4936, 4937, 4938, 4941, 4946, 4963, 4972, 5010, 5028, 5043, 5058, 5063,
257 5071, 5103, 5104, 5112, 5113, 5184, 5186
258
e1db0493
UD
259* More checking functions: fread, fread_unlocked, open*, mq_open.
260 Implemented by Jakub Jelinek and Ulrich Drepper.
261
262* Extend fortification to C++. Implemented by Jakub Jelinek.
263
264* Implement 'm' modifier for scanf. Add stricter C99/SUS compliance
265 by not recognizing 'a' as a modifier when those specs are requested.
266 Implemented by Jakub Jelinek.
267
268* PPC optimizations to math and string functions.
269 Implemented by Steven Munroe.
270
28919a77 271* New interfaces: mkostemp, mkostemp64. Like mkstemp* but allow additional
e1db0493
UD
272 options to be passed. Implemented by Ulrich Drepper.
273
274* More CPU set manipulation functions. Implemented by Ulrich Drepper.
275
0304f168
UD
276* New Linux interfaces: signalfd, eventfd, eventfd_read, and eventfd_write.
277 Implemented by Ulrich Drepper.
278
e1db0493
UD
279* Handle private futexes in the NPTL implementation.
280 Implemented by Jakub Jelinek and Ulrich Drepper.
281
282* Add support for O_CLOEXEC. Implement in Hurd. Use throughout libc.
283 Implemented by Roland McGrath and Ulrich Drepper.
284
285* Linux/x86-64 vDSO support. Implemented by Ulrich Drepper.
286
287* SHA-256 and SHA-512 based password encryption.
288 Implemented by Ulrich Drepper.
0304f168
UD
289
290* New locales: ber_DZ, ber_MA, en_NG, fil_PH, fur_IT, fy_DE, ha_NG, ig_NG,
291 ik_CA, iu_CA, li_BE, li_NL, nds_DE, nds_NL, pap_AN, sc_IT, tk_TM, ug_CN,
292 yo_NG.
293
294+ New iconv modules: MAC-CENTRALEUROPE, ISO-8859-9E, KOI8-RU.
295 Implemented by Ulrich Drepper.
e1db0493 296\f
11bf311e 297Version 2.6
46c38bd7 298
d36b9613
UD
299* The following bugs are resolved with this release:
300
301 3156, 3213, 3285, 3291, 3306, 3313, 3320, 3322, 3325, 3326, 3334, 3348,
302 3352, 3363, 3369, 3426, 3427, 3429, 3451, 3458, 3465, 3480, 3483, 3493,
303 3514, 3515, 3559, 3632, 3664, 3673, 3674, 3745, 3747, 3818, 3840, 3842,
304 3851, 3855, 3884, 3885, 3902, 3905, 3919, 3944, 3954, 3955, 3957, 3991,
305 3995, 3996, 4024, 4040, 4069, 4070, 4074, 4076, 4096, 4101, 4102, 4114,
306 4130, 4131, 4181, 4276, 4306, 4342, 4344, 4349, 4364, 4368, 4381, 4392,
307 4403, 4405, 4406, 4411, 4438, 4439, 4455, 4456, 4465, 4512, 4514, 4586,
308 4702, 4858
309
bce20b9a 310* New Linux interfaces: epoll_pwait, sched_getcpu.
46c38bd7 311
4a44ce79
UD
312* New generic interfaces: strerror_l.
313
b21fa963 314* nscd can now cache the services database. Implemented by Ulrich Drepper.
3af48b5b
UD
315\f
316Version 2.5
317
d36b9613
UD
318* The following bugs are resolved with this release:
319
320 39, 68, 192, 352, 388, 531, 935, 1006, 1201, 1203, 1386, 1782, 1783, 1784,
321 1785, 1786, 1787, 1951, 1974, 1996, 2072, 2098, 2125, 2134, 2158, 2182,
322 2349, 2376, 2386, 2389, 2415, 2418, 2420, 2423, 2450, 2451, 2466, 2472,
323 2473, 2477, 2498, 2499, 2501, 2502, 2505, 2507, 2508, 2509, 2517, 2526,
324 2569, 2571, 2592, 2611, 2625, 2632, 2644, 2662, 2680, 2683, 2684, 2693,
325 2695, 2703, 2734, 2751, 2764, 2766, 2775, 2792, 2821, 2823, 2832, 2841,
326 2843, 2883, 2892, 2908, 2914, 2926, 2961, 2978, 2980, 2987, 2997, 2998,
327 3013, 3018, 3034, 3040, 3044, 3123, 3124, 3137, 3138, 3143, 3155, 3189,
328 3225, 3251, 3252, 3253, 3273
329
3af48b5b 330* For Linux, the sorting of addresses returned by getaddrinfo now also
457b559e
UD
331 handles rules 3, 4, and 7 from RFC 3484. I.e., all rules are handled.
332 Implemented by Ulrich Drepper.
3af48b5b 333
3142b1ac
UD
334* Allow system admin to configure getaddrinfo with the /etc/gai.conf file.
335 Implemented by Ulrich Drepper.
336
871b9158 337* New Linux interfaces: splice, tee, sync_file_range, vmsplice.
1e528c6e
UD
338
339* New iconv module for MIK. Contributed by Alexander Shopov.
3af48b5b 340
3142b1ac
UD
341* For sites with broken group and/or passwd database, the auto-propagate
342 option of nscd can prevent creating ID lookup entries from the results
343 of a name lookup and vice versa. This usually is no problem but some
457b559e 344 site might have problems with the default behavior.
3142b1ac
UD
345 Implemented by Ulrich Drepper.
346
07bfff20 347* Iterating over entire database in NIS can be slow. With the
3142b1ac
UD
348 SETENT_BATCH_READ option in /etc/default/nss a system admin can decide
349 to trade time for memory. The entire database will be read at once.
350 Implemented by Ulrich Drepper.
351
07bfff20
UD
352* The interfaces introduced in RFC 3542 have been implemented by
353 Ulrich Drepper.
354
871b9158
UD
355* Support for the new ELF hash table format was added by Ulrich Drepper.
356
d5ba53f9
UD
357* Support for priority inheritance mutexes added by Jakub Jelinek and
358 Ulrich Drepper.
359
ad2a3c07
UD
360* Support for priority protected mutexes added by Jakub Jelinek.
361
88cc61e8
UD
362* New locales: nr_ZA, pa_PK, ca_AD, ca_FR, ca_IT, el_CY, tr_CY, as_IN,
363 or_IN, csb_PL, fy_NL, sr_ME.
2e92188d 364\f
137e6462
UD
365Version 2.4
366
367* More overflow detection functions.
368
369* New iconv converters for IBM1025, IBM1122, IBM1137, IBM1153,
370 IBM1154, IBM1155, IBM1156, IBM1157, and IBM1158 contributed by Jiro Sekiba.
1aa4e40a 371
4973cbe5
UD
372 More converters for IBM803, IBM901, IBM902, IBM921, IBM1008, IBM1097,
373 IBM1112, IBM1123, IBM1130, IBM1140, IBM1141, IBM1142, IBM1143, IBM1144,
374 IBM1145, IBM1146, IBM1147, IBM1148, IBM1149, IBM1166, IBM1167, IBM4517,
375 IBM4899, IBM4909, IBM4971, IBM5347, IBM9030, IBM9066, IBM9448, IBM12712,
376 IBM16804, IBM1364, IBM1371, IBM1388, IBM1390, and IBM1399 contributed
377 by Masahide Washizawa.
378
1aa4e40a
UD
379* It is now possible to install audit libraries for the dynamic linker using
380 LD_AUDIT. Implemented by Ulrich Drepper.
da0eaa47
RM
381
382* The LinuxThreads add-on, providing pthreads on Linux 2.4 kernels, is no
383 longer supported. The new NPTL implementation requires Linux 2.6 kernels.
384 For a libc and libpthread that works well on Linux 2.4 kernels, we
385 recommend using the stable 2.3 branch.
4973cbe5 386
35129bc0
RM
387* The new function open_wmemstream acts like open_memstream,
388 but uses a wchar_t wide character buffer.
389
390* The new function ppoll is an improved version of poll, similar to pselect.
391
392* New interfaces: fdopendir, openat, fstatat, fchmodat, fchownat,
393 futimesat, faccessat, mkdirat, mkfifoat, mknodat,
394 renameat, unlinkat, linkat, symlinkat, readlinkat.
395
396* New Linux kernel system calls: unshare,
397 inotify_init, inotify_add_watch, inotify_rm_watch.
398
399* The euidaccess function is now also known by the alias eaccess,
400 for compatibility with some other systems.
401
402* Timezone data updated to 2006b version.
137e6462 403\f
e6a9beca
RM
404Version 2.3.6
405
406* The following bugs are resolved with this release:
407
408 38, 253, 549, 622, 653, 721, 758, 851, 877, 915, 934, 955, 961,
409 1016, 1037, 1076, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
410 1087, 1088, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
411 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
412 1110, 1111, 1112, 1113, 1125, 1137, 1138, 1249, 1250, 1251, 1252,
413 1253, 1254, 1350, 1358, 1394, 1438, 1498, 1534
414
415 Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
416
417* As of this release, GCC 4 can be used to compile the C Library.
418
419* Timezone data updated to 2005m version.
420\f
da232bf9
RM
421Version 2.3.5
422
423* The following bugs are resolved with this release:
424
425 284, 592, 602, 626, 633, 640, 650, 661, 671, 681, 693, 700, 710, 719,
426 722, 723, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736,
427 737, 738, 739, 740, 741, 742, 743, 744, 745, 765, 767, 768, 769, 776,
428 777, 787, 821, 822, 823, 825
429
430 Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
431\f
a55bda85
UD
432Version 2.3.4
433
434* Support for RFC 3678. Real implementations exist only for Linux so far.
435 Implemented by Ulrich Drepper.
8a1f658b
UD
436
437* nscd can now cache entries persistently. Expiring entries are reloaded.
438 For speedups the cache can be shared in memory with client processes.
439 Implemented by Ulrich Drepper.
440
441* nscd can now perform SELinux checks.
442 Implemented by Matthew Rickard <mjricka@epoch.ncsc.mil>.
443
0325dd20 444* getaddrinfo queries are now cached. Canonical name lookup is performed
8a1f658b
UD
445 efficiently.
446 Implemented by Ulrich Drepper.
447
448* The nothrow function attribute is used when headers are used by gcc when
449 compiling C code. This can avoid significant amounts of exception
450 handling data.
451
452* The malloc functions perform more error checking and are stricter when
453 it comes to reacting on errors. The default action is to terminate
0325dd20 454 the process after showing an error message. Implemented by Ulrich Drepper.
8a1f658b
UD
455
456* Reverse lookups of IPv6 addresses does not use bit string or .ip6.int
0325dd20
UD
457 lookups anymore unless explicitly requested. Implemented by Ulrich Drepper.
458
459* Namespaces in ld.so are implemented. DSOs can be loaded in separate
460 namespaces using the new function dlmopen(). This feature is of course,
461 like most other dynamic loading functionality, not available in statically
462 linked applications. Implemented by Ulrich Drepper.
463
464* Low-overhead boundary checking variants of string and some stdio functions
465 were added. These are to be used in conjunction with a gcc patch by
466 Jakub Jelinek which adds calls to these functions if possible.
720817e7
RM
467 Implemented by Jakub Jelinek and Ulrich Drepper.
468
469* Old code for several operating systems and machine architectures that
470 have not been in working condition in a long time have been removed from
471 the main source tree maintained by the GNU C Library's maintainers.
472 These files are now reside in the separate `ports' source module
473 that is usable as an add-on when building the library.
a55bda85 474\f
3a601d31
RM
475Version 2.3.3
476
45e4762c
RM
477* New functions `dladdr1' and `dlinfo' in <dlfcn.h> provide more ways to
478 interrogate the dynamic linker, compatible with the Solaris interface.
479
3a601d31
RM
480* ELF thread-local storage support (TLS) now works on PowerPC and PowerPC64;
481 implemented by Paul Mackerras, Steven Munroe, and Roland McGrath.
925c3c5c 482
69be6aaf 483* getifaddrs now uses the netlink interface on Linux to get its information.
925c3c5c
UD
484 Implemented by Thorsten Kukuk.
485
486* getaddrinfo now implements AI_V4MAPPED, AI_ALL, and AI_ADDRCONF.
487 Implemented by Ulrich Drepper.
97fd3a30
UD
488
489* support for non-executable stacks on x86 has been added. Changes mostly
490 by Roland McGrath.
491
c5af724c 492* regex is now much faster for multibyte locales. Changes by Jakub Jelinek
97fd3a30
UD
493 and Ulrich Drepper.
494
495* getaddrinfo now performs destination address selection according to
496 RFC 3484.
3a601d31 497\f
747bf98e
RM
498Version 2.3.2
499
f87277f2
RM
500* Thread-safe interfaces for many functions that access locale data
501 were added in version 2.3, but these features were omitted from NEWS.
502 Many functions have variants with an `_l' suffix that take a `locale_t'
503 object as a parameter rather than consulting the current locale.
504 The new functions `newlocale', `duplocale', and `freelocale' in <locale.h>
505 create and maintain `locale_t' objects. Additionally, the new function
506 `uselocale' sets "the current locale" (as used by functions not so
507 parameterized) set for an individual thread. These features were added
508 in version 2.3, implemented by Ulrich Drepper and Roland McGrath.
509
747bf98e
RM
510* The functions getresuid, getresgid, setresuid, and setresgid, which
511 have long been available on Linux, are now declared in <unistd.h>
512 and are now also available on the Hurd.
513
514* ELF thread-local storage support (TLS) now works on x86-64.
d62507dd
RM
515
516* The new dynamic string token $LIB is expanded in shared library names.
517 This normally expands to lib, but on some 64-bit platforms to lib64 instead.
52a16e58 518
f87277f2
RM
519* Aldy Hernandez contributed complete software floating point support for
520 PowerPC machines with no FPU.
521
52a16e58 522* fexecve is implemented on Linux.
f9ad060c 523
f87277f2
RM
524* The `btowc' function should work at least twice as fast due to
525 specialized callbacks in the iconv modules. Implemented by Bruno Haible.
9ef0a840
UD
526
527* With approriate thread add-ons cancelable functions are now implemented
528 in libc.so as well. No need to call the function in libpthread. This
529 change allowed to finally disable the incorrect and expensive handling
530 of weak definition in ld.so.
531
532* Yet more PLT entries in libc.so have been removed. We finally arrived
533 at the bare minimum. Startup times improved appropriately.
534
535* Support for the new Linux/x86 system call interface was added. The
536 AT_SYSINFO auxiliary vector entry is recognized and handled.
747bf98e 537\f
03a2c647 538Version 2.3
37fb1084 539
03a2c647
UD
540* Masahide Washizawa contributed iconv modules for IBM1163 and IBM1164
541 charsets.
542
543* iconv (the program and the interface) now accepts empty names (excluding
544 options like //TRANSLIT) to mean "use charset of current locale".
47e8b443 545
bb0ec5bd 546* localedef can now transliterate characters in strings which are not in
47e8b443 547 the provided charmap. The information from the input locale is used.
c17f665b
UD
548
549* Prelinking support was added for ELF targets. This requires additional
550 tools and recent versions of the GNU binutils. Contributed by Jakub Jelinek.
8e57fc70 551
bb0ec5bd 552* Read-only stdio streams now use mmap to speed up operation by eliminating
91e6367e
UD
553 copying and buffer underflows. To use add 'm' to the mode string of
554 the fopen/fdopen/freopen call. Implemented by Ulrich Drepper.
207b66ce
UD
555
556* The malloc functions were completely rewritten by Wolfram Gloger based
557 on Doug Lea's malloc-2.7.0.c.
3b0bdc72 558
bb0ec5bd 559* Isamu Hasegawa contributed a completely new and POSIX-conformant
3b0bdc72 560 implementation of regex.
02779eaa
UD
561
562* Bruno Haible upgraded the iconv and locale implementation to support
563 Unicode 3.2.
be45f421 564
bb0ec5bd
RM
565* Contents of the LC_* and LANG environment variables in the CEN style are
566 not recognized anymore. It never was used. Change by Ulrich Drepper.
be45f421 567
bb0ec5bd
RM
568* The runtime (ld.so, libc, libpthread for Linux) now can handle the ELF
569 thread-local storage (TLS) ABI on some platforms.
570 Changes by Ulrich Drepper. SH support by Kaz Kojima.
be45f421
UD
571
572* Bruno Haible contributed iconv converters for ISO-2022-JP-3, SHIFT JIS-X0213,
f87277f2 573 EUC-JISX0213, and TSCII.
a753ffb2
RM
574
575* New header <ifaddrs.h> with functions `getifaddrs' and `freeifaddrs':
576 BSD-compatible interface for getting all network interface addresses.
577 Implementation for IPv4 by Roland McGrath.
6a9340b5
UD
578
579* Loading of locale data is faster due to the introduction of a locale
580 archive. Implemented by Roland McGrath and Ulrich Drepper.
dd4f2115
UD
581
582* Startup times are significantly reduced by not using exported functions
583 inside the library itself. Changes by Jakub Jelinek, Roland McGrath,
584 and Ulrich Drepper.
c843e065
RM
585
586* Steven Munroe contributed a port to PowerPC64/Linux.
587\f
45061a15
RM
588Version 2.2.6
589
590* The Hurd now uses the GNU libio implementation of stdio rather than the
591 old GNU stdio implementation, and uses a new ABI (libc.so.0.3).
592
593* The Hurd on x86 now has the `ioperm' function and <sys/io.h> header file
594 with the same behavior as the Linux system call of the same name.
03a2c647 595\f
a8ae31c2
UD
596Version 2.2.5
597
76321a25
AJ
598* Stephen Moshier implemented log2, log10, powl and cbrtl for the
599 128-bit long double format.
a8ae31c2 600
557a9213
UD
601* Masahide Washizawa contributed iconv modules for IBM1132, IBM1133, IBM1160,
602 IBM1161, and IBM1162 charsets.
a8ae31c2 603
ad2e4f18 604* Andreas Jaeger contributed a port to x86-64/Linux.
a8ae31c2 605
7d0c5823
RM
606* Peter Bruin contributed a port to PowerPC/Hurd.
607
a8ae31c2
UD
608* libc functions using I/O streams now can handle wide-oriented streams
609 as well.
610
45061a15
RM
611* optimizations in the dynamic linker. Binaries created by recent binutils
612 versions start up quicker due to reduced time spent on relocations.
8e57fc70
UD
613
614* Support for use of gcc3 added by Jakub Jelinek and HJ Lu.
7d0c5823 615\f
33996419
AJ
616Version 2.2.4
617
2995f70e 618* Stephen Moshier implemented cosh, expm1, log1p, acos, sinh, tanh,
aff17a50 619 asinh, atanh, j0 for the 128-bit long double format.
8fee1bb0
UD
620
621* Bruno Haible updated all the code handling Unicode in some form to
622 support Unicode 3.1.
86dbe05e
UD
623
624* Speed of regex for single-byte locales is back to previous levels.
625 Patch by Isamu Hasegawa.
045fcd26 626
69d5f925 627* Alpha, SPARC, and IA-64 now also using floating stacks.
045fcd26 628
69d5f925 629* Startup time of internationalized applications greatly improved through
045fcd26
UD
630 iconv cache. Use iconvconfig to generate the cache file.
631 Contributed by Ulrich Drepper.
632
633* The IA-64 specific part of ld.so was rewritten to eliminate some pretty
634 severe performance problems. Patch by David Mosberger.
635
636* The Hurd port got a lot more functionality like AIO, various stdio
637 extensions, etc. Mainly done by Roland McGrath.
129d706d
UD
638
639* mtrace can now lookup symbols in shared libraries.
33996419 640\f
2ace5721
UD
641Version 2.2.3
642
1746f2b0 643* Intel's IA-64 math library is largely integrated. It provides fast and
2ace5721
UD
644 accurate implementatations for most basic and standard math functions
645 in float, double, and long double format.
646
f128331c 647* Stephen Moshier implemented j0, j1, jn, y0, y1, yn, lgamma, erf, erfc,
b8750342
UD
648 and asin for the 96-bit long double format and asin, log, tan for the
649 128-bit long double format.
07f951e4 650
e4d82761
UD
651* The beginning of a last-bit accurate math library by IBM Haifa were added.
652 The basic double functions exist today. Contributed by Abraham Ziv
653 <ziv@il.ibm.com>, Moshe Olshansky <olshansk@il.ibm.com>, Ealan Henis
654 <ealan@il.ibm.com>, and Anna Reitman <reitman@il.ibm.com>.
655
2ace5721
UD
656* An asynchronous name lookup library was added. The interface is designed
657 after POSIX AIO. The proposal was circulated beforehand to get comments.
658 No negative ones came in. Implemented by Ulrich Drepper.
b8a8413c
UD
659
660* Port to S390/64bit contributed by Martin Schwidefsky
661 <schwidefsky@de.ibm.com>.
a66f0958
UD
662
663* David Mosberger <davidm@hpl.hp.com> implemented the setcontext family
664 of functions for Linux/IA-64.
481b550f
UD
665
666* The RPC code is now thread safe. Threads can now use the same service
667 of different services at the same time. Patch by Eric Norum
668 <eric.norum@usask.ca> with some help by Ulrich Drepper.
f128331c
UD
669
670* Martin Schwidefsky <schwidefsky@de.ibm.com> implemented the setcontext
671 family of functions for Linux/S390.
232fdf8c
UD
672
673* Ulrich Drepper <drepper@redhat.com> implemented the setcontext family
674 of functions for Linux/x86.
eacde9d0
UD
675
676* Port to Linux/CRIS contributed by Axis Communications.
2ace5721 677\f
306eeae5
UD
678Version 2.2.2
679
464d97ec 680* Lots of headers were cleaned up. Using the tool in the conform/ subdir
306eeae5
UD
681 we can now check for namespace violations and missing declarations. The
682 result is that almost all headers are now Unix-compliant (as defined in
683 the upcoming XPG6). The negative side is that some programs might need
684 corrections, too, if they depend on the incorrect form of the headers in
685 previous versions which defined too many symbols and included too many
686 other headers.
464d97ec
UD
687
688* regex now handles multibyte character sets correctly.
689 Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
690
691* iconv (the program) does now conform to the upcoming XPG6 and handles
692 charmaps. Instead of the charset names the path of charmaps can be
693 provided and the conversion happens based on this data.
694 Contributed by Ulrich Drepper.
695
696* The locale program now provides detailed information about the installed
697 locales. While
698
699 locale -a
700
701 only lists the names of the supported locales
702
703 locale -a --verbose
704
705 provides details such as country, language, and codeset name.
706 Contributed by Ulrich Drepper.
306eeae5 707\f
d2defdc4
UD
708Version 2.2.1
709
710* The gencat program now parses the input file according to the charset
711 selected by the LC_CTYPE category. This is important for stateful
712 character sets. To make generating catalogs easier there is a way
713 to overwrite the charset selected by the locale: before the first
714 message or $ quote line the catalog can contain a line like
715
716 $ codeset=ISO-8859-2
717
718 to select the charset (ISO-8859-2 in this case).
719
720 Implemented by Shinya Hanataka and Ulrich Drepper.
aea6353a
UD
721
722* New codeset conversion modules: IBM-922 (Estonia PC codeset),
723 IBM-1124 (Ukraine PC codeset), IBM-1129 (Vietnamese PC codeset).
724 Contributed by Masahide Washizawa <washi@jp.ibm.com>.
234669e2
UD
725
726* Optimized string functions for Alpha ev6 and ev67 by Richard Henderson
727 <rth@redhat.com> and Rick Gorton <rick.gorton@alpha-processor.com>.
728
729* The LANGUAGE environment variable is now ignored unless the locale is
730 changed from the default "C" locale.
731
732* The usual bug fixes.
d2defdc4 733\f
2e92188d
UD
734Version 2.2
735
08a2e4a0
GM
736* Greg McGary added runtime support for bounds checking using gcc's
737 new -fbounded-pointers option. ix86 target is complete. PowerPC
738 is in progress.
739
2e92188d
UD
740* Thorsten Kukuk added secure mode support to nscd.
741
793bd4d9 742* The Berkeley db libraries have been removed.
2e92188d 743
47b853e8
UD
744 Related, the nss_db module is now in a separate package since it
745 obviously requires a database library being available.
746
0013b2b1
UD
747* Wide character I/O streams implemented by Ulrich Drepper.
748
abbffdf9 749* Functions from the extended socket API added by Ulrich Drepper.
01c771d0 750
6e8afc1c
UD
751* Functions feenableexcept and fedisableexcept to control the
752 behaviour of individual exceptions have been added by Andreas Jaeger.
753
591e1ffb
UD
754* ldconfig program added by Andreas Jaeger and Jakub Jelinek.
755
d3436b3c
UD
756* The resolver code has been updated from bind 8.2.3-T5B which supports
757 threads. The integration was done by Andreas Jaeger, Adam D. Bradley,
758 and Mark Kettenis.
2588068b
UD
759
760 This change could in some situations effect backward compatibility. Since
761 now `_res' is a thread-local instead of a global variable, modifying it
762 in one thread does not have any effect in other threads.
66ac0abe 763
a00c3ca9 764 The resolver library was also extended to allow IPv6 as the transport
d3436b3c
UD
765 protocol for the requests. This work was done by Stig Venaas.
766
1c5d4617
UD
767* Compatibility code for K&R C compilers has been removed from the
768 header files. A ISO C compiler is needed to use the library
769 (conforming to either C89 or C99 standard).
770
abbffdf9
UD
771* Complete rewrite of the localedef program to support multibyte character
772 sets. Implement handling of ISO 14651 and ISO 14652. Rewrite strcoll,
773 strxfrm, wcscoll, and wcsxfrm functions. Make isw*() functions work.
774 Implemented by Ulrich Drepper.
775
8f3f1e09
UD
776 Bruno Haible significantly improved the generation and use of the data
777 structures for the wide character tables.
778
abbffdf9
UD
779* Plural handling in gettext implemented by Ulrich Drepper.
780
69173865
UD
781* The utmp daemon has been removed.
782
783* The port to MIPS-Linux has been finished by Andreas Jaeger.
784
37fb8add
UD
785* A port to Hitachi SH3 and SH4 has been contributed by Kazumoto Kojima
786 and Yutaka Niibe.
787
594cee6c
UD
788* POSIX clocks and timers implemented by Kaz Kylheku and Ulrich Drepper.
789
40c4c9b5
UD
790* POSIX barriers implemented by Kaz Kylheku.
791
594cee6c
UD
792* POSIX spawn function family implemented by Ulrich Drepper.
793
794* POSIX spinlocks are now available.
795
40c4c9b5
UD
796* Timed wait functions for mutex, rwlock, and semaphores are implemented.
797
8f3f1e09
UD
798* the configure option --enable-kernel=X.Y.Z allows to strip out
799 compatibility for kernel versions before X.Y.Z. This is currently only
800 implemented for Linux.
801
3107c0c5
UD
802* the sockaddr_in6 structure changed. The IPv6 working group added a new
803 field sin6_scope_id. This means that all programs using IPv6 should be
804 recompiled. Don't expect binary compatibility with previous glibc
805 versions.
806
d2830ba4
UD
807* various conversion modules for IBM character sets contributed by
808 Masahide Washizawa.
809
8f3f1e09
UD
810* IA-64 port by Jes Sorensen and HJ Lu.
811
812~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
813Compiling the GNU C Library for Linux/ia64
814******************************************
815
816 Please refer to the file INSTALL in the same directory as you found
817this file for general information about configuring and compiling
818glibc.
819
820 For general inquiries about glibc under Linux/ia64 please use the
821following mailing list linux-ia64@linuxia64.org or one of the relevant
822glibc mailing lists.
823
824Recommended Tools for Compilation
825=================================
826
827 In order for glibc-2.2 to build correctly on the ia64 you need at
828least the following versions of the GNU tools (the :
829
830 * The Cygnus toolchain snapshot for the ia64 as of August 4
aea6353a
UD
831 including the provided set of patches. It is however recommend
832 you use the October 24 toolchain snapshot or a more recent version.
8f3f1e09
UD
833
834 OR alternatively you can try the following (the Cygnus toolchain is
835 the recommended solution):
836
837 * GCC and binutils, GAS and GNU LD out of CVS from
aea6353a 838 sources.redhat.com as of August 28, 2000 or later. The CVS tree
8f3f1e09
UD
839 may require special patches to work properly on the ia64.
840
841Configuring and compiling GNU Libc for Linux/ia64
842=================================================
843
844 The library requires Linux kernel version 2.4.0-test4-000728 or
aea6353a
UD
845later to funtion properly. Besides that it support for debug libraries
846is currently untested. Hence the following options
8f3f1e09
UD
847are required for configuring the library:
848
aea6353a 849 --disable-debug --enable-kernel=2.4.0
8f3f1e09
UD
850
851 It is also important that you make sure the library picks up the
852appropriate kernel header files, if you do not have recent enough
853kernel headers in /usr/src/linux/include, you should use the
854--with-headers=<path> option to specify the location.
855
856 As an example I personally use the following options to configure
857the library:
858
859 --disable-debug
8f3f1e09
UD
860 --disable-cvs
861 --enable-kernel=2.4.0
862 --host=ia64-linux
863 --enable-add-ons=yes
864 --prefix=/usr
865 --with-headers=/home/jes/linux/include
866
867
868Good luck
869
870Jes Sorensen <jes@linuxcare.com>,
aea6353a 871November 14th, 2000
8f3f1e09 872~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6f2a8167
UD
873\f
874Version 2.1.3
875
876* bug fixes
877
01c771d0
UD
878\f
879Version 2.1.2
880
881* bug fixes
882
28f540f4 883\f
e518937a
UD
884Version 2.1.1
885
27995311
UD
886* New ISO C 9x function _Exit, imaxabs, and imaxdiv are added.
887
16b0f634
UD
888* New xdr functions are added; some rpc functions are now 64bit clean.
889
407d26b7 890* Fixed a number of bugs and memory leaks (especially in NIS+ code).
16b0f634
UD
891
892* Fixed known incompatibilities with glibc 2.0.
893
407d26b7 894* New functions lock64, strchrnul, rawmemchr, getutmp and getutmpx.
16b0f634 895
407d26b7 896* Optimized a number of functions (especially the ELF dynamic loader).
16b0f634
UD
897
898* Update timezone data files.
27995311 899
554b8800
UD
900* lots of charmaps corrections
901
902* some new locale definitions and charmaps
903
e518937a 904\f
c84142e8
UD
905Version 2.1
906
da2d1bc5
UD
907* Richard Henderson corrected size of struct timeval on Linux/Alpha to
908 conform to POSIX member type requirements. Symbol versions have been
909 adjusted as needed within the library, and for direct use by applications,
910 but there is potential for problems if third-party libraries use
911 struct timeval as part of their interface. This does not present
912 a problem for X and other "essential" system libraries.
913
c84142e8 914* An additional locale model to support C++ Standard Library locale
1fb05e3d 915 model and probably more was implemented by Ulrich Drepper.
c84142e8 916
1fb05e3d 917* Eric Youngdale and Ulrich Drepper implemented versioning of objects on
c84142e8
UD
918 symbol level.
919
920* Miles Bader provided the `argp' function family to support hierachical
921 command line argument parsing, layered on top of getopt.
377a515b 922
cbdee279 923* strtod accepts new hexadecimal floating-point format from ISO C 9X.
377a515b
UD
924
925* printf has two new specifiers %a and %A to print hexadecimal flaoting-point
cbdee279 926 numbers.
377a515b 927
cbdee279 928* scanf recognizes the %a and %A format for scanning floating point numbers.
e61abf83 929
48869012
UD
930* the new headers <stdint.h> and <inttypes.h> from ISO C 9X provides
931 information and interfaces for the available integer types.
e61abf83 932
813f4f4d
UD
933* about 130 new math functions were added to implement the ISO C9x math
934 library.
935
e61abf83 936* the new header <complex.h> contains definitions of the complex math
cbdee279
UD
937 functions from ISO C 9X.
938
939* the new header <tgmath.h> defines generic macros to use complex or
940 real valued functions.
e61abf83 941
a5a0310d 942* Thorsten Kukuk provided an implementation for NIS+, securelevel 0, 1 and 2.
e61abf83 943
a5a0310d
UD
944* Andreas Jaeger provided a test suite for the math library.
945
946* Mark Kettenis implemented the utmpx interface and an utmp daemon.
cbdee279 947
440d13e2 948* Ulrich Drepper added character set conversion functions (iconv).
cbdee279
UD
949
950* Optimized string functions have been added.
951
952* The localedata addon is now part of glibc.
2eb45444
UD
953
954* An implementation of profiling shared libraries was added by Ulrich Drepper.
ea278354 955
48244d09
UD
956* Thorsten Kukuk and Ulrich Drepper provided an implementation for a caching
957 daemon for NSS (nscd).
958
959 Missing a better place here are some numbers on improvements. Under
960 Linux 2.1.125 un-tar-ing the kernel sources takes
961
0dee6738 962 user system wall
48244d09 963
0dee6738 964 using local files 12.19s 6.88s 22.91s
48244d09 965
0dee6738 966 using NIS 13.92s 8.91s 26.34s
48244d09 967
0dee6738 968 using NIS & nscd 10.37s 7.34s 25.30s
48244d09 969
0dee6738
UD
970 using NIS+ 27.57s 30.37s 640.46s
971
972 using NIS+ & nscd 10.25s 7.83s 26.51s
973
974 using NIS & old nscd [1] 13.83s 8.32s 29.60s
48244d09 975
48244d09
UD
976 Keep in mind that non-namelookup related operations dominate above times.
977 It was just a common complain that using NIS+ unpacking the kernel is
0dee6738 978 horribly slow.
48244d09 979
0dee6738
UD
980 [1] The old nscd implementation is not available anymore since it was
981 distributed with glibc up to version 2.0.98 and thus is now replaced.
ea278354
UD
982
983* Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
48869012
UD
984
985* Mark Kettenis provided a Hesiod NSS module.
20833331
UD
986
987* The ELF dynamic loader knows how to process dynamic string tokens ($ORIGIN
988 and $PLATFORM) in RPATHs and similar strings (Ulrich Drepper).
989
990* rcmd can now handle netgroups (Dick Streefland).
48244d09 991
62595351
UD
992* A port to the ARM was contributed by Phil Blundell, Pat Beirne and Scott
993 Bambrough.
994
995* Support for the IPv6 protocol has been added to the socket API, as per the
996 latest draft standards.
997
1770a20d
UD
998* Support for Linux 2.2 has been added.
999
48244d09
UD
1000* Interface changes relative to the latest 2.0.x release:
1001~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
62595351 1002addseverity NEW: Unix98
48244d09 1003alphasort64 NEW: LFS
62595351
UD
1004argp_err_exit_status NEW: argp, GNU ext
1005argp_error NEW: argp, GNU ext
1006argp_failure NEW: argp, GNU ext
1007argp_help NEW: argp, GNU ext
1008argp_parse NEW: argp, GNU ext
1009argp_program_bug_address NEW: argp, GNU ext
1010argp_program_version NEW: argp, GNU ext
1011argp_program_version_hook NEW: argp, GNU ext
1012argp_state_help NEW: argp, GNU ext
1013argp_usage NEW: argp, GNU ext
e980ca92
UD
1014authdes_create NEW: Secure RPC
1015authdes_getucred NEW: Secure RPC
1016authdes_pk_create NEW: Secure RPC
48244d09
UD
1017backtrace NEW: GNU ext.
1018backtrace_symbols NEW: GNU ext.
1019backtrace_symbols_fd NEW: GNU ext.
1020cacos NEW: ISO C 9x
1021cacosf NEW: ISO C 9x
1022cacosh NEW: ISO C 9x
1023cacoshf NEW: ISO C 9x
1024cacoshl NEW: ISO C 9x
1025cacosl NEW: ISO C 9x
1026capget NEW: kernel
1027capset NEW: kernel
1028carg NEW: ISO C 9x
1029cargf NEW: ISO C 9x
1030cargl NEW: ISO C 9x
1031casin NEW: ISO C 9x
1032casinf NEW: ISO C 9x
1033casinh NEW: ISO C 9x
1034casinhf NEW: ISO C 9x
1035casinhl NEW: ISO C 9x
1036casinl NEW: ISO C 9x
1037catan NEW: ISO C 9x
1038catanf NEW: ISO C 9x
1039catanh NEW: ISO C 9x
1040catanhf NEW: ISO C 9x
1041catanhl NEW: ISO C 9x
1042catanl NEW: ISO C 9x
e980ca92 1043cbc_crypt NEW: Secure RPC
48244d09
UD
1044ccos NEW: ISO C 9x
1045ccosf NEW: ISO C 9x
1046ccosh NEW: ISO C 9x
1047ccoshf NEW: ISO C 9x
1048ccoshl NEW: ISO C 9x
1049ccosl NEW: ISO C 9x
1050cexp NEW: ISO C 9x
1051cexpf NEW: ISO C 9x
1052cexpl NEW: ISO C 9x
1053cimag NEW: ISO C 9x
1054cimagf NEW: ISO C 9x
1055cimagl NEW: ISO C 9x
1056clearerr_locked REMOVED
1057clntunix_create NEW: sunrpc ext
1058clog NEW: ISO C 9x
1059clog10 NEW: ISO C 9x
1060clog10f NEW: ISO C 9x
1061clog10l NEW: ISO C 9x
1062clogf NEW: ISO C 9x
1063clogl NEW: ISO C 9x
1064conj NEW: ISO C 9x
1065conjf NEW: ISO C 9x
1066conjl NEW: ISO C 9x
1067cpow NEW: ISO C 9x
1068cpowf NEW: ISO C 9x
1069cpowl NEW: ISO C 9x
1070cproj NEW: ISO C 9x
1071cprojf NEW: ISO C 9x
1072cprojl NEW: ISO C 9x
1073creal NEW: ISO C 9x
1074crealf NEW: ISO C 9x
1075creall NEW: ISO C 9x
1076creat64 NEW: LFS
1077csin NEW: ISO C 9x
1078csinf NEW: ISO C 9x
1079csinh NEW: ISO C 9x
1080csinhf NEW: ISO C 9x
1081csinhl NEW: ISO C 9x
1082csinl NEW: ISO C 9x
1083csqrt NEW: ISO C 9x
1084csqrtf NEW: ISO C 9x
1085csqrtl NEW: ISO C 9x
1086ctan NEW: ISO C 9x
1087ctanf NEW: ISO C 9x
1088ctanh NEW: ISO C 9x
1089ctanhf NEW: ISO C 9x
1090ctanhl NEW: ISO C 9x
1091ctanl NEW: ISO C 9x
e980ca92
UD
1092des_setparity NEW: Secure RPC
1093ecb_crypt NEW: Secure RPC
62595351 1094endutxent NEW: Unix98
48244d09
UD
1095exp10 NEW: ISO C 9x
1096exp10f NEW: ISO C 9x
1097exp10l NEW: ISO C 9x
1098exp2 NEW: ISO C 9x
1099exp2f NEW: ISO C 9x
1100exp2l NEW: ISO C 9x
1101fattach NEW: STREAMS
1102fdetach NEW: STREAMS
1103fdim NEW: ISO C 9x
1104fdimf NEW: ISO C 9x
1105fdiml NEW: ISO C 9x
1106feclearexcept NEW: ISO C 9x
1107fegetenv NEW: ISO C 9x
1108fegetexceptflag NEW: ISO C 9x
1109fegetround NEW: ISO C 9x
1110feholdexcept NEW: ISO C 9x
1111feof_locked REMOVED
1112feraiseexcept NEW: ISO C 9x
1113ferror_locked REMOVED
1114fesetenv NEW: ISO C 9x
1115fesetexceptflag NEW: ISO C 9x
1116fesetround NEW: ISO C 9x
1117fetestexcept NEW: ISO C 9x
1118feupdateenv NEW: ISO C 9x
1119fflush_locked REMOVED
1120ffsl NEW: GNU ext.
1121ffsll NEW: GNU ext.
1122fgetpos64 NEW: LFS
1123fgets_unlocked NEW: GNU ext.
1124fileno_locked REMOVED
1125fma NEW: ISO C 9x
1126fmaf NEW: ISO C 9x
1127fmal NEW: ISO C 9x
1128fmax NEW: ISO C 9x
1129fmaxf NEW: ISO C 9x
1130fmaxl NEW: ISO C 9x
1131fmin NEW: ISO C 9x
1132fminf NEW: ISO C 9x
1133fminl NEW: ISO C 9x
62595351 1134fmtmsg NEW: Unix98
48244d09
UD
1135fopen64 NEW: LFS
1136fputc_locked REMOVED
1137fputs_unlocked NEW: GNU ext.
1138fread_unlocked NEW: GNU ext.
1139freopen64 NEW: LFS
1140fseeko NEW: Unix98
1141fsetpos64 NEW: LFS
1142fstatfs64 NEW: LFS
1143fstatvfs NEW: Unix98
1144fstatvfs64 NEW: LFS
1145ftello NEW: Unix98
1146ftello64 NEW: LFS
1147ftruncate64 NEW: LFS
1148ftw64 NEW: LFS
1149fwrite_unlocked NEW: GNU ext.
1150gai_strerror NEW: IPv6
1151gamma_r REMOVED
1152gammaf_r REMOVED
1153gammal_r REMOVED
1154getchar_locked REMOVED
1155getdate NEW: Unix98
1156getdate_err NEW: Unix98
1157getdate_r NEW: GNU ext.
1158getmsg NEW: STREAMS
1159getnameinfo NEW: IPv6
e980ca92 1160getnetname NEW: Secure RPC
48244d09
UD
1161getpmsg NEW: STREAMS
1162getpt NEW: Unix98 PTY
1163getrlimit64 NEW: LFS
62595351
UD
1164getutxent NEW: Unix98
1165getutxid NEW: Unix98
1166getutxline NEW: Unix98
48244d09
UD
1167glob64 NEW: GNU ext.
1168globfree64 NEW: GNU ext.
1169gnu_get_libc_release NEW: GNU ext.
1170gnu_get_libc_version NEW: GNU ext.
1171grantpt NEW: Unix98 PTY
e980ca92 1172host2netname NEW: Secure RPC
48244d09
UD
1173iconv NEW: iconv
1174iconv_close NEW: iconv
1175iconv_open NEW: iconv
1176if_freenameindex NEW: IPv6
1177if_indextoname NEW: IPv6
1178if_nameindex NEW: IPv6
1179if_nametoindex NEW: IPv6
1180in6addr_any NEW: IPv6
1181in6addr_loopback NEW: IPv6
1182inet6_isipv4mapped NEW: IPv6
1183isastream NEW: STREAMS
1184iswblank NEW: GNU ext.
e980ca92
UD
1185key_decryptsession NEW: Secure RPC
1186key_decryptsession_pk NEW: Secure RPC
1187key_encryptsession NEW: Secure RPC
1188key_encryptsession_pk NEW: Secure RPC
1189key_gendes NEW: Secure RPC
1190key_get_conv NEW: Secure RPC
1191key_secretkey_is_set NEW: Secure RPC
1192key_setnet NEW: Secure RPC
1193key_setsecret NEW: Secure RPC
48244d09
UD
1194llrint NEW: ISO C 9x
1195llrintf NEW: ISO C 9x
1196llrintl NEW: ISO C 9x
1197llround NEW: ISO C 9x
1198llroundf NEW: ISO C 9x
1199llroundl NEW: ISO C 9x
1200log2 NEW: ISO C 9x
1201log2f NEW: ISO C 9x
1202log2l NEW: ISO C 9x
1203lrint NEW: ISO C 9x
1204lrintf NEW: ISO C 9x
1205lrintl NEW: ISO C 9x
1206lround NEW: ISO C 9x
1207lroundf NEW: ISO C 9x
1208lroundl NEW: ISO C 9x
1209lseek64 NEW: LFS
1210makecontext NEW: Unix98
1211mempcpy NEW: GNU ext.
1212mmap64 NEW: LFS
1213moncontrol REMOVED
1214modify_ldt NEW: kernel
1215nan NEW: ISO C 9x
1216nanf NEW: ISO C 9x
1217nanl NEW: ISO C 9x
1218nearbyint NEW: ISO C 9x
1219nearbyintf NEW: ISO C 9x
1220nearbyintl NEW: ISO C 9x
e980ca92
UD
1221netname2host NEW: Secure RPC
1222netname2user NEW: Secure RPC
42bd0a85
UD
1223nexttoward NEW: ISO C 9x
1224nexttowardf NEW: ISO C 9x
1225nexttowardl NEW: ISO C 9x
48244d09
UD
1226nftw NEW: Unix98
1227nftw64 NEW: LFS
1228open64 NEW: LFS
e980ca92 1229passwd2des NEW: Secure RPC
48244d09
UD
1230pow10 NEW: GNU ext.
1231pow10f NEW: GNU ext.
1232pow10l NEW: GNU ext.
1233pread NEW: Unix98
1234pread64 NEW: LFS
1235printf_size NEW: GNU ext.
1236printf_size_info NEW: GNU ext.
1237profil_counter REMOVED
1238pthread_mutexattr_getkind_np REPLACED
1239pthread_mutexattr_setkind_np REPLACED
1240ptsname NEW: Unix98 PTY
1241ptsname_r NEW: Unix98 PTY
1242putc_locked REMOVED
1243putchar_locked REMOVED
1244putgrent NEW: GNU ext.
1245putmsg NEW: STREAMS
1246putpmsg NEW: STREAMS
62595351 1247pututxline NEW: Unix98
48244d09
UD
1248pwrite NEW: Unix98
1249pwrite64 NEW: LFS
1250readdir64 NEW: LFS
1251readdir64_r NEW: LFS
1252remquo NEW: ISO C 9x
1253remquof NEW: ISO C 9x
1254remquol NEW: ISO C 9x
1255round NEW: ISO C 9x
1256roundf NEW: ISO C 9x
1257roundl NEW: ISO C 9x
1258rtime NEW: GNU ext.
1259scalbln NEW: ISO C 9x
1260scalblnf NEW: ISO C 9x
1261scalblnl NEW: ISO C 9x
1262scandir64 NEW: LFS
1263sendfile NEW: kernel
1264setcontext NEW: Unix98
1265setrlimit64 NEW: LFS
62595351 1266setutxent NEW: Unix98
48244d09
UD
1267sighold NEW: Unix98
1268sigignore NEW: Unix98
1269sigqueue NEW: POSIX.1b
1270sigrelse NEW: Unix98
1271sigset NEW: POSIX.1b
1272sigtimedwait NEW: POSIX.1b
1273sigwaitinfo NEW: POSIX.1b
1274sincos NEW: GNU ext.
1275sincosf NEW: GNU ext.
1276sincosl NEW: GNU ext.
1277statfs64 NEW: LFS
1278statvfs NEW: Unix98
1279statvfs64 NEW: LFS
1280strcasestr NEW: GNU ext.
48244d09
UD
1281strtoimax NEW: ISO C 9x
1282strtoumax NEW: ISO C 9x
1283strverscmp NEW: GNU ext.
e980ca92 1284svcauthdes_stats NEW: Secure RPC
48244d09
UD
1285svcunix_create NEW: sunrpc etx
1286svcunixfd_create NEW: sunrpc ext
1287swapcontext NEW: Unix98
1288tcgetsid NEW: Unix98 PTY
1289tdestroy NEW: GNU ext.
1290tgamma NEW: ISO C 9x
1291tgammaf NEW: ISO C 9x
1292tgammal NEW: ISO C 9x
1293tmpfile64 NEW: LFS
1294trunc NEW: ISO C 9x
1295truncate64 NEW: LFS
1296truncf NEW: ISO C 9x
1297truncl NEW: ISO C 9x
1298umount2 NEW: kernel
1299unlockpt NEW: Unix98 PTY
62595351 1300updwtmpx NEW: Unix98
e980ca92 1301user2netname NEW: Secure RPC
62595351 1302utmpxname NEW: Unix98
48244d09 1303versionsort NEW: GNU ext.
3ef4002b 1304versionsort64 NEW: GNU ext.
48244d09
UD
1305waitid NEW: Unix98
1306wcscasecmp NEW: GNU ext.
1307wcsncasecmp NEW: GNU ext.
1308wcsnlen NEW: GNU ext.
1309wcstoimax NEW: ISO C 9x
1310wcstoll NEW: ISO C 9x
1311wcstoull NEW: ISO C 9x
1312wcstoumax NEW: ISO C 9x
1313wcswcs NEW: Unix98
1314wordexp NEW: POSIX.2
1315wordfree NEW: POSIX.2
1316write_profiling REMOVED
e980ca92
UD
1317xdecrypt NEW: Secure RPC
1318xdr_authdes_cred NEW: Secure RPC
1319xdr_authdes_verf NEW: Secure RPC
1320xdr_cryptkeyarg NEW: Secure RPC
1321xdr_cryptkeyarg2 NEW: Secure RPC
1322xdr_cryptkeyres NEW: Secure RPC
1323xdr_getcredres NEW: Secure RPC
1324xdr_key_netstarg NEW: Secure RPC
1325xdr_key_netstres NEW: Secure RPC
1326xdr_keybuf NEW: Secure RPC
1327xdr_keystatus NEW: Secure RPC
1328xdr_netnamestr NEW: Secure RPC
1329xdr_sizeof NEW: Secure RPC
48244d09 1330xdr_unixcred NEW: sunrpc ext
e980ca92 1331xencrypt NEW: Secure RPC
48244d09 1332~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1770a20d
UD
1333\f
1334Version 2.0.6
1335
1336* more bug fixes
1337
a5a0310d
UD
1338\f
1339Version 2.0.5
1340
1341* more bug fixes
1342
1343* inet_ntoa is thread-safe
1344
1345* updwtmp is moved from libutil to libc
1346
1347* rewrite of cbrt function
1348
1349* update of timezone data
1350\f
1351Version 2.0.4
1352
1353* more bug fixes
1354\f
1355Version 2.0.3
1356
1357* more bug fixes
c84142e8 1358\f
795fbc9a
UD
1359Version 2.0.2
1360
1361* more bug fixes
1362
1363* add atoll function
1364
1365* fix complex problems in Berkeley DB code
e61abf83
UD
1366
1367* fix math functions
795fbc9a
UD
1368\f
1369Version 2.0.1
1370
1371* fixed lots of header problems (especially Linux/GNU specific)
1372
1373* dynamic loader preserves all registers
1374
1375* Roland McGrath provided support for handling of auxiliary objects in
1376 the ELF dynamic loader.
1377
1378* support for parallel builds is improved
1379\f
40a4b79f 1380Version 2.0
28f540f4 1381
d3669add
RM
1382* GNU extensions are no longer declared by default. To enable them you
1383 must define the macro `_GNU_SOURCE' in your program or compile with
1384 `-D_GNU_SOURCE'.
1385
28f540f4
RM
1386* The library has changed from using GNU ld symbol aliases to using weak
1387 symbols where available. The ELF object file format supports weak
1388 symbols; GNU ld also supports weak symbols in the a.out format. (There
1389 is also now support for other GNU ld extensions in ELF. Use the
787126fe
RM
1390 `--with-elf' option to configure to indicate you have ELF, and
1391 `--with-gnu-ld' if using GNU ld.) This change resulted in the deletion
28f540f4
RM
1392 of many files which contained only symbol aliases, reducing the size of
1393 the source and the compiled library; many other files were renamed to
1394 less cryptic names previously occupied by the symbol alias files.
dcf0671d
UD
1395 There is a new header file <elf.h> for programs which operate on
1396 files in the ELF format.
49e522bf
RM
1397
1398* Converted to Autoconf version 2, so `configure' has more options.
1399 Run `configure --help' to see the details.
1400
1401* The library can now be configured to build profiling, highly-optimized
b25c5d66
RM
1402 (but undebuggable), and/or shared libraries (ELF with GNU ld only). The
1403 `--enable-profile', `--enable-omitfp', and `--enable-shared' options to
1404 `configure' enable building these extra libraries. The shared library is
1405 built by default when using both ELF and GNU ld. When shared libraries
1406 are enabled, the new library `-ldl' is available for arbitrary run-time
1407 loading of shared objects; its interface is defined in <dlfcn.h>. The
1408 new header file <link.h> gives access to the internals of the run-time
33a934a3
UD
1409 dynamic linker, `ld.so'. The shell script `ldd' is similar to the
1410 application of same name on other systems and it provides information
1411 about dynamically linked binaries.
49e522bf 1412
71733723
RM
1413* The C library now provides the run-time support code for profiling
1414 executables compiled with `-pg'. Programs can control the profiling code
d3669add
RM
1415 through the interface in <sys/gmon.h>. The `gmon.out' files written by
1416 the GNU C library can be read only by GNU `gprof' (from GNU binutils);
1417 the support for this file format was contributed by David Mosberger-Tang.
71733723 1418
f7eac6eb 1419* The math code has been replaced with a math library based on fdlibm from
33a934a3
UD
1420 Sun, and modified by JT Conklin and Ulrich Drepper with i387 support, by
1421 Ian Taylor with `float' functions and by Ulrich Drepper with `long double'
1422 functions. The math functions now reside in a separate library, so
1423 programs using them will need to use `-lm' their linking commands.
1424
1425* John C. Bowman contributed optimized ix87 assembler inline functions.
f7eac6eb 1426
5f0e6fc7
RM
1427* Ulrich Drepper has contributed support for an `/etc/nsswitch.conf'
1428 mechanism similar to that found in Solaris 2. This is now used for the
33a934a3
UD
1429 group, passwd, hosts, networks, services, protocols, rpc, ethers,
1430 shadow, netgroup, publickey, and alias databases. The `nsswitch.conf'
1431 file controls what services are used for each individual database. This
1432 works by loading shared libraries with names specified in `nsswitch.conf',
1433 so service modules can be changed or added at any time without even
1434 relinking any program. Currently there are the file, db, and NIS based
1435 NSS services available.
5f0e6fc7 1436
49e522bf
RM
1437* The new functions `strtoq' and `strtouq' parse integer values from
1438 strings, like `strtol' and `strtoul', but they return `long long int' and
1439 `unsigned long long int' values, respectively (64-bit quantities).
1440
1441* The new functions `strtof' and `strtold' parse floating-point values from
1442 strings, like `strtod', but they return `float' and `long double' values,
1443 respectively (on some machines `double' and `long double' are the same).
1444
1445* Ulrich Drepper has contributed new implementations of the floating-point
1446 printing and reading code used in the `printf' family of functions and
1447 `strtod', `strtof', and `strtold'. These new functions are perfectly
1448 accurate, and much faster than the old ones.
1449
33a934a3
UD
1450* The implementation of the POSIX locale model was completely rewritten by
1451 Ulrich Drepper. This includes the new programs `localedef' and `locale'
1452 to compile the POSIX locale definition.
1453
1454* The former dummy implementations of the strcoll and strxfrm function are
1455 now replaced by fully functional code contributed by Ulrich Drepper. The
1456 collation information comes from the POSIX locale definitions.
1457
49e522bf
RM
1458* The new header <langinfo.h> defines an interface for accessing
1459 various locale-dependent data (using the locale chosen with `setlocale').
1460
f7eac6eb 1461* Ulrich Drepper has contributed a new suite of functions for operation on
33a934a3 1462 wide-character and multibyte-character strings, in <wchar.h>;
b7407d63 1463 and classification and case conversion of wide characters, in <wctype.h>.
33a934a3
UD
1464 These new functions are conforming to the ISO C, Amendement 1 specification.
1465
1466* There is now a second implementation of the standard I/O library available.
1467 It comes from GNU libg++ as was written by Per Bothner, heavily modified
1468 by Hongjiu Lu and made thread safe by Ulrich Drepper.
f7eac6eb 1469
71733723 1470* You can now use positional parameter specifications in format strings
49e522bf
RM
1471 for the `printf' and `scanf' families of functions. For example,
1472 `printf ("Number %2$d, Mr %1$s\n", "Jones", 6);'' prints
1473 ``Number 6, Mr Jones''. This is mainly useful when providing different
d365fd2c
RM
1474 format strings for different languages, whose grammars may dictate
1475 different orderings of the values being printed. To support this
49e522bf 1476 feature, the interface for `register_printf_handler' has changed; see
d365fd2c 1477 the header file <printf.h> for details.
49e522bf
RM
1478
1479* The `printf' and `scanf' families of functions now understand a new
1480 formatting flag for numeric conversions: the ' flag (e.g. %'d or %'f) says
1481 to group numbers as indicated by the locale; for `scanf' and friends, this
1482 says to accept as valid only a number with all the proper grouping
1483 separators in the right places. In the default "C" locale, numbers are
1484 not grouped; but locales for specific countries will define the usual
1485 conventions (i.e. separate thousands with `,' in the US locale).
28f540f4
RM
1486
1487* The pgrp functions have been regularized, slightly incompatibly but much
1488 less confusingly. The core functions are now `getpgid' and `setpgid',
1489 which take arguments for the PID to operate on; the POSIX.1 `getpgrp' (no
1490 argument) and BSD `setpgrp' (identical to `setpgid') functions are
1491 provided for compatibility. There is no longer an incompatible `getpgrp'
1492 with an argument declared under _BSD_SOURCE; no BSD code uses it.
1493
1494* The new header file <fts.h> and suite of functions simplify programs that
1495 operate on directory trees. This code comes from 4.4 BSD.
1496
33a934a3
UD
1497* The resolver code has been updated from the BIND 4.9.5-P1 release.
1498 Parts of the code were heavily modified by Ulrich Drepper to fit in the
1499 NSS scheme used in glibc.
28f540f4 1500
28f540f4
RM
1501* There is a new malloc debugging hook `__memalign_hook'.
1502
1503* There are new typedefs `ushort' for `unsigned short int' and `uint' for
1504 `unsigned int' in <sys/types.h>. These are for compatibility only and
1505 their use is discouraged.
1506
1507* The `-lmcheck' library to enable standard malloc debugging hooks is now
1508 done differently, so that it works even without GNU ld.
787126fe 1509
22a1292a
RM
1510* New function `euidaccess' checks allowed access to a file like `access',
1511 but using the effective IDs instead of the real IDs.
49e522bf
RM
1512
1513* The time zone data files have been updated for the latest and greatest
1514 local time conventions of the countries of the world.
1515
1516* The new function `dirfd' extracts the file descriptor used by a DIR stream;
1517 see <dirent.h>.
1518
1519* The new functions `ecvt', `fcvt', and `gcvt' provide an obsolete interface
1520 for formatting floating-point numbers. They are provided only for
33a934a3
UD
1521 compatibility; new programs should use `sprintf' instead. There are
1522 also equivalent function for the `long double' floating-point type and
1523 all functions also exist in a reentrant form.
342414a6
RM
1524
1525* The new auxiliary library `-lutil' from 4.4 BSD contains various
1526 functions for maintaining the login-record files (primarily of use to
1527 system programs such as `login'), and convenient functions for
1528 allocating and initializing a pseudo-terminal (pty) device.
c709e372
RM
1529
1530* Ulrich Drepper has contributed new support for System V style
1531 shared memory and IPC on systems that support it.
1532
1533* Ulrich Drepper has contributed several miscellaneous new functions found
1534 in System V: The `hsearch' family of functions provide an effective
1535 implementation of hash tables; `a64l' and `l64a' provide a very simple
1536 binary to ASCII mapping; `drand48' and friends provide a 48-bit random
1537 number generator.
1538
1539* Ulrich Drepper has contributed new reentrant counterparts for the
1540 `random' and `hsearch' families of functions; `random_r', `hsearch_r', etc.
1541
1542* Ulrich Drepper has contributed new, highly-optimized versions of several
1543 string functions for the i486/Pentium family of processors.
1544
71733723 1545* Ulrich Drepper has updated the Linux-specific code, based largely
c709e372 1546 on work done in Hongjiu Lu's version of GNU libc for Linux.
33a934a3
UD
1547 The GNU library now supports Linux versions 2.0.10 and later,
1548 using the ELF object file format (i[3456]86-*-linux).
c709e372 1549
d3669add
RM
1550* Andreas Schwab has ported the C library to Linux/m68k (m68k-*-linux).
1551
33a934a3
UD
1552* David Mosberger-Tang and Richard Henderson have ported the C library
1553 to Linux/Alpha (alpha-*-linux). Richard Henderson contributed the
1554 dynamic linking support for ELF/Alpha.
1555
1556* Richard Henderson contributed several Alpha optimized assembler function
1557 for arithmetic and string handling.
d3669add 1558
c709e372 1559* Ulrich Drepper has contributed a new set of message catalog functions to
40a4b79f
RM
1560 support multiple languages using the <libintl.h> interface, for use with
1561 his new package GNU gettext. Translation volunteers have contributed
1562 catalogs of the library's messages in Spanish, German, and Korean.
1563
1564* For compatibility with XPG4, Ulrich Drepper has contributed the `gencat'
1565 program and the `catgets' function for reading the catalog files it
1566 creates. (The <libintl.h> interface is preferred; we include the
1567 <nl_types.h> interface using `catgets' only for source compatibility with
1568 programs already written to use it.)
71733723
RM
1569
1570* New header file <values.h> gives SVID-compatible names for <limits.h>
1571 constants.
1572
1573* Various new macros, declarations, and small header files for compatibility
1574 with 4.4 BSD.
1575
1576* New function `group_member' is a convenient way to check if a process has
1577 a given effective group ID.
1578
1579* When using GCC 2.7 and later, the socket functions are now declared in a
1580 special way so that passing an argument of type `struct sockaddr_in *',
1581 `struct sockaddr_ns *', or `struct sockaddr_un *' instead of the generic
1582 `struct sockaddr *' type, does not generate a type-clash warning.
1583
1584* New function `error' declared in header file <error.h> is a convenient
6d52618b 1585 function for printing error messages and optionally exiting; this is the
71733723
RM
1586 canonical function used in GNU programs. The new functions `err', `warn',
1587 and friends in header file <err.h> are the canonical 4.4 BSD interface for
1588 doing the same thing.
1589
1590* The <glob.h> interface has several new flags from 4.4 BSD that extend the
1591 POSIX.2 `glob' function to do ~ and {...} expansion.
1592
1593* New function `unsetenv' complements `setenv' for compatibility with 4.4 BSD.
33a934a3 1594 `clearenv' which is used in POSIX.9 is also available.
71733723
RM
1595
1596* New function `getsid' returns session ID number on systems that support it.
1597
f7eac6eb
RM
1598* We have incorporated the 4.4 BSD `db' library (version 1.85). New header
1599 files <db.h> and <mpool.h> provide a rich set of functions for several
1600 types of simple databases stored in memory and in files, and <ndbm.h> is
6d52618b 1601 an old `ndbm'-compatible interface using the `db' functions. Link with
999493cb 1602 `-ldb' to get these functions.
f7eac6eb
RM
1603
1604* New macro `strdupa' copies a string like `strdup', but uses local stack
1605 space from `alloca' instead of dynamic heap space from `malloc'.
52e9a9d1
RM
1606
1607* New function `strnlen' is like `strlen' but searches only a given maximum
33a934a3
UD
1608 number of characters for the null terminator. `stpncpy', `strndup' and
1609 `strndupa' are similar variants for the `stpcpy', `strdup' and `strdupa'
1610 function.
40a4b79f
RM
1611
1612* New function `statfs' in header <sys/statfs.h>.
1613
1614* The new <argz.h> and <envz.h> interfaces contributed by Miles Bader
1615 provide convenient functions for operating on blocks of null-terminated
1616 strings.
1617
1618* A new suite of functions in <utmp.h> handle all the details of reading
1619 and writing the utmp file.
33a934a3
UD
1620
1621* An implementation of the NIS/YP(tm) based NSS service was contributed by
1622 Thorsten Kukuk.
1623
1624* Paul Eggert and Ulrich Drepper modified the `strftime' function to be
1625 completely POSIX compliant and also implemented the extended functionality
1626 to handle alternate digit representation and alternate era date formats.
1627
1628* Ulrich Drepper provided an implementation of the `strptime' function
1629 defined in XPG4.2 which transforms a string into a `struct tm' value.
1630
1631* Paul Eggert provided the tzselect shell script as part of the timezone
1632 code. The shell script makes it easy to select the correct timezone
1633 specification.
1634
1635* The implementation of the malloc family of functions is completely replaced
1636 by a new implementation by Doug Lea with many improvements by Wolfram Gloger.
1637 The implementation uses the mmap function (if available) and it is
1638 optimized for the use in multi threaded programs.
1639
1640* Ulrich Drepper contributed a MD5 "encryption" for the crypt family of
1641 functions. This new functionality is usable by specifying a special
1642 salt string and it is compatible with implementation on *BSD systems.
1643
1644* Lots of functions from the XPG4.2 standard were added by Ulrich Drepper:
1645 `getsubopt' to handle second level command line options, `bsd_signal'
1646 to access BSD style `signal' functionality, the obsolete `regexp' style
1647 expression matcher.
1648
1649* the `lchown' function is available on system which support this
1650 functionality.
1651
1652* The implementation of the shadow password handling function was contributed
1653 by Ulrich Drepper.
1654
1655* David Mosberger-Tang changed the SunRPC implementation to be 64bit safe.
1656
1657* POSIX.1g support was added. The <sys/select.h> header is available,
1658 `isfdtype' and `pselect' are implemented. Craig Metz contributed an
1659 implementation of `getaddrinfo'.
28f540f4
RM
1660\f
1661Version 1.09
1662
1663* For cross-compilation you should now set `BUILD_CC' instead of `HOST_CC'.
1664
1665* New header file <fstab.h> and new functions `getfsspec', `getfsent' and
1666 friends, for parsing /etc/fstab. This code comes from 4.4 BSD.
1667
1668* The new function `daemon' from 4.4 BSD is useful for server programs that
1669 want to put themselves in the background.
1670
1671* Joel Sherrill has contributed support for several standalone boards that
1672 run without an operating system.
1673
1674* `printf', `scanf' and friends now accept a `q' type modifier for long
1675 long int as well as `ll'. Formats using these might be `%qu' or `%lld'.
1676
1677* All of the code taken from BSD (notably most of the math and networking
1678 routines) has been updated from the BSD 4.4-Lite release.
1679
1680* The resolver code has been updated from the BIND-4.9.3-BETA9 release.
1681
1682* The new functions `getdomainname' and `setdomainname' fetch or change the
1683 YP/NIS domain name. These are system calls which exist on systems which
1684 have YP (aka NIS).
1685
1686* The time zone data files have been updated for the latest international
1687 conventions.
1688
1689* The SunRPC programs `portmap' and `rpcinfo' are now installed in
1690 $(sbindir) (usually /usr/local/sbin) instead of $(bindir).
1691\f
1692Version 1.08
1693
1694* The C library now includes support for Sun RPC, from Sun's free
1695 RPCSRC-4.0 distribution. The `portmap', `rpcinfo', and `rpcgen' programs
1696 are included. (There is still no support for YP.)
1697
1698* Tom Quinn has contributed a port of the C library to SGI machines running
1699 Irix 4 (mips-sgi-irix4).
1700
1701* The new `lockf' function is a simplified interface to the locking
1702 facilities of `fcntl', included for compatibility.
1703
1704* New time functions `timegm', `timelocal', and `dysize' for compatibility.
1705
1706* New header file <sys/timeb.h> and new function `ftime' for compatibility.
1707
1708* New header files <poll.h> and <sys/poll.h> and new function `poll' for
1709 compatibility.
1710
1711* The error message printed by `assert' for a failed assertion now includes
1712 the name of the program (if using GNU ld) and the name of the calling
1713 function (with versions of GCC that support this).
1714
1715* The `psignal' function is now declared in <signal.h>, not <stdio.h>.
1716
1717* The library now includes the <sys/mman.h> header file and memory
1718 management functions `mmap', `munmap', `mprotect', `msync', and
1719 `madvise', on systems that support those facilities.
1720
1721* The interface for `mcheck' has changed slightly: the function called to
1722 abort the program when an allocation inconsistency is detected now takes
1723 an argument that indicates the type of failure. The new function
1724 `mprobe' lets you request a consistency check for a particular block at
1725 any time (checks are normally done only when you call `free' or `realloc'
1726 on a block).
1727
1728* It is now possible to easily cross-compile the C library, building on one
1729 system a library to run on another machine and/or operating system. All
1730 you need to do is set the variable `HOST_CC' in `configparms' to the
1731 native compiler for programs to run on the machine you are building on (a
1732 few generator programs are used on Unix systems); set `CC' to the
1733 cross-compiler.
1734
1735* The new function `fexecve' (only implemented on the GNU system) executes
1736 a program file given a file descriptor already open on the file.
1737\f
1738Version 1.07
1739
1740* Brendan Kehoe has contributed most of a port to the DEC Alpha
1741 running OSF/1 (alpha-dec-osf1). He says it is 75% complete.
1742
1743* You can set the variable `libprefix' in `configparms' to specify a prefix
1744 to be prepended to installed library files; this makes it easy to install
1745 the GNU C library to be linked as `-lgnuc' or whatever.
1746
1747* The new `stpncpy' is a cross between `stpcpy' and `strncpy': It
1748 copies a limited number of characters from a string, and returns the
1749 address of the last character written.
1750
1751* You no longer need to check for whether the installed `stddef.h' is
1752 compatible with the GNU C library. configure now checks for you.
1753
1754* You can now define a per-stream `fileno' function to convert the
1755 stream's cookie into an integral file descriptor.
1756
1757* ``malloc (0)'' no longer returns a null pointer. Instead, it
1758 allocates zero bytes of storage, and returns a unique pointer which
1759 you can pass to `realloc' or `free'. The behavior is undefined if
1760 you dereference this pointer.
1761
1762* The C library now runs on Sony NEWS m68k machines running either
1763 NewsOS 3 or NewsOS 4.
1764
1765* The new `syscall' function is a system-dependent primitive function
1766 for invoking system calls. It has the canonical behavior on Unix
1767 systems, including unreliable return values for some calls (such as
1768 `pipe', `fork' and `getppid').
1769
1770* The error code `EWOULDBLOCK' is now obsolete; it is always defined
1771 to `EAGAIN', which is the preferred name. On systems whose kernels
1772 use two distinct codes, the C library now translates EWOULDBLOCK to
1773 EAGAIN in every system call function.
1774\f
1775Version 1.06
1776
1777* The GNU C Library Reference Manual is now distributed with the library.
1778 `make dvi' will produce a DVI file of the printed manual.
1779 `make info' will produce Info files that you can read on line using C-h i
1780 in Emacs or the `info' program.
ea278354 1781 Please send comments on the manual to bug-glibc-manual@gnu.org.
28f540f4
RM
1782
1783* The library now supports SVR4 on i386s (i386-unknown-sysv4).
1784
1785* Brendan Kehoe has contributed a port to Sun SPARCs running Solaris 2.
1786
1787* Jason Merrill has contributed a port to the Sequent Symmetry running
1788 Dynix version 3 (i386-sequent-dynix).
1789
1790* The library has been ported to i386s running SCO 3.2.4 (also known as SCO
1791 ODT 2.0; i386-unknown-sco3.2.4) or SCO 3.2 (i386-unknown-sco3.2).
1792
1793* New function `memory_warnings' lets you arrange to get warnings when
1794 malloc is running out of memory to allocate, like Emacs gives you.
1795
1796* The C library now contains the relocating allocator used in Emacs 19 for
1797 its editing buffers. This allocator (ralloc) minimizes allocation
1798 overhead and fragmentation by moving allocated regions around whenever it
1799 needs to. You always refer to a ralloc'd region with a "handle" (a
1800 pointer to a pointer--an object of type `void **').
1801
1802* There is a new `printf' format: `%m' gives you the string corresponding
1803 to the error code in `errno'.
1804
1805* In `scanf' formats, you can now use `%as' or `%a[' to do the normal `%s'
1806 or `%[' conversion, but instead of filling in a fixed-sized buffer you
1807 pass, the `a' modifier says to fill in a `char **' you pass with a
1808 malloc'd string.
1809
1810* The `fnmatch' function supports the new flag bits `FNM_LEADING_DIR' and
1811 `FNM_CASEFOLD'. `FNM_LEADING_DIR' lets a pattern like `foo*' match a
1812 name like `foo/bar'. `FNM_CASEFOLD' says to ignore case in matching.
1813
1814* `mkstemp' is a traditional Unix function to atomically create and open a
1815 uniquely-named temporary file.
1816\f
1817Version 1.05
1818
1819* The standard location for the file that says what the local timezone is
1820 has changed again. It is now `/usr/local/etc/localtime' (or more
1821 precisely, `${prefix}/etc/localtime') rather than `/etc/localtime'.
1822
1823* The distribution no longer contains any files with names longer than 14
1824 characters.
1825
1826* `struct ttyent' has two new flag bits: TTY_TRUSTED and TTY_CONSOLE.
1827 These are set by the new `trusted' and `console' keywords in `/etc/ttys'.
1828
1829* New functions `ttyslot' and `syslog' from 4.4 BSD.
1830\f
1831Version 1.04
1832
1833* The configuration process has changed quite a bit. The `configure'
1834 script is now used just like the configuration scripts for other GNU
1835 packages. The `sysdeps' directory hierarchy is much rearranged.
1836 The file `INSTALL' explains the new scheme in detail.
1837
1838* The header files no longer need to be processed into ANSI C and
1839 traditional C versions. There is just one set of files to install, and
1840 it will work with ANSI or old C compilers (including `gcc -traditional').
1841
1842* Brendan Kehoe and Ian Lance Taylor have ported the library to the
1843 MIPS DECStation running Ultrix 4.
1844
1845* The Sun 4 startup code (crt0) can now properly load SunOS 4 shared libraries.
1846 Tom Quinn contributed the initial code. The GNU C library can NOT yet be
1847 made itself into a shared library.
1848
1849* Yet further improved support for the i386, running 4.3 BSD-like systems
1850 (such as Mach 3 with the Unix single-server), or System V.
1851
1852* New function `strncasecmp' to do case-insensitive string comparison
1853 with limited length.
1854
1855* New function `strsep' is a reentrant alternative to `strtok'.
1856
1857* New functions `scandir' and `alphasort' for searching directories.
1858
1859* New function `setenv' is a better interface to `putenv'.
1860
1861* Ian Lance Taylor has contributed an implementation of the SVID `ftw'
1862 function for traversing a directory tree.
1863
1864* The GNU obstack package is now also part of the C library.
1865 The new function `open_obstack_stream' creates a stdio stream that
1866 writes onto an obstack; `obstack_printf' and `obstack_vprintf' do
1867 formatted output directly to an obstack.
1868
1869* Miscellaneous new functions: reboot, nice, sigaltstack (4.4 BSD only),
1870 cfmakeraw, getusershell, getpass, swab, getttyent, seteuid, setegid.
1871
1872* `FNM_FILE_NAME' is another name for `FNM_PATHNAME', used with `fnmatch'.
1873
1874* The new functions `strfry' and `memfrob' do mysterious and wonderful
1875 things to your strings.
1876
1877* There are some new test programs: test-fseek, testmb, and testrand.
1878
1879* Some work has been done to begin porting the library to 4.4 BSD and Linux.
1880 These ports are not finished, but are a good starting place for really
1881 supporting those systems.
1882
1883* `/etc/localtime' is now the standard location for the file that says what
1884 the local timezone is, rather than `/usr/local/lib/zoneinfo/localtime'.
1885 This follows the general principle that `/etc' is the place for all local
1886 configuration files.
1887
1888* The C library header files now use `extern "C"' when used by the C++
1889 compiler, so the C library should now work with C++ code.
1890
1891* The header file <bstring.h> is gone. <string.h> now declares bcopy,
56ddf355
UD
1892 bcmp, bzero, and ffs. (Update: nowadays these functions are declared
1893 in <strings.h>.)
28f540f4
RM
1894
1895* Mike Haertel (of GNU e?grep and malloc fame) has written a new sorting
1896 function which uses the `merge sort' algorithm, and is said to be
1897 significantly faster than the old GNU `qsort' function. Merge sort is
1898 now the standard `qsort' function. The new algorithm can require a lot
1899 of temporary storage; so, the old sorting function is called when the
1900 required storage is not available.
1901
1902* The C library now includes Michael Glad's Ultra Fast Crypt, which
1903 provides the Unix `crypt' function, plus some other entry points.
28f540f4
RM
1904
1905* The code and header files taken from 4.4 BSD have been updated with the
1906 latest files released from Berkeley.
1907\f
1908----------------------------------------------------------------------
1909Copyright information:
1910
35129bc0 1911Copyright (C) 1992-1999,2000,2001,2002,2003,2004,2005,2006
e6a9beca 1912 Free Software Foundation, Inc.
28f540f4
RM
1913
1914 Permission is granted to anyone to make or distribute verbatim copies
1915 of this document as received, in any medium, provided that the
1916 copyright notice and this permission notice are preserved,
1917 thus giving the recipient permission to redistribute in turn.
1918
1919 Permission is granted to distribute modified versions
1920 of this document, or of portions of it,
1921 under the above conditions, provided also that they
1922 carry prominent notices stating who last changed them.
1923\f
1924Local variables:
1925version-control: never
557a9213 1926End: