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