]> git.ipfire.org Git - thirdparty/glibc.git/blame - NEWS
New locale raj_IN (#16857)
[thirdparty/glibc.git] / NEWS
CommitLineData
ee9247c3 1GNU C Library NEWS -- history of user-visible changes.
d4697bc9 2Copyright (C) 1992-2014 Free Software Foundation, Inc.
28f540f4
RM
3See the end for copying conditions.
4
d9814526 5Please send GNU C library bug reports via <http://sourceware.org/bugzilla/>
69be6aaf 6using `glibc' in the "product" field.
d5b396c1 7\f
58b930ae
SP
8Version 2.21
9
10* The following bugs are resolved with this release:
11
0b3b5762
L
12 6652, 12926, 13862, 14132, 14138, 14171, 14498, 15215, 15884, 16469,
13 16619, 16740, 17266, 17344, 17363, 17370, 17371, 17411, 17460, 17475,
14 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573,
15 17574, 17582, 17583, 17584, 17585, 17589, 17594, 17608, 17616, 17625,
16 17633.
a39208bd
CD
17
18* CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag
19 under certain input conditions resulting in the execution of a shell for
20 command substitution when the applicaiton did not request it. The
21 implementation now checks WRDE_NOCMD immediately before executing the
22 shell and returns the error WRDE_CMDSUB as expected.
fb89b46d 23
4863355a
JM
24* The minimum GCC version that can be used to build this version of the GNU
25 C Library is GCC 4.6. Older GCC versions, and non-GNU compilers, can
26 still be used to compile programs using the GNU C Library.
27
fb89b46d 28* New locales: tu_IN, bh_IN.
0781a777
RM
29
30* The obsolete sigvec function has been removed. This was the original
31 4.2BSD interface that inspired the POSIX.1 sigaction interface, which
32 programs have been using instead for about 25 years. Of course, ABI
33 compatibility for old binaries using sigvec remains intact.
58b930ae 34\f
d5b396c1
AM
35Version 2.20
36
37* The following bugs are resolved with this release:
38
898c62f4 39 6804, 9894, 12994, 13347, 13651, 14308, 14770, 15119, 15132, 15347, 15514,
7e54fd04
L
40 15698, 15804, 15894, 15946, 16002, 16064, 16095, 16194, 16198, 16275,
41 16284, 16287, 16315, 16348, 16349, 16354, 16357, 16362, 16447, 16516,
42 16532, 16539, 16545, 16561, 16562, 16564, 16574, 16599, 16600, 16609,
43 16610, 16611, 16613, 16619, 16623, 16629, 16632, 16634, 16639, 16642,
44 16648, 16649, 16670, 16674, 16677, 16680, 16681, 16683, 16689, 16695,
45 16701, 16706, 16707, 16712, 16713, 16714, 16724, 16731, 16739, 16740,
46 16743, 16754, 16758, 16759, 16760, 16770, 16786, 16789, 16791, 16796,
47 16799, 16800, 16815, 16823, 16824, 16831, 16838, 16839, 16849, 16854,
48 16876, 16877, 16878, 16882, 16885, 16888, 16890, 16892, 16912, 16915,
49 16916, 16917, 16918, 16922, 16927, 16928, 16932, 16943, 16958, 16965,
50 16966, 16967, 16977, 16978, 16984, 16990, 16996, 17009, 17022, 17031,
51 17042, 17048, 17050, 17058, 17061, 17062, 17069, 17075, 17078, 17079,
52 17084, 17086, 17088, 17092, 17097, 17125, 17135, 17137, 17150, 17153,
b09adb5b 53 17187, 17213, 17259, 17261, 17262, 17263, 17319, 17325, 17354.
0961f7e1 54
be9d4ccc
RE
55* Optimized strchrnul implementation for AArch64. Contributed by ARM Ltd.
56
95ee7fb1
SL
57* Reverted change of ABI data structures for s390 and s390x:
58 On s390 and s390x the size of struct ucontext and jmp_buf was increased in
59 2.19. This change is reverted in 2.20. The introduced 2.19 symbol versions
60 of getcontext, setjmp, _setjmp, __sigsetjmp, longjmp, _longjmp, siglongjmp
61 are preserved pointing straight to the same implementation as the old ones.
45ef6628 62 Given that, new callers will simply provide a too-big buffer to these
95ee7fb1
SL
63 functions. Any applications/libraries out there that embed jmp_buf or
64 ucontext_t in an ABI-relevant data structure that have already been rebuilt
65 against 2.19 headers will have to rebuilt again. This is necessary in any
66 case to revert the breakage in their ABI caused by the glibc change.
67
0961f7e1
JL
68* Support for file description locks is added to systems running the
69 Linux kernel. The standard file locking interfaces are extended to
70 operate on file descriptions, not file descriptors, via the use of
71 F_OFD_GETLK, F_OFD_SETLK, and F_OFD_SETLKW. File description locks
72 are associated with an open file instead of a process.
f3d338c9 73
f940b965
RE
74* Optimized strchr implementation for AArch64. Contributed by ARM Ltd.
75
d0f5b3f8
JM
76* The minimum Linux kernel version that this version of the GNU C Library
77 can be used with is 2.6.32.
78
d6fe5e58
JM
79* Running the testsuite no longer terminates as soon as a test fails.
80 Instead, a file tests.sum (xtests.sum from "make xcheck") is generated,
81 with PASS or FAIL lines for individual tests. A summary of the results is
82 printed, including a list of failing lists, and "make check" exits with
83 error status if there were any unexpected failures. "make check
84 stop-on-test-failure=y" may be used to keep the old behavior.
85
464263cc
JM
86* The am33 port, which had not worked for several years, has been removed
87 from ports.
c941736c
JM
88
89* The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer
90 supported; they now act the same as _DEFAULT_SOURCE (but generate a
91 warning). Except for cases where _BSD_SOURCE enabled BSD interfaces that
92 conflicted with POSIX (support for which was removed in 2.19), the
93 interfaces those macros enabled remain available when compiling with
94 _GNU_SOURCE defined, with _DEFAULT_SOURCE defined, or without any feature
95 test macros defined.
f63c86fe
WN
96
97* Optimized strcmp implementation for ARMv7. Contributed by ARM Ltd.
5a414ff7
DV
98
99* Added support for TX lock elision of pthread mutexes on s390 and s390x.
100 This may improve lock scaling of existing programs on TX capable systems.
101 The lock elision code is only built with --enable-lock-elision=yes and
102 then requires a GCC version supporting the TX builtins. With lock elision
103 default mutexes are elided via __builtin_tbegin, if the cpu supports
104 transactions. By default lock elision is not enabled and the elision code
105 is not built.
d03efb2f
AM
106
107* CVE-2014-4043 The posix_spawn_file_actions_addopen implementation did not
108 copy the path argument. This allowed programs to cause posix_spawn to
109 deference a dangling pointer, or use an unexpected pathname argument if
110 the string was modified after the posix_spawn_file_actions_addopen
111 invocation.
cfd2ea50
JM
112
113* All supported architectures now use the main glibc sysdeps directory
114 instead of some being in a separate "ports" directory (which was
115 distributed separately before glibc 2.17).
f083450f
RM
116
117* The NPTL implementation of POSIX pthreads is no longer an "add-on".
118 On configurations that support it (all Linux configurations), it's now
119 used regardless of the --enable-add-ons switch to configure. It is no
120 longer possible to build such configurations without pthreads support.
4e8f95a0
FW
121
122* Locale names, including those obtained from environment variables (LANG
123 and the LC_* variables), are more tightly checked for proper syntax.
124 setlocale will now fail (with EINVAL) for locale names that are overly
125 long, contain slashes without starting with a slash, or contain ".." path
126 components. (CVE-2014-0475) Previously, some valid locale names were
127 silently replaced with the "C" locale when running in AT_SECURE mode
128 (e.g., in a SUID program). This is no longer necessary because of the
129 additional checks.
9a8a5720
RM
130
131* On x86-64, the dynamic linker's lazy-binding support is now compatible
132 with application code using Intel MPX instructions. (With all previous
133 versions, the MPX register state could be clobbered when making calls
134 into or out of a shared library.) Note that while the new dynamic
135 linker is compatible with all known x86 hardware whether or not it
136 supports Intel MPX, some x86 instruction-set emulators might fail to
137 handle the new instruction encodings. This is known to affect Valgrind
138 versions up through 3.9 (but will be fixed in the forthcoming 3.10
139 release), and might affect other tools that do instruction emulation.
a1a6a401
FW
140
141* Support for loadable gconv transliteration modules has been removed.
142 The support for transliteration modules has been non-functional for
143 over a decade, and the removal is prompted by security defects. The
144 normal gconv conversion modules are still supported. Transliteration
145 with //TRANSLIT is still possible, and the //IGNORE specifier
f9df71e8 146 continues to be supported. (CVE-2014-5119)
41488498
FW
147
148* Decoding a crafted input sequence in the character sets IBM933, IBM935,
149 IBM937, IBM939, IBM1364 could result in an out-of-bounds array read,
150 resulting a denial-of-service security vulnerability in applications which
151 use functions related to iconv. (CVE-2014-6040)
6c1fd795
DM
152\f
153Version 2.19
154
155* The following bugs are resolved with this release:
156
fd2f9486
JM
157 156, 387, 431, 762, 832, 926, 2801, 4772, 6786, 6787, 6807, 6810, 6981,
158 7003, 9721, 9954, 10253, 10278, 11087, 11157, 11214, 12100, 12486, 12751,
159 12986, 13028, 13982, 13985, 14029, 14032, 14120, 14143, 14155, 14286,
160 14547, 14699, 14752, 14782, 14876, 14910, 15004, 15048, 15073, 15089,
161 15128, 15218, 15268, 15277, 15308, 15362, 15374, 15400, 15425, 15427,
162 15483, 15522, 15531, 15532, 15593, 15601, 15608, 15609, 15610, 15632,
163 15640, 15670, 15672, 15680, 15681, 15723, 15734, 15735, 15736, 15748,
164 15749, 15754, 15760, 15763, 15764, 15797, 15799, 15825, 15843, 15844,
165 15846, 15847, 15849, 15850, 15855, 15856, 15857, 15859, 15867, 15886,
166 15887, 15890, 15892, 15893, 15895, 15897, 15901, 15905, 15909, 15915,
ed27ed83
JM
167 15917, 15919, 15921, 15923, 15939, 15941, 15948, 15963, 15966, 15968,
168 15985, 15988, 15997, 16032, 16034, 16036, 16037, 16038, 16041, 16046,
169 16055, 16071, 16072, 16074, 16077, 16078, 16103, 16112, 16143, 16144,
170 16146, 16150, 16151, 16153, 16167, 16169, 16172, 16195, 16214, 16245,
171 16271, 16274, 16283, 16289, 16293, 16314, 16316, 16330, 16337, 16338,
798212a0
PP
172 16356, 16365, 16366, 16369, 16372, 16375, 16379, 16381, 16384, 16385,
173 16386, 16387, 16390, 16394, 16398, 16400, 16407, 16408, 16414, 16430,
174 16431, 16453, 16474, 16506, 16510, 16529
141f3a77 175
11520a57
CD
176* Slovenian translations for glibc messages have been contributed by the
177 Translation Project's Slovenian team of translators.
178
2fe16229
CD
179* The public headers no longer use __unused nor __block. This change is to
180 support compiling programs that are derived from BSD sources and use
181 __unused internally, and to support compiling with Clang's -fblock
08d76093
CD
182 extension which uses __block.
183
303e567a
SP
184* CVE-2012-4412 The strcoll implementation caches indices and rules for
185 large collation sequences to optimize multiple passes. This cache
186 computation may overflow for large collation sequences and may cause a
187 stack or buffer overflow. This is now fixed to use a slower algorithm
188 which does not use a cache if there is an integer overflow.
189
141f3a77
SP
190* CVE-2012-4424 The strcoll implementation uses malloc to cache indices and
191 rules for large collation sequences to optimize multiple passes and falls
192 back to alloca if malloc fails, resulting in a possible stack overflow.
193 The implementation now falls back to an uncached collation sequence lookup
194 if malloc fails.
c61b4d41
CD
195
196* CVE-2013-4788 The pointer guard used for pointer mangling was not
197 initialized for static applications resulting in the security feature
198 being disabled. The pointer guard is now correctly initialized to a
199 random value for static applications. Existing static applications need
200 to be recompiled to take advantage of the fix (bug 15754).
91ce4085
FW
201
202* CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes
203 to the d_name member of struct dirent, or omit the terminating NUL
204 character. (Bugzilla #14699).
205
ba0d798c
WN
206* CVE-2013-4332 The pvalloc, valloc, memalign, posix_memalign and
207 aligned_alloc functions could allocate too few bytes or corrupt the
208 heap when passed very large allocation size values (Bugzilla #15855,
209 #15856, #15857).
210
7cbcdb36
SP
211* CVE-2013-4458 Stack overflow in getaddrinfo with large number of results
212 for AF_INET6 has been fixed (Bugzilla #16072).
213
82bab04b 214* New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW,
b46d046e 215 pap_CW, quz_PE, the_NP.
ddd9fb8f 216
c5f840fd
MB
217* Substantially revised locales: gd_GB, ht_HT
218
3e181dda
CD
219* The LC_ADDRESS field was updated to support country_car for almost all
220 supported locales.
ddd9fb8f 221
3e181dda 222* ISO 1427 definitions were updated.
7447ccd9 223
8a05c252
CL
224* ISO 3166 definitions were updated.
225
6055173a
JM
226* The localedef utility now supports --big-endian and --little-endian
227 command-line options to generate locales for a different system from that
228 for which the C library was built.
229
b125d3e5
JM
230* Binary locale files now only depend on the endianness of the system for
231 which they are generated and not on other properties of that system. As a
232 consequence, binary files generated with new localedef may be incompatible
233 with old versions of the GNU C Library, and binary files generated with
234 old localedef may be incompatible with this version of the GNU C Library,
235 in the following circumstances:
236
237 + Locale files may be incompatible on m68k systems.
238
239 + Locale archive files (but not separate files for individual locales) may
240 be incompatible on systems where plain "char" is signed.
241
d4f66d37
JM
242* The configure option --disable-versioning has been removed. Builds with
243 --disable-versioning had not worked for several years.
244
3e181dda
CD
245* ISO 639 definitions were updated for Chiga (cgg) and Chinese (gan, hak, czh,
246 cjy, lzh, cmn, mnp, cdo, czo, cpx, wuu, hsn, yue).
e35696c3 247
ffb89e53
AO
248* SystemTap probes for malloc have been introduced.
249
5d29ccce
SP
250* SystemTap probes for slow multiple precision fallback paths of
251 transcendental functions have been introduced.
252
8b7d57cd 253* Support for powerpc64le has been added.
b125d3e5
JM
254
255* The soft-float powerpc port now supports e500 processors.
0a3ac0aa 256
fd712ef3 257* Support for STT_GNU_IFUNC symbols added for ppc32/power4+ and ppc64.
7011c262 258
c688b419
JM
259* A new feature test macro _DEFAULT_SOURCE is available to enable the same
260 set of header declarations that are enabled by default, even when other
261 feature test macros or compiler options such as -std=c99 would otherwise
262 disable some of those declarations.
263
7011c262 264* The _BSD_SOURCE feature test macro no longer enables BSD interfaces that
029c7b25
JM
265 conflict with POSIX. The libbsd-compat library (which was a dummy library
266 that did nothing) has also been removed.
0a57b83e
AO
267
268* Preliminary documentation about Multi-Thread, Async-Signal and
269 Async-Cancel Safety has been added.
ee4ec1d7
AK
270
271* Change of ABI data structures for s390 and s390x:
272 On s390 and s390x the size of struct ucontext and jmp_buf was increased to
273 allow for future hardware extensions. All library functions that accept or
274 return these structures were versioned in order to provide backwards
275 compatibility with existing code. However, not all cases can be handled
276 with interface versioning. If an application embeds either structure into
277 another structure and that structure is passed to another compilation unit
278 which expects the newer larger-sized object then any access to the new
279 fields will result in undefined behaviour. Similarly any access to fields
280 that were moved by the enlarging of the structures will cause undefined
281 behaviour. To fix the undefined behaviour all objects that are part of the
282 final in-memory image must agree on the size of structures, and this may
283 require recompilation.
2c8bfe7d
DM
284\f
285Version 2.18
286
287* The following bugs are resolved with this release:
288
17db6e8d 289 2546, 2560, 5159, 6809, 7006, 10060, 10062, 10283, 10357, 10686, 11120,
0432680e
PY
290 11561, 12310, 12387, 12492, 12515, 12723, 13550, 13889, 13951, 13988,
291 14142, 14176, 14200, 14256, 14280, 14293, 14317, 14327, 14478, 14496,
292 14582, 14686, 14812, 14888, 14894, 14907, 14908, 14909, 14920, 14952,
293 14964, 14981, 14982, 14985, 14991, 14994, 14996, 15000, 15003, 15006,
294 15007, 15014, 15020, 15022, 15023, 15036, 15054, 15055, 15062, 15078,
295 15084, 15085, 15086, 15100, 15160, 15214, 15221, 15232, 15234, 15283,
296 15285, 15287, 15304, 15305, 15307, 15309, 15327, 15330, 15335, 15336,
297 15337, 15339, 15342, 15346, 15359, 15361, 15366, 15380, 15381, 15394,
298 15395, 15405, 15406, 15409, 15416, 15418, 15419, 15423, 15424, 15426,
299 15429, 15431, 15432, 15441, 15442, 15448, 15465, 15480, 15485, 15488,
300 15490, 15492, 15493, 15497, 15506, 15529, 15536, 15553, 15577, 15583,
1fe2988f
CM
301 15618, 15627, 15631, 15654, 15655, 15666, 15667, 15674, 15711, 15755,
302 15759.
e4608715
CD
303
304* CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
305 has been fixed by disabling the use of pt_chown (Bugzilla #15755).
306 Distributions can re-enable building and using pt_chown via the new configure
307 option `--enable-pt_chown'. Enabling the use of pt_chown carries with it
308 considerable security risks and should only be used if the distribution
309 understands and accepts the risks.
1cef1b19 310
5b535ac4
AS
311* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
312 #15078).
313
1cef1b19
AS
314* CVE-2013-1914 Stack overflow in getaddrinfo with many results has been
315 fixed (Bugzilla #15330).
7fffbdff 316
55e4107b
SP
317* Add support for calling C++11 thread_local object destructors on thread
318 and program exit. This needs compiler support for offloading C++11
319 destructor calls to glibc.
320
e5c74c63
SP
321* Improved worst case performance of libm functions with double inputs and
322 output.
323
324* Support for priority inherited mutexes in pthread condition variables on
325 non-x86 architectures.
326
e7521973
JM
327* Port to Xilinx MicroBlaze contributed by David Holsgrove.
328
329* Optimized string functions for AArch64. Implemented by Marcus Shawcroft.
330
331* Optimized string functions for ARM. Implemented by Will Newton and
332 Richard Henderson.
333
334* Optimized libm functions for SPARC. Implemented by David S. Miller.
335
336* Support for building more of ARM glibc as Thumb-2 code. Implemented by
337 Richard Henderson.
338
339* Support for building most of MIPS glibc as MIPS16 code. Implemented by
340 Chung-Lin Tang, Maciej W. Rozycki and Maxim Kuvyrkov.
341
8cfdb7e0
SP
342* Added a benchmark framework to track performance of functions in glibc.
343
57267616
TS
344* New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
345 It is based on draft TS 18661 and currently enabled as a GNU extension.
58206c68 346
c204ab28
SP
347* On Linux, the clock function now uses the clock_gettime system call
348 for improved precision, rather than old times system call.
61dd6208 349
0748546f
PE
350* Added support for version-3 tz format files. This is needed when using
351 the tz database release 2013e or later, and affects a few unusual cases --
352 currently only TZ='America/Godthab' for time stamps after 2037.
353
61dd6208
SP
354* Added new API functions pthread_getattr_default_np and
355 pthread_setattr_default_np to get and set the default pthread
356 attributes of a process.
a7cb9d67
AK
357
358* Added support for TSX lock elision for pthread mutexes on i386 and x86-64.
359 This may improve lock scaling of existing programs on TSX capable systems.
360 When the --enable-lock-elision=yes parameter is specified at configure
361 time lock elision will be enabled by default for all PTHREAD_MUTEX_DEFAULT
362 mutexes.
be063fa4
RA
363
364* Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10
365 availability). Implemented by Ryan S. Arnold.
366
367* Support added for POWER8 platform. Implemented by Ryan S. Arnold.
370ca3d2
JM
368\f
369Version 2.17
370
371* The following bugs are resolved with this release:
372
80ceeaee 373 1349, 3439, 3479, 3665, 5044, 5246, 5298, 5400, 6530, 6677, 6778, 6808,
b4180a5e
AJ
374 9685, 9914, 10014, 10038, 10114, 10191, 10631, 10873, 11438, 11607, 11638,
375 11741, 12140, 13013, 13412, 13542, 13601, 13603, 13604, 13629, 13679,
376 13696, 13698, 13717, 13741, 13759, 13761, 13763, 13881, 13939, 13950,
377 13952, 13966, 14042, 14047, 14090, 14150, 14151, 14152, 14154, 14157,
378 14166, 14173, 14195, 14197, 14237, 14246, 14251, 14252, 14283, 14298,
379 14303, 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14368, 14376,
380 14417, 14447, 14459, 14476, 14477, 14501, 14505, 14510, 14516, 14518,
381 14519, 14530, 14532, 14538, 14543, 14544, 14545, 14557, 14562, 14568,
382 14576, 14579, 14583, 14587, 14595, 14602, 14610, 14621, 14638, 14645,
383 14648, 14652, 14660, 14661, 14669, 14672, 14683, 14694, 14716, 14719,
384 14743, 14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14803,
385 14805, 14807, 14811, 14815, 14821, 14822, 14824, 14828, 14831, 14833,
386 14835, 14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871, 14872,
387 14879, 14889, 14893, 14898, 14914.
14bc93a9 388
95b4f1b6
SE
389* Optimization of memcpy for MIPS.
390
14bc93a9
JL
391* CVE-2011-4609 svc_run() produces high cpu usage when accept fails with
392 EMFILE has been fixed (Bugzilla #14889).
7a845b2c 393
b54eb3cb
JM
394* The add-on ports collection is now distributed in the "ports" subdirectory
395 of the main GNU C Library distribution, rather than separately.
396
7e2bd01f
MS
397* Port to ARM AArch64 contributed by Linaro.
398
08f43f9b
AK
399* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
400 Optimized versions of memcpy, memset, and memcmp added for System z10 and
401 zEnterprise z196.
402 Implemented by Andreas Krebbel.
403
84b3fd84
FW
404* The new function secure_getenv allows secure access to the environment,
405 returning NULL if running in a SUID/SGID process. This function replaces
406 the internal function __secure_getenv.
407
815e6fa3
GB
408* SystemTap static probes have been added into the dynamic linker.
409 Implemented by Gary Benson.
410
400726de
MK
411* Optimizations of string functions strstr, strcasestr and memmem.
412 Implemented by Maxim Kuvyrkov.
413
7aab07e4 414* The minimum Linux kernel version that this version of the GNU C Library
6dad2c06 415 can be used with is 2.6.16.
7aab07e4 416
15d0da8c
WS
417* Optimizations of string functions memchr, wcschr, wcscpy, and wcsrchr for
418 powerpc POWER7. Implemented by Will Schmidt.
419
3cc3ef96
RM
420* New configure option --disable-nscd builds the C library such that it
421 never attempts to contact the Name Service Caching Daemon (nscd).
c53d909c
RM
422 New configure option --disable-build-nscd avoids building nscd itself;
423 this is the default if --disable-nscd is used.
3cc3ef96 424
b54eb3cb
JM
425* Improved support for cross-compilation, including cross-testing and
426 bootstrap builds without a previously built glibc.
427
85429b1a 428* Several testsuite tests are now able to test multiple IFUNC variants of an
0d224d52 429 interface, rather than just testing the one that would be chooen by
85429b1a
DM
430 default.
431
b54eb3cb
JM
432* New configure options --with-bugurl and --with-pkgversion, for
433 distributors to use to embed their bug-reporting and package version
434 information in --help and --version output.
435
050af9c4
SP
436* The ttyname and ttyname_r functions on Linux now fall back to searching for
437 the tty file descriptor in /dev/pts or /dev if /proc is not available. This
438 allows creation of chroots without the procfs mounted on /proc.
439
89a3ad0b
AO
440* The `crypt' function now fails if passed salt bytes that violate the
441 specification for those values. On Linux, the `crypt' function will
442 consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is
443 enabled, and fail on encrypted strings using the MD5 or DES algorithm
444 when the mode is enabled.
445
6e6249d0
RM
446* The `clock_*' suite of functions (declared in <time.h>) is now available
447 directly in the main C library. Previously it was necessary to link with
448 -lrt to use these functions. This change has the effect that a
449 single-threaded program that uses a function such as `clock_gettime' (and
450 is not linked with -lrt) will no longer implicitly load the pthreads
451 library at runtime and so will not suffer the overheads associated with
452 multi-thread support in other code such as the C++ runtime library.
5a04f376 453
d9286582
NK
454* New locales: ayc_PE, doi_IN, ia_FR, mni_IN, nhn_MX, niu_NU, niu_NZ,
455 sat_IN, and szl_PL.
8d44e150
UD
456\f
457Version 2.16
458
459* The following bugs are resolved with this release:
460
bedee953
PP
461 174, 208, 350, 369, 411, 706, 766, 887, 2074, 2541, 2547, 2548, 2550,
462 2551, 2552, 2553, 2554, 2562, 2563, 2565, 2566, 2570, 2576, 2636, 2678,
463 3335, 3440, 3748, 3768, 3866, 3868, 3906, 3976, 3992, 4026, 4108, 4596,
464 4822, 5077, 5461, 5805, 5993, 6471, 6486, 6578, 6649, 6730, 6770, 6794,
d9dc34cd
TMQMF
465 6884, 6890, 6894, 6895, 6907, 6911, 6959, 7064, 9739, 9902, 10110, 10135,
466 10140, 10153, 10210, 10254, 10346, 10375, 10545, 10716, 10846, 11174,
f8167050
CD
467 11261, 11322, 11365, 11451, 11494, 11521, 11677, 11837, 11959, 12047,
468 12097, 12193, 12194, 12297, 12298, 12301, 12340, 12354, 12416, 12495,
469 13058, 13223, 13361, 13525, 13526, 13527, 13528, 13529, 13530, 13531,
470 13532, 13533, 13547, 13551, 13552, 13553, 13555, 13556, 13559, 13563,
471 13566, 13576, 13579, 13583, 13592, 13594, 13613, 13618, 13637, 13656,
472 13658, 13673, 13691, 13695, 13704, 13705, 13706, 13718, 13726, 13738,
473 13739, 13743, 13750, 13758, 13760, 13761, 13775, 13786, 13787, 13792,
474 13806, 13824, 13840, 13841, 13844, 13846, 13848, 13851, 13852, 13854,
475 13871, 13872, 13873, 13879, 13882, 13883, 13884, 13885, 13886, 13892,
476 13895, 13908, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917,
477 13918, 13919, 13920, 13921, 13922, 13923, 13924, 13926, 13927, 13928,
478 13938, 13941, 13942, 13954, 13955, 13956, 13963, 13967, 13968, 13970,
479 13973, 13979, 13983, 13986, 13996, 14012, 14027, 14033, 14034, 14036,
480 14040, 14043, 14044, 14048, 14049, 14050, 14053, 14055, 14059, 14064,
481 14075, 14080, 14083, 14103, 14104, 14109, 14112, 14117, 14122, 14123,
482 14134, 14153, 14183, 14188, 14199, 14210, 14218, 14229, 14241, 14273,
483 14277, 14278.
380d7e87 484
a086b4d6
L
485* Support for the x32 ABI on x86-64 added. The x32 target is selected by
486 configuring glibc with:
487 BUILD_CC='gcc' CC='gcc -mx32' CXX='g++ -mx32'
488 Visit <http://sites.google.com/site/x32abi/> for more x32 ABI info.
489 Implemented by H.J. Lu.
490
380d7e87
UD
491* ISO C11 support:
492
493 + define static_assert
494
495 + do not declare gets
496
497 + declare at_quick_exit and quick_exit also for ISO C11
498
499 + aligned_alloc. NB: The code is deliberately allows the size parameter
500 to not be a multiple of the alignment. This is a moronic requirement
501 in the standard but it is only a requirement on the caller, not the
502 implementation.
8d44e150 503
74033a25 504 + timespec_get added
544563c9
UD
505
506 + uchar.h support added
d75a0a62 507
ac097f5c
UD
508 + CMPLX, CMPLXF, CMPLXL added
509
16dd419d
UD
510 Implemented by Ulrich Drepper.
511
9dc4e1fb 512* Support for the IA-64 has been moved to ports.
33808bf1
UD
513
514* Remove support for anything but ELF binary format
d9a216c0
UD
515
516* Checking versions of poll, ppoll added.
517 Implemented by Ulrich Drepper.
daa891c0
UD
518
519* More generic and 64-bit performance optimizations to math functions.
520 Implemented by Ulrich Drepper.
021db4be
AJ
521
522* New configure option --enable-obsolete-rpc makes the deprecated RPC
523 headers and functions available at compile time as they were before
524 version 2.14. This option will be removed at some time in the future
525 after the TI-RPC library becomes fully sufficient for the needs of
526 existing applications.
ffb7875d 527
21708942 528* Compatibility code for Linux kernel versions before 2.4 has been removed.
ffb7875d
JM
529 Note that glibc is not expected to work with any Linux kernel version
530 before 2.6.
83678f76 531
edb00e4d
RH
532* New header <sys/auxv.h> and function getauxval allowing easy access to
533 the AT_* key-value pairs passed from the Linux kernel. The header also
534 defines the HWCAP_* bits associated with the AT_HWCAP key.
535
83678f76 536* New locales: mag_IN
7b44a2df
RM
537
538* New configure option --enable-systemtap builds SystemTap static probes
539 into libc for setjmp and longjmp and into libpthread for various operations.
540 So far the setjmp/longjmp probes and some of the libpthread probes are
541 provided only for i*86 and x86_64.
542 Implemented by Roland McGrath and Rayson Ho.
47e452cf
JM
543
544* Optimized expf for x86-32 and x86-64. Implemented by Liubov Dmitrieva.
545
d9dc34cd
TMQMF
546* More optimized functions for PowerPC. Implemented by Adhemerval Zanella
547 and Will Schmidt.
47e452cf
JM
548
549* More optimized functions for SPARC. Implemented by David S. Miller.
550
551* Improved support for cross-compilation, especially bootstrap builds
552 without a previously built glibc.
553
554* Ports for the TILE-Gx and TILEPro families of processors. Contributed by
555 Chris Metcalf from Tilera.
556
557* Support for the old ARM ABI has been removed from ports. Only the EABI is
558 now supported for ARM processors.
559
560* The hard-float variant of the ARM EABI now uses /lib/ld-linux-armhf.so.3
561 as the name of the dynamic linker, to distinguish it from the
562 /lib/ld-linux.so.3 dynamic linker used for the base EABI.
563
564* Support for CRIS has been removed from ports.
d9dc34cd
TMQMF
565
566* A new class of installed header has been documented for low-level
567 platform-specific functionality. PowerPC added the first instance with a
568 function to provide time base register access. Contributed by Tulio
569 Magno Quites Machado Filho.
929cc14e
AJ
570
571* ix86 configurations now install header files that are consistent with
572 what x86-64 configurations install. These same header files can be used
573 for -m32, -m64, or -mx32 builds.
574 Contributed by H.J. Lu.
ee9247c3
CD
575
576* Math library bug fixes. A thorough audit of all open math library bugs was
577 conducted by Joseph Myers. Significant progress was made on many math
578 library bugs resulting in more accurate exceptions and function results.
579 Many thanks to all those that contributed including Andreas Jaeger for his
580 patch review and work on the x87 trigonometric instruction issues.
581
582* Timezone data is no longer installed. Timezone-related binaries and scripts
583 will continue to be installed. Users should obtain their timezone data from
584 their distribution provider or from the tzdata package at
585 <ftp://munnari.oz.au/pub/>.
ee1a7fab 586\f
e80fab37 587Version 2.15
11988f8f 588
c0244a9d
UD
589* The following bugs are resolved with this release:
590
aebae053
UD
591 6779, 6783, 9696, 10103, 10709, 11589, 11929, 12403, 12786, 12840, 12847,
592 12868, 12852, 12874, 12885, 12892, 12906, 12907, 12922, 12935, 12962,
593 13007, 13021, 13061, 13062, 13067, 13068, 13085, 13088, 13090, 13092,
594 13096, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13166, 13179,
595 13185, 13189, 13192, 13268, 13276, 13282, 13291, 13305, 13328, 13335,
596 13337, 13344, 13358, 13367, 13413, 13416, 13423, 13439, 13446, 13472,
597 13484, 13506, 13515, 13523, 13524, 13538, 13540
c0244a9d 598
11988f8f
UD
599* New program pldd to list loaded object of a process
600 Implemented by Ulrich Drepper.
9f2da732
UD
601
602* Add nss_db support back to glibc. No more dependency on Berkeley db
603 and support for initgroups lookups.
604 Implemented by Ulrich Drepper.
0b1cbaae
L
605
606* Optimized strcpy, strncpy, stpcpy, stpncpy for SSE2 and SSSE3 on x86-32.
607 Contributed by HJ Lu.
8912479f
L
608
609* Improved strcpy, strncpy, stpcpy, stpncpy for SSE2 and SSSE3 on x86-64.
610 Contributed by HJ Lu.
99710781 611
fc2ee42a
LD
612* Optimized strcat, strncat on x86-64 and optimized wcscmp, wcslen, strnlen
613 on x86-32 and x86-64.
99710781 614 Contributed by Liubov Dmitrieva.
c55fbd1e 615
d42964a0 616* Optimized strchr and strrchr for SSE on x86-32.
693fb948
LD
617 Contributed by Liubov Dmitrieva.
618
1d3e4b61
UD
619* Optimized memchr, memrchr, rawmemchr, memcmp, wmemcmp, wcschr, wcscpy
620 for x86-64 and x86-32.
093ecf92
LD
621 Contributed by Liubov Dmitrieva.
622
c55fbd1e
UD
623* New interfaces: scandirat, scandirat64
624 Implemented by Ulrich Drepper.
a0f33f99
UD
625
626* Checking versions of FD_SET, FD_CLR, and FD_ISSET added.
627 Implemented by Ulrich Drepper.
684ae515
UD
628
629* nscd now also caches the netgroup database.
630 Implemented by Ulrich Drepper.
0ac5ae23
UD
631
632* Integrate libm with gcc's -ffinite-math-only option.
633 Implemented by Ulrich Drepper.
d9a4d2ab
UD
634
635* Lots of generic, 64-bit, and x86-64-specific performance optimizations
636 to math functions. Implemented by Ulrich Drepper.
637
638* Optimized strcasecmp and strncasecmp for AVX on x86-64.
639 Implemented by Ulrich Drepper.
78239589
UD
640
641* New Linux interfaces: process_vm_readv, process_vm_writev
e188ebba
UD
642
643* Optimized strcasecmp and strncasecmp for SSSE3 and SSE4.2 on x86-32.
644 Implemented by Ulrich Drepper.
a1267ba1 645
f0b264f1
AZ
646* Optimized nearbyint and strcasecmp for PPC.
647 Implemented by Adhemerval Zanella.
2655fd5c 648
6b64057b 649* New locales: bho_IN, unm_US, es_CU, ta_LK
e80fab37 650\f
dded88cd 651Version 2.14
9f94d2ea 652
50934221
UD
653* The following bugs are resolved with this release:
654
553149f6 655 386, 6420, 7101, 9730, 9732, 9809, 10138, 10149, 10157, 11099, 11257,
873ca504
UD
656 11258, 11487, 11532, 11558, 11578, 11634, 11653, 11668, 11697, 11724,
657 11781, 11799, 11820, 11837, 11857, 11869, 11892, 11895, 11901, 11945,
7ae22829 658 11947, 11952, 11987, 12052, 12083, 12158, 12178, 12200, 12346, 12350,
4462fad3
UD
659 12393, 12420, 12432, 12445, 12449, 12453, 12454, 12460, 12469, 12489,
660 12509, 12510, 12511, 12518, 12527, 12541, 12545, 12551, 12582, 12583,
661 12587, 12597, 12601, 12611, 12625, 12626, 12631, 12650, 12653, 12655,
4769ae77
UD
662 12660, 12671, 12681, 12684, 12685, 12711, 12713, 12714, 12717, 12723,
663 12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792,
f16846a5 664 12795, 12811, 12813, 12814, 12841
50934221 665
7b57bfe5
UD
666* The RPC implementation in libc is obsoleted. Old programs keep working
667 but new programs cannot be linked with the routines in libc anymore.
668 Programs in need of RPC functionality must be linked against TI-RPC.
6b1e7d19 669 The TI-RPC implementation is IPv6 enabled and there are other benefits.
018b9e36
UD
670
671 Visible changes of this change include (obviously) the inability to link
a0446976
UD
672 programs using RPC functions without referencing the TI-RPC library and the
673 removal of the RPC headers from the glibc headers.
7b57bfe5
UD
674 Implemented by Ulrich Drepper.
675
c6489db3 676* New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at,
f1f929d7 677 syncfs, setns, sendmmsg
83fe108b 678
72d1dddb 679* New locales: os_RU, bem_ZA, en_ZA, ff_SN, sw_KE, sw_TZ, lb_LU, wae_CH,
a7b80ed5 680 yue_HK, lij_IT, mhr_RU
bc469bea
UD
681
682* New encodings: CP770, CP771, CP772, CP773, CP774
a9171047
UD
683
684* New program sotruss to trace calls through PLTs
685 Implemented by Ulrich Drepper.
7d17596c
UD
686
687* The malloc hook implementation is marked deprecated and will be removed
688 from the default implementation in the next version. The design never
689 worked ever since the introduction of threads. Even programs which do
690 not create threads themselves can use multiple threads created internally.
9f94d2ea 691\f
4828935d
LM
692Version 2.13
693
ac2b484c
UD
694* The following bugs are resolved with this release:
695
c30b7ee2
UD
696 3268, 6812, 7066, 10085, 10484, 10563, 10851, 11149, 11155, 11577, 11611,
697 11640, 11655, 11701, 11840, 11856, 11883, 11903, 11904, 11968, 11979,
698 12005, 12037, 12067, 12077, 12078, 12092, 12093, 12107, 12108, 12113,
699 12140, 12159, 12167, 12191, 12194, 12201, 12204, 12205, 12207, 12348,
700 12378, 12394, 12397
ac2b484c 701
10b3bedc 702* New Linux interfaces: prlimit, prlimit64, fanotify_init, fanotify_mark
c08fb0d7 703
ac2b484c 704* POWER7 optimizations: memset, memcmp, strncmp
8d50becc 705
e9f82e0d
UD
706* New optimized string functions for x86-64: strnlen (SSE2),
707 strcasecmp (SSE2, SSSE3, SSE4.2), strncasecmp (SSE2, SSSE3, SSE4.2)
8d50becc 708 Implemented by Ulrich Drepper.
4828935d 709\f
ee1a7fab
UD
710Version 2.12
711
d36b9613
UD
712* The following bugs are resolved with this release:
713
2e0fb521
DL
714 3662, 4457, 5553, 10162, 10401, 10414, 10554, 10824, 10864, 10915,
715 10918, 10936, 10939, 10958, 10968, 10969, 10972, 10992, 11000, 11001,
716 11007, 11010, 11027, 11039, 11040, 11041, 11043, 11046, 11056, 11070,
717 11093, 11115, 11125, 11126, 11127, 11134, 11141, 11149, 11183, 11184,
fc97f36d
UD
718 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194,
719 11200, 11230, 11235, 11242, 11254, 11258, 11271, 11272, 11276, 11279,
720 11287, 11292, 11319, 11332, 11333, 11387, 11389, 11390, 11394, 11397,
5ae958d7 721 11410, 11438, 11449, 11470, 11471, 11520, 11537, 11538, 11571
86a4c67f
UD
722
723* New interfaces: pthread_getname_np, pthread_setname_np
d36b9613 724
ee1a7fab
UD
725* New Linux interface: recvmmsg
726
5e4295fb
UD
727* STT_GNU_IFUNC implemented for Sparc by David Miller.
728
729* The dynamic linker now recognizes supported ABI versions from the
730 EI_ABIVERSION field in the ELF header.
731 Implemented by Ulrich Drepper.
732
71170aa0
UD
733* New NIS mode selector ADJUNCT_AS_SHADOW. The passwd.adjunct.byname table
734 will not be used to fill in password fields in the passwd.byname replies.
735 Instead it is used to synthesize the shadow.byname table, should it be
736 missing. This is a useful mode in some installations involving Solaris.
737 Implemented by Ulrich Drepper.
738
d36b9613 739* New locales: kok_IN, sq_MK, cv_RU
b50f8e42
UD
740\f
741Version 2.11
742
d36b9613
UD
743* The following bugs are resolved with this release:
744
745 3270, 7094, 9924, 9986, 10011, 10085, 10107, 10159, 10162, 10166, 10183,
746 10195, 10196, 10200, 10203, 10207, 10211, 10213, 10217, 10221, 10229,
747 10262, 10286, 10312, 10315, 10319, 10349, 10360, 10391, 10402, 10416,
748 10418, 10422, 10425, 10446, 10448, 10452, 10540, 10553, 10560, 10564,
749 10609, 10643, 10692, 10713, 10717, 10730, 10731, 10742, 10780, 10784,
750 10789, 10817, 10823, 10840, 10847
751
3a83202d
UD
752* New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps,
753 mkostemps64
3d5243d4
UD
754 Implemented by Ulrich Drepper.
755
24ab9c76 756* Checking version of longjmp added that fails if an uninitialized stack
b50f8e42
UD
757 frame would be created. Implemented by Ulrich Drepper.
758
b8706f70
UD
759* STT_GNU_IFUNC is now supported in static executables.
760 Implemented by H.J. Lu.
761
51a71cf0
UD
762* STT_GNU_IFUNC implemented for PPC by Alan Modra.
763
0122f28e 764* New optimized string functions for x86-64: strstr, strcasestr, memcmp,
9d36a6c4 765 strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp (SSE2, SSE4.2),
7f3146e7 766 strncmp (SSE2, SSE4.2), strchr (SSE4.2), strrchr (SSE4.2).
0122f28e
UD
767 Contributed by H.J. Lu.
768
9d36a6c4 769 strlen, rawmemchr, strcmp (SSSE3), strncmp (SSSE3).
0122f28e
UD
770 Implemented by Ulrich Drepper.
771
9d36a6c4
UD
772* New optimized string functions for x86: strlen, strcspn, strspn, strpbrk,
773 strstr, strcasestr.
774 Contributed by H.J. Lu.
775
776* Support for fma instruction in AVX on x86-64.
777 Implemented by H.J. Lu and Ulrich Drepper.
778
0122f28e
UD
779* AVX support in x86-64 auditing support in ld.so.
780 Implemented by H.J. Lu.
781
782* STB_GNU_UNIQUE support added.
783 Implemented by Ulrich Drepper.
784
785* Implement second fallback mode for optimized DNS lookup for even more
786 broken environments. If two requests from the same port are not
787 handled correctly close the socket and open a new one before sending
788 the second request. The 'single-request-reopen' option in /etc/resolv.conf
789 can be used to select this mode right away, instead of rediscovering the
790 necessity is every process again.
791 Implemented by Ulrich Drepper.
792
9d36a6c4
UD
793* New resolver flag RES_USE_DNSSEC to enable use of verified lookup.
794 Implemented by Adam Tkac.
795
796* Optimized iconv conversions for S390x.
797 Implemented by Andreas Krebbel.
798
4bc1b896
UD
799* Using condvars with PI mutexes is now more efficient due to kernel
800 support for requeueing to PI futexes. NPTL support added for x86-64.
801 Implemented by Ulrich Drepper.
802
9dd5b8a1 803* New locales: ps_AF, my_MM
f1092afe
UD
804\f
805Version 2.10
806
d36b9613
UD
807* The following bugs are resolved with this release:
808
809 697, 5381, 5807, 6411, 6545, 7040, 7058, 7067, 7080, 7083, 7095, 7098,
810 9677, 9694, 9697, 9701, 9704, 9705, 9706, 9720, 9726, 9730, 9733, 9736,
811 9741, 9750, 9753, 9759, 9781, 9791, 9793, 9823, 9833, 9844, 9880, 9881,
812 9891, 9893, 9895, 9913, 9916, 9920, 9948, 9955, 9957, 9963, 9985, 10052,
813 10069, 10086, 10087, 10090, 10092, 10093, 10100, 10118, 10128
814
bb066545 815* New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info
e109c612
UD
816 Implemented by Ulrich Drepper.
817
425ce2ed 818* New Linux interfaces: accept4, fallocate, fallocate64.
e109c612 819 Implemented by Ulrich Drepper.
6f5c3117 820
1fdd89a7 821* Correct declarations of string function when used in C++ code. This
735be400 822 could lead to compile errors for invalid C++ code.
1fdd89a7 823
6cbe890a
UD
824* XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are
825 now in POSIX.
77db439e 826
1f04d005 827* New POSIX 2008 interface: psiginfo
6cbe890a 828 Implemented by Ulrich Drepper.
1f04d005 829
610e67ed
UD
830* New ISO C++1x interfaces: quick_exit, at_quick_exit
831 Implemented by Ulrich Drepper.
832
878b72c5
UD
833* Support for selecting between multiple function definitions at runtime
834 using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper.
835
e109c612
UD
836* The libcrypt library can now use the hash function implementations in
837 NSS. Implemented by Ulrich Drepper.
838
839* The malloc implementation can be compiled to be less memory efficient
840 but higher performing in multi-threaded programs.
841 Implemented by Ulrich Drepper.
842
735be400 843* New locales: nan_TW@latin, ks_IN
878b72c5 844
84aa52d7 845* Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64.
9d26efa9
UD
846 Implemented by Ulrich Drepper.
847
848* Extended printf hook support. It is possible to use user-defined types
849 and extend existing format specifiers.
a152f366
UD
850 Implemented by Ulrich Drepper.
851
c7e74e59
UD
852* Handling for group shadow files has been added.
853 Implemented by Ulrich Drepper.
854
57be3fd7
UD
855* DNS IPv4-IPv6 parallel lookup now deals better with broken DNS
856 servers (the case, e.g., for some people using the built-in DNS
857 server in ADSL modems/routers). There is a once-per-process timeout
858 in case of a broken server. To avoid it, users can run nscd or put
859 'options single-request' in /etc/resolv.conf.
860 Implemented by Ulrich Drepper.
28919a77 861\f
b29899ae
UD
862Version 2.9
863
d36b9613
UD
864* The following bugs are resolved with this release:
865
866 3406, 5209, 5210, 5381, 5794, 5814, 5911, 6428, 6438, 6442, 6447, 6461,
867 6472, 6505, 6544, 6589, 6612, 6634, 6653, 6654, 6657, 6698, 6712, 6713,
868 6719, 6723, 6724, 6740, 6763, 6771, 6790, 6791, 6817, 6824, 6839, 6843,
869 6845, 6856, 6857, 6860, 6867, 6875, 6919, 6920, 6942, 6947, 6955, 6966,
870 6968, 6974, 6980, 6995, 7008, 7009, 7029
871
b29899ae 872* Unified lookup for getaddrinfo: IPv4 and IPv6 addresses are now looked
f05ac8f5
UD
873 up at the same time. Implemented by Ulrich Drepper.
874
875* TLS descriptors for LD and GD on x86 and x86-64.
876 Implemented by Alexandre Oliva.
18a74157
UD
877
878* getaddrinfo now handles DCCP and UDPlite.
879 Implemented by Ulrich Drepper.
0caca71a
UD
880
881* New fixed-size conversion macros: htobe16, htole16, be16toh, le16toh,
882 htobe32, htole32, be32toh, le32toh, htobe64, htole64, be64toh, le64toh.
883 Implemented by Ulrich Drepper.
884
885* New implementation of memmem, strstr, and strcasestr which is O(n).
886 Implemented by Eric Blake.
e038616f 887
8ec2550e 888* New Linux interfaces: inotify_init1, dup3, epoll_create1, pipe2
e038616f
UD
889
890* Implement "e" option for popen to open file descriptor with the
ebcc1f4d 891 close-on-exec flag set. Implemented by Ulrich Drepper.
e038616f 892
7b3ba2c4
UD
893* Implement "b" mode for fmemopen. In this mode writes writes don't
894 implicitly add a NUL byte and seeks from the end of the buffer really
895 use the buffer end, not the string length as the basis.
896 Implemented by Ulrich Drepper.
897
e038616f
UD
898* Many functions, exported and internal, now atomically set the close-on-exec
899 flag when run on a sufficiently new kernel. Implemented by Ulrich Drepper.
48b22986 900
bf837fa3
UD
901* Sorting rules for some Indian languages (Kannada, Gurumukhi, Telugu,
902 Sinhala)
48b22986 903 Implemented by Pravin Satpute.
0a26fc4d
UD
904
905* New locales: sd_IN, sd_IN@devanagari, ks_IN@devanagari, ht_HT, en_AG, nl_AW.
b29899ae 906\f
28919a77
UD
907Version 2.8
908
d36b9613
UD
909* The following bugs are resolved with this release:
910
911 2549, 3112, 4314, 4407, 4997, 5012, 5040, 5112, 5204, 5208, 5209, 5220,
912 5222, 5224, 5225, 5237, 5238, 5240, 5245, 5277, 5346, 5375, 5378, 5382,
913 5424, 5427, 5428, 5435, 5436, 5439, 5441, 5442, 5443, 5451, 5452, 5454,
914 5455, 5463, 5464, 5465, 5475, 5477, 5478, 5520, 5541, 5545, 5553, 5600,
915 5602, 5607, 5614, 5627, 5628, 5736, 5737, 5741, 5753, 5760, 5762, 5768,
916 5774, 5777, 5778, 5779, 5786, 5790, 5818, 5854, 5857, 5903, 5939, 5979,
917 5983, 5995, 5998, 6004, 6007, 6020, 6021, 6024, 6040, 6042
918
e038616f 919* New locales: bo_CN, bo_IN, shs_CA.
b4354cf4 920
77751669 921* New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8.
aece054b
UD
922
923* Sorting rules for some Indian languages (Devanagari and Gujarati).
924 Implemented by Pravin Satpute.
925
926* IPV6 addresses in /etc/resolv.conf can now have a scope ID
927
928* nscd caches now all timeouts for DNS entries
929 Implemented by Ulrich Drepper.
930
931* nscd is more efficient and wakes up less often.
932 Implemented by Ulrich Drepper.
933
934* More checking functions: asprintf, dprintf, obstack_printf, vasprintf,
935 vdprintf, and obstack_vprintf.
936 Implemented by Jakub Jelinek.
937
938* Faster memset for x86-64.
939 Implemented by Harsha Jagasia and H.J. Lu.
940
941* Faster memcpy on x86.
942 Implemented by Ulrich Drepper.
943
944* ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX).
945 Implemented by Ulrich Drepper.
3b32d8a2
UD
946
947* Faster sqrt and sqrtf implemention for some PPC variants.
d990b282 948 Implemented by Steven Munroe.
46c38bd7 949\f
e1db0493
UD
950Version 2.7
951
d36b9613
UD
952* The following bugs are resolved with this release:
953
954 4125, 4126, 4178, 4359, 4407, 4512, 4514, 4525, 4554, 4556, 4557, 4566,
955 4582, 4586, 4588, 4599, 4610, 4647, 4702, 4705, 4726, 4745, 4772, 4773,
956 4775, 4776, 4792, 4813, 4814, 4816, 4833, 4858, 4860, 4896, 4905, 4925,
957 4936, 4937, 4938, 4941, 4946, 4963, 4972, 5010, 5028, 5043, 5058, 5063,
958 5071, 5103, 5104, 5112, 5113, 5184, 5186
959
e1db0493
UD
960* More checking functions: fread, fread_unlocked, open*, mq_open.
961 Implemented by Jakub Jelinek and Ulrich Drepper.
962
963* Extend fortification to C++. Implemented by Jakub Jelinek.
964
965* Implement 'm' modifier for scanf. Add stricter C99/SUS compliance
966 by not recognizing 'a' as a modifier when those specs are requested.
967 Implemented by Jakub Jelinek.
968
969* PPC optimizations to math and string functions.
970 Implemented by Steven Munroe.
971
28919a77 972* New interfaces: mkostemp, mkostemp64. Like mkstemp* but allow additional
e1db0493
UD
973 options to be passed. Implemented by Ulrich Drepper.
974
975* More CPU set manipulation functions. Implemented by Ulrich Drepper.
976
0304f168
UD
977* New Linux interfaces: signalfd, eventfd, eventfd_read, and eventfd_write.
978 Implemented by Ulrich Drepper.
979
e1db0493
UD
980* Handle private futexes in the NPTL implementation.
981 Implemented by Jakub Jelinek and Ulrich Drepper.
982
983* Add support for O_CLOEXEC. Implement in Hurd. Use throughout libc.
984 Implemented by Roland McGrath and Ulrich Drepper.
985
986* Linux/x86-64 vDSO support. Implemented by Ulrich Drepper.
987
988* SHA-256 and SHA-512 based password encryption.
989 Implemented by Ulrich Drepper.
0304f168
UD
990
991* New locales: ber_DZ, ber_MA, en_NG, fil_PH, fur_IT, fy_DE, ha_NG, ig_NG,
992 ik_CA, iu_CA, li_BE, li_NL, nds_DE, nds_NL, pap_AN, sc_IT, tk_TM, ug_CN,
993 yo_NG.
994
995+ New iconv modules: MAC-CENTRALEUROPE, ISO-8859-9E, KOI8-RU.
996 Implemented by Ulrich Drepper.
e1db0493 997\f
11bf311e 998Version 2.6
46c38bd7 999
d36b9613
UD
1000* The following bugs are resolved with this release:
1001
1002 3156, 3213, 3285, 3291, 3306, 3313, 3320, 3322, 3325, 3326, 3334, 3348,
1003 3352, 3363, 3369, 3426, 3427, 3429, 3451, 3458, 3465, 3480, 3483, 3493,
1004 3514, 3515, 3559, 3632, 3664, 3673, 3674, 3745, 3747, 3818, 3840, 3842,
1005 3851, 3855, 3884, 3885, 3902, 3905, 3919, 3944, 3954, 3955, 3957, 3991,
1006 3995, 3996, 4024, 4040, 4069, 4070, 4074, 4076, 4096, 4101, 4102, 4114,
1007 4130, 4131, 4181, 4276, 4306, 4342, 4344, 4349, 4364, 4368, 4381, 4392,
1008 4403, 4405, 4406, 4411, 4438, 4439, 4455, 4456, 4465, 4512, 4514, 4586,
1009 4702, 4858
1010
bce20b9a 1011* New Linux interfaces: epoll_pwait, sched_getcpu.
46c38bd7 1012
4a44ce79
UD
1013* New generic interfaces: strerror_l.
1014
b21fa963 1015* nscd can now cache the services database. Implemented by Ulrich Drepper.
3af48b5b
UD
1016\f
1017Version 2.5
1018
d36b9613
UD
1019* The following bugs are resolved with this release:
1020
1021 39, 68, 192, 352, 388, 531, 935, 1006, 1201, 1203, 1386, 1782, 1783, 1784,
1022 1785, 1786, 1787, 1951, 1974, 1996, 2072, 2098, 2125, 2134, 2158, 2182,
1023 2349, 2376, 2386, 2389, 2415, 2418, 2420, 2423, 2450, 2451, 2466, 2472,
1024 2473, 2477, 2498, 2499, 2501, 2502, 2505, 2507, 2508, 2509, 2517, 2526,
1025 2569, 2571, 2592, 2611, 2625, 2632, 2644, 2662, 2680, 2683, 2684, 2693,
1026 2695, 2703, 2734, 2751, 2764, 2766, 2775, 2792, 2821, 2823, 2832, 2841,
1027 2843, 2883, 2892, 2908, 2914, 2926, 2961, 2978, 2980, 2987, 2997, 2998,
1028 3013, 3018, 3034, 3040, 3044, 3123, 3124, 3137, 3138, 3143, 3155, 3189,
1029 3225, 3251, 3252, 3253, 3273
1030
3af48b5b 1031* For Linux, the sorting of addresses returned by getaddrinfo now also
457b559e
UD
1032 handles rules 3, 4, and 7 from RFC 3484. I.e., all rules are handled.
1033 Implemented by Ulrich Drepper.
3af48b5b 1034
3142b1ac
UD
1035* Allow system admin to configure getaddrinfo with the /etc/gai.conf file.
1036 Implemented by Ulrich Drepper.
1037
871b9158 1038* New Linux interfaces: splice, tee, sync_file_range, vmsplice.
1e528c6e
UD
1039
1040* New iconv module for MIK. Contributed by Alexander Shopov.
3af48b5b 1041
3142b1ac
UD
1042* For sites with broken group and/or passwd database, the auto-propagate
1043 option of nscd can prevent creating ID lookup entries from the results
1044 of a name lookup and vice versa. This usually is no problem but some
457b559e 1045 site might have problems with the default behavior.
3142b1ac
UD
1046 Implemented by Ulrich Drepper.
1047
07bfff20 1048* Iterating over entire database in NIS can be slow. With the
3142b1ac
UD
1049 SETENT_BATCH_READ option in /etc/default/nss a system admin can decide
1050 to trade time for memory. The entire database will be read at once.
1051 Implemented by Ulrich Drepper.
1052
07bfff20
UD
1053* The interfaces introduced in RFC 3542 have been implemented by
1054 Ulrich Drepper.
1055
871b9158
UD
1056* Support for the new ELF hash table format was added by Ulrich Drepper.
1057
d5ba53f9
UD
1058* Support for priority inheritance mutexes added by Jakub Jelinek and
1059 Ulrich Drepper.
1060
ad2a3c07
UD
1061* Support for priority protected mutexes added by Jakub Jelinek.
1062
88cc61e8
UD
1063* New locales: nr_ZA, pa_PK, ca_AD, ca_FR, ca_IT, el_CY, tr_CY, as_IN,
1064 or_IN, csb_PL, fy_NL, sr_ME.
2e92188d 1065\f
137e6462
UD
1066Version 2.4
1067
1068* More overflow detection functions.
1069
1070* New iconv converters for IBM1025, IBM1122, IBM1137, IBM1153,
1071 IBM1154, IBM1155, IBM1156, IBM1157, and IBM1158 contributed by Jiro Sekiba.
1aa4e40a 1072
4973cbe5
UD
1073 More converters for IBM803, IBM901, IBM902, IBM921, IBM1008, IBM1097,
1074 IBM1112, IBM1123, IBM1130, IBM1140, IBM1141, IBM1142, IBM1143, IBM1144,
1075 IBM1145, IBM1146, IBM1147, IBM1148, IBM1149, IBM1166, IBM1167, IBM4517,
1076 IBM4899, IBM4909, IBM4971, IBM5347, IBM9030, IBM9066, IBM9448, IBM12712,
1077 IBM16804, IBM1364, IBM1371, IBM1388, IBM1390, and IBM1399 contributed
1078 by Masahide Washizawa.
1079
1aa4e40a
UD
1080* It is now possible to install audit libraries for the dynamic linker using
1081 LD_AUDIT. Implemented by Ulrich Drepper.
da0eaa47
RM
1082
1083* The LinuxThreads add-on, providing pthreads on Linux 2.4 kernels, is no
1084 longer supported. The new NPTL implementation requires Linux 2.6 kernels.
1085 For a libc and libpthread that works well on Linux 2.4 kernels, we
1086 recommend using the stable 2.3 branch.
4973cbe5 1087
35129bc0
RM
1088* The new function open_wmemstream acts like open_memstream,
1089 but uses a wchar_t wide character buffer.
1090
1091* The new function ppoll is an improved version of poll, similar to pselect.
1092
1093* New interfaces: fdopendir, openat, fstatat, fchmodat, fchownat,
1094 futimesat, faccessat, mkdirat, mkfifoat, mknodat,
1095 renameat, unlinkat, linkat, symlinkat, readlinkat.
1096
1097* New Linux kernel system calls: unshare,
1098 inotify_init, inotify_add_watch, inotify_rm_watch.
1099
1100* The euidaccess function is now also known by the alias eaccess,
1101 for compatibility with some other systems.
1102
1103* Timezone data updated to 2006b version.
137e6462 1104\f
e6a9beca
RM
1105Version 2.3.6
1106
1107* The following bugs are resolved with this release:
1108
1109 38, 253, 549, 622, 653, 721, 758, 851, 877, 915, 934, 955, 961,
1110 1016, 1037, 1076, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
1111 1087, 1088, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
1112 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
1113 1110, 1111, 1112, 1113, 1125, 1137, 1138, 1249, 1250, 1251, 1252,
1114 1253, 1254, 1350, 1358, 1394, 1438, 1498, 1534
1115
1116 Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
1117
1118* As of this release, GCC 4 can be used to compile the C Library.
1119
1120* Timezone data updated to 2005m version.
1121\f
da232bf9
RM
1122Version 2.3.5
1123
1124* The following bugs are resolved with this release:
1125
1126 284, 592, 602, 626, 633, 640, 650, 661, 671, 681, 693, 700, 710, 719,
1127 722, 723, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736,
1128 737, 738, 739, 740, 741, 742, 743, 744, 745, 765, 767, 768, 769, 776,
1129 777, 787, 821, 822, 823, 825
1130
1131 Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
1132\f
a55bda85
UD
1133Version 2.3.4
1134
1135* Support for RFC 3678. Real implementations exist only for Linux so far.
1136 Implemented by Ulrich Drepper.
8a1f658b
UD
1137
1138* nscd can now cache entries persistently. Expiring entries are reloaded.
1139 For speedups the cache can be shared in memory with client processes.
1140 Implemented by Ulrich Drepper.
1141
1142* nscd can now perform SELinux checks.
1143 Implemented by Matthew Rickard <mjricka@epoch.ncsc.mil>.
1144
0325dd20 1145* getaddrinfo queries are now cached. Canonical name lookup is performed
8a1f658b
UD
1146 efficiently.
1147 Implemented by Ulrich Drepper.
1148
1149* The nothrow function attribute is used when headers are used by gcc when
1150 compiling C code. This can avoid significant amounts of exception
1151 handling data.
1152
1153* The malloc functions perform more error checking and are stricter when
1154 it comes to reacting on errors. The default action is to terminate
0325dd20 1155 the process after showing an error message. Implemented by Ulrich Drepper.
8a1f658b
UD
1156
1157* Reverse lookups of IPv6 addresses does not use bit string or .ip6.int
0325dd20
UD
1158 lookups anymore unless explicitly requested. Implemented by Ulrich Drepper.
1159
1160* Namespaces in ld.so are implemented. DSOs can be loaded in separate
1161 namespaces using the new function dlmopen(). This feature is of course,
1162 like most other dynamic loading functionality, not available in statically
1163 linked applications. Implemented by Ulrich Drepper.
1164
1165* Low-overhead boundary checking variants of string and some stdio functions
1166 were added. These are to be used in conjunction with a gcc patch by
1167 Jakub Jelinek which adds calls to these functions if possible.
720817e7
RM
1168 Implemented by Jakub Jelinek and Ulrich Drepper.
1169
1170* Old code for several operating systems and machine architectures that
1171 have not been in working condition in a long time have been removed from
1172 the main source tree maintained by the GNU C Library's maintainers.
1173 These files are now reside in the separate `ports' source module
1174 that is usable as an add-on when building the library.
a55bda85 1175\f
3a601d31
RM
1176Version 2.3.3
1177
45e4762c
RM
1178* New functions `dladdr1' and `dlinfo' in <dlfcn.h> provide more ways to
1179 interrogate the dynamic linker, compatible with the Solaris interface.
1180
3a601d31
RM
1181* ELF thread-local storage support (TLS) now works on PowerPC and PowerPC64;
1182 implemented by Paul Mackerras, Steven Munroe, and Roland McGrath.
925c3c5c 1183
69be6aaf 1184* getifaddrs now uses the netlink interface on Linux to get its information.
925c3c5c
UD
1185 Implemented by Thorsten Kukuk.
1186
1187* getaddrinfo now implements AI_V4MAPPED, AI_ALL, and AI_ADDRCONF.
1188 Implemented by Ulrich Drepper.
97fd3a30
UD
1189
1190* support for non-executable stacks on x86 has been added. Changes mostly
1191 by Roland McGrath.
1192
c5af724c 1193* regex is now much faster for multibyte locales. Changes by Jakub Jelinek
97fd3a30
UD
1194 and Ulrich Drepper.
1195
1196* getaddrinfo now performs destination address selection according to
1197 RFC 3484.
3a601d31 1198\f
747bf98e
RM
1199Version 2.3.2
1200
f87277f2
RM
1201* Thread-safe interfaces for many functions that access locale data
1202 were added in version 2.3, but these features were omitted from NEWS.
1203 Many functions have variants with an `_l' suffix that take a `locale_t'
1204 object as a parameter rather than consulting the current locale.
1205 The new functions `newlocale', `duplocale', and `freelocale' in <locale.h>
1206 create and maintain `locale_t' objects. Additionally, the new function
1207 `uselocale' sets "the current locale" (as used by functions not so
1208 parameterized) set for an individual thread. These features were added
1209 in version 2.3, implemented by Ulrich Drepper and Roland McGrath.
1210
747bf98e
RM
1211* The functions getresuid, getresgid, setresuid, and setresgid, which
1212 have long been available on Linux, are now declared in <unistd.h>
1213 and are now also available on the Hurd.
1214
1215* ELF thread-local storage support (TLS) now works on x86-64.
d62507dd
RM
1216
1217* The new dynamic string token $LIB is expanded in shared library names.
1218 This normally expands to lib, but on some 64-bit platforms to lib64 instead.
52a16e58 1219
f87277f2
RM
1220* Aldy Hernandez contributed complete software floating point support for
1221 PowerPC machines with no FPU.
1222
52a16e58 1223* fexecve is implemented on Linux.
f9ad060c 1224
f87277f2
RM
1225* The `btowc' function should work at least twice as fast due to
1226 specialized callbacks in the iconv modules. Implemented by Bruno Haible.
9ef0a840
UD
1227
1228* With approriate thread add-ons cancelable functions are now implemented
1229 in libc.so as well. No need to call the function in libpthread. This
1230 change allowed to finally disable the incorrect and expensive handling
1231 of weak definition in ld.so.
1232
1233* Yet more PLT entries in libc.so have been removed. We finally arrived
1234 at the bare minimum. Startup times improved appropriately.
1235
1236* Support for the new Linux/x86 system call interface was added. The
1237 AT_SYSINFO auxiliary vector entry is recognized and handled.
747bf98e 1238\f
03a2c647 1239Version 2.3
37fb1084 1240
03a2c647
UD
1241* Masahide Washizawa contributed iconv modules for IBM1163 and IBM1164
1242 charsets.
1243
1244* iconv (the program and the interface) now accepts empty names (excluding
1245 options like //TRANSLIT) to mean "use charset of current locale".
47e8b443 1246
bb0ec5bd 1247* localedef can now transliterate characters in strings which are not in
47e8b443 1248 the provided charmap. The information from the input locale is used.
c17f665b
UD
1249
1250* Prelinking support was added for ELF targets. This requires additional
1251 tools and recent versions of the GNU binutils. Contributed by Jakub Jelinek.
8e57fc70 1252
bb0ec5bd 1253* Read-only stdio streams now use mmap to speed up operation by eliminating
91e6367e
UD
1254 copying and buffer underflows. To use add 'm' to the mode string of
1255 the fopen/fdopen/freopen call. Implemented by Ulrich Drepper.
207b66ce
UD
1256
1257* The malloc functions were completely rewritten by Wolfram Gloger based
1258 on Doug Lea's malloc-2.7.0.c.
3b0bdc72 1259
bb0ec5bd 1260* Isamu Hasegawa contributed a completely new and POSIX-conformant
3b0bdc72 1261 implementation of regex.
02779eaa
UD
1262
1263* Bruno Haible upgraded the iconv and locale implementation to support
1264 Unicode 3.2.
be45f421 1265
bb0ec5bd
RM
1266* Contents of the LC_* and LANG environment variables in the CEN style are
1267 not recognized anymore. It never was used. Change by Ulrich Drepper.
be45f421 1268
bb0ec5bd
RM
1269* The runtime (ld.so, libc, libpthread for Linux) now can handle the ELF
1270 thread-local storage (TLS) ABI on some platforms.
1271 Changes by Ulrich Drepper. SH support by Kaz Kojima.
be45f421
UD
1272
1273* Bruno Haible contributed iconv converters for ISO-2022-JP-3, SHIFT JIS-X0213,
f87277f2 1274 EUC-JISX0213, and TSCII.
a753ffb2
RM
1275
1276* New header <ifaddrs.h> with functions `getifaddrs' and `freeifaddrs':
1277 BSD-compatible interface for getting all network interface addresses.
1278 Implementation for IPv4 by Roland McGrath.
6a9340b5
UD
1279
1280* Loading of locale data is faster due to the introduction of a locale
1281 archive. Implemented by Roland McGrath and Ulrich Drepper.
dd4f2115
UD
1282
1283* Startup times are significantly reduced by not using exported functions
1284 inside the library itself. Changes by Jakub Jelinek, Roland McGrath,
1285 and Ulrich Drepper.
c843e065
RM
1286
1287* Steven Munroe contributed a port to PowerPC64/Linux.
1288\f
45061a15
RM
1289Version 2.2.6
1290
1291* The Hurd now uses the GNU libio implementation of stdio rather than the
1292 old GNU stdio implementation, and uses a new ABI (libc.so.0.3).
1293
1294* The Hurd on x86 now has the `ioperm' function and <sys/io.h> header file
1295 with the same behavior as the Linux system call of the same name.
03a2c647 1296\f
a8ae31c2
UD
1297Version 2.2.5
1298
76321a25
AJ
1299* Stephen Moshier implemented log2, log10, powl and cbrtl for the
1300 128-bit long double format.
a8ae31c2 1301
557a9213
UD
1302* Masahide Washizawa contributed iconv modules for IBM1132, IBM1133, IBM1160,
1303 IBM1161, and IBM1162 charsets.
a8ae31c2 1304
ad2e4f18 1305* Andreas Jaeger contributed a port to x86-64/Linux.
a8ae31c2 1306
7d0c5823
RM
1307* Peter Bruin contributed a port to PowerPC/Hurd.
1308
a8ae31c2
UD
1309* libc functions using I/O streams now can handle wide-oriented streams
1310 as well.
1311
45061a15
RM
1312* optimizations in the dynamic linker. Binaries created by recent binutils
1313 versions start up quicker due to reduced time spent on relocations.
8e57fc70
UD
1314
1315* Support for use of gcc3 added by Jakub Jelinek and HJ Lu.
7d0c5823 1316\f
33996419
AJ
1317Version 2.2.4
1318
2995f70e 1319* Stephen Moshier implemented cosh, expm1, log1p, acos, sinh, tanh,
aff17a50 1320 asinh, atanh, j0 for the 128-bit long double format.
8fee1bb0
UD
1321
1322* Bruno Haible updated all the code handling Unicode in some form to
1323 support Unicode 3.1.
86dbe05e
UD
1324
1325* Speed of regex for single-byte locales is back to previous levels.
1326 Patch by Isamu Hasegawa.
045fcd26 1327
69d5f925 1328* Alpha, SPARC, and IA-64 now also using floating stacks.
045fcd26 1329
69d5f925 1330* Startup time of internationalized applications greatly improved through
045fcd26
UD
1331 iconv cache. Use iconvconfig to generate the cache file.
1332 Contributed by Ulrich Drepper.
1333
1334* The IA-64 specific part of ld.so was rewritten to eliminate some pretty
1335 severe performance problems. Patch by David Mosberger.
1336
1337* The Hurd port got a lot more functionality like AIO, various stdio
1338 extensions, etc. Mainly done by Roland McGrath.
129d706d
UD
1339
1340* mtrace can now lookup symbols in shared libraries.
33996419 1341\f
2ace5721
UD
1342Version 2.2.3
1343
1746f2b0 1344* Intel's IA-64 math library is largely integrated. It provides fast and
2ace5721
UD
1345 accurate implementatations for most basic and standard math functions
1346 in float, double, and long double format.
1347
f128331c 1348* Stephen Moshier implemented j0, j1, jn, y0, y1, yn, lgamma, erf, erfc,
b8750342
UD
1349 and asin for the 96-bit long double format and asin, log, tan for the
1350 128-bit long double format.
07f951e4 1351
e4d82761
UD
1352* The beginning of a last-bit accurate math library by IBM Haifa were added.
1353 The basic double functions exist today. Contributed by Abraham Ziv
1354 <ziv@il.ibm.com>, Moshe Olshansky <olshansk@il.ibm.com>, Ealan Henis
1355 <ealan@il.ibm.com>, and Anna Reitman <reitman@il.ibm.com>.
1356
2ace5721
UD
1357* An asynchronous name lookup library was added. The interface is designed
1358 after POSIX AIO. The proposal was circulated beforehand to get comments.
1359 No negative ones came in. Implemented by Ulrich Drepper.
b8a8413c
UD
1360
1361* Port to S390/64bit contributed by Martin Schwidefsky
1362 <schwidefsky@de.ibm.com>.
a66f0958
UD
1363
1364* David Mosberger <davidm@hpl.hp.com> implemented the setcontext family
1365 of functions for Linux/IA-64.
481b550f
UD
1366
1367* The RPC code is now thread safe. Threads can now use the same service
1368 of different services at the same time. Patch by Eric Norum
1369 <eric.norum@usask.ca> with some help by Ulrich Drepper.
f128331c
UD
1370
1371* Martin Schwidefsky <schwidefsky@de.ibm.com> implemented the setcontext
1372 family of functions for Linux/S390.
232fdf8c
UD
1373
1374* Ulrich Drepper <drepper@redhat.com> implemented the setcontext family
1375 of functions for Linux/x86.
eacde9d0
UD
1376
1377* Port to Linux/CRIS contributed by Axis Communications.
2ace5721 1378\f
306eeae5
UD
1379Version 2.2.2
1380
464d97ec 1381* Lots of headers were cleaned up. Using the tool in the conform/ subdir
306eeae5
UD
1382 we can now check for namespace violations and missing declarations. The
1383 result is that almost all headers are now Unix-compliant (as defined in
1384 the upcoming XPG6). The negative side is that some programs might need
1385 corrections, too, if they depend on the incorrect form of the headers in
1386 previous versions which defined too many symbols and included too many
1387 other headers.
464d97ec
UD
1388
1389* regex now handles multibyte character sets correctly.
1390 Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
1391
1392* iconv (the program) does now conform to the upcoming XPG6 and handles
1393 charmaps. Instead of the charset names the path of charmaps can be
1394 provided and the conversion happens based on this data.
1395 Contributed by Ulrich Drepper.
1396
1397* The locale program now provides detailed information about the installed
1398 locales. While
1399
1400 locale -a
1401
1402 only lists the names of the supported locales
1403
1404 locale -a --verbose
1405
1406 provides details such as country, language, and codeset name.
1407 Contributed by Ulrich Drepper.
306eeae5 1408\f
d2defdc4
UD
1409Version 2.2.1
1410
1411* The gencat program now parses the input file according to the charset
1412 selected by the LC_CTYPE category. This is important for stateful
1413 character sets. To make generating catalogs easier there is a way
1414 to overwrite the charset selected by the locale: before the first
1415 message or $ quote line the catalog can contain a line like
1416
1417 $ codeset=ISO-8859-2
1418
1419 to select the charset (ISO-8859-2 in this case).
1420
1421 Implemented by Shinya Hanataka and Ulrich Drepper.
aea6353a
UD
1422
1423* New codeset conversion modules: IBM-922 (Estonia PC codeset),
1424 IBM-1124 (Ukraine PC codeset), IBM-1129 (Vietnamese PC codeset).
1425 Contributed by Masahide Washizawa <washi@jp.ibm.com>.
234669e2
UD
1426
1427* Optimized string functions for Alpha ev6 and ev67 by Richard Henderson
1428 <rth@redhat.com> and Rick Gorton <rick.gorton@alpha-processor.com>.
1429
1430* The LANGUAGE environment variable is now ignored unless the locale is
1431 changed from the default "C" locale.
1432
1433* The usual bug fixes.
d2defdc4 1434\f
2e92188d
UD
1435Version 2.2
1436
08a2e4a0
GM
1437* Greg McGary added runtime support for bounds checking using gcc's
1438 new -fbounded-pointers option. ix86 target is complete. PowerPC
1439 is in progress.
1440
2e92188d
UD
1441* Thorsten Kukuk added secure mode support to nscd.
1442
793bd4d9 1443* The Berkeley db libraries have been removed.
2e92188d 1444
47b853e8
UD
1445 Related, the nss_db module is now in a separate package since it
1446 obviously requires a database library being available.
1447
0013b2b1
UD
1448* Wide character I/O streams implemented by Ulrich Drepper.
1449
abbffdf9 1450* Functions from the extended socket API added by Ulrich Drepper.
01c771d0 1451
6e8afc1c
UD
1452* Functions feenableexcept and fedisableexcept to control the
1453 behaviour of individual exceptions have been added by Andreas Jaeger.
1454
591e1ffb
UD
1455* ldconfig program added by Andreas Jaeger and Jakub Jelinek.
1456
d3436b3c
UD
1457* The resolver code has been updated from bind 8.2.3-T5B which supports
1458 threads. The integration was done by Andreas Jaeger, Adam D. Bradley,
1459 and Mark Kettenis.
2588068b
UD
1460
1461 This change could in some situations effect backward compatibility. Since
1462 now `_res' is a thread-local instead of a global variable, modifying it
1463 in one thread does not have any effect in other threads.
66ac0abe 1464
a00c3ca9 1465 The resolver library was also extended to allow IPv6 as the transport
d3436b3c
UD
1466 protocol for the requests. This work was done by Stig Venaas.
1467
1c5d4617
UD
1468* Compatibility code for K&R C compilers has been removed from the
1469 header files. A ISO C compiler is needed to use the library
1470 (conforming to either C89 or C99 standard).
1471
abbffdf9
UD
1472* Complete rewrite of the localedef program to support multibyte character
1473 sets. Implement handling of ISO 14651 and ISO 14652. Rewrite strcoll,
1474 strxfrm, wcscoll, and wcsxfrm functions. Make isw*() functions work.
1475 Implemented by Ulrich Drepper.
1476
8f3f1e09
UD
1477 Bruno Haible significantly improved the generation and use of the data
1478 structures for the wide character tables.
1479
abbffdf9
UD
1480* Plural handling in gettext implemented by Ulrich Drepper.
1481
69173865
UD
1482* The utmp daemon has been removed.
1483
1484* The port to MIPS-Linux has been finished by Andreas Jaeger.
1485
37fb8add
UD
1486* A port to Hitachi SH3 and SH4 has been contributed by Kazumoto Kojima
1487 and Yutaka Niibe.
1488
594cee6c
UD
1489* POSIX clocks and timers implemented by Kaz Kylheku and Ulrich Drepper.
1490
40c4c9b5
UD
1491* POSIX barriers implemented by Kaz Kylheku.
1492
594cee6c
UD
1493* POSIX spawn function family implemented by Ulrich Drepper.
1494
1495* POSIX spinlocks are now available.
1496
40c4c9b5
UD
1497* Timed wait functions for mutex, rwlock, and semaphores are implemented.
1498
8f3f1e09
UD
1499* the configure option --enable-kernel=X.Y.Z allows to strip out
1500 compatibility for kernel versions before X.Y.Z. This is currently only
1501 implemented for Linux.
1502
3107c0c5
UD
1503* the sockaddr_in6 structure changed. The IPv6 working group added a new
1504 field sin6_scope_id. This means that all programs using IPv6 should be
1505 recompiled. Don't expect binary compatibility with previous glibc
1506 versions.
1507
d2830ba4
UD
1508* various conversion modules for IBM character sets contributed by
1509 Masahide Washizawa.
1510
8f3f1e09 1511* IA-64 port by Jes Sorensen and HJ Lu.
6f2a8167
UD
1512\f
1513Version 2.1.3
1514
1515* bug fixes
1516
01c771d0
UD
1517\f
1518Version 2.1.2
1519
1520* bug fixes
1521
28f540f4 1522\f
e518937a
UD
1523Version 2.1.1
1524
27995311
UD
1525* New ISO C 9x function _Exit, imaxabs, and imaxdiv are added.
1526
16b0f634
UD
1527* New xdr functions are added; some rpc functions are now 64bit clean.
1528
407d26b7 1529* Fixed a number of bugs and memory leaks (especially in NIS+ code).
16b0f634
UD
1530
1531* Fixed known incompatibilities with glibc 2.0.
1532
407d26b7 1533* New functions lock64, strchrnul, rawmemchr, getutmp and getutmpx.
16b0f634 1534
407d26b7 1535* Optimized a number of functions (especially the ELF dynamic loader).
16b0f634
UD
1536
1537* Update timezone data files.
27995311 1538
554b8800
UD
1539* lots of charmaps corrections
1540
1541* some new locale definitions and charmaps
1542
e518937a 1543\f
c84142e8
UD
1544Version 2.1
1545
da2d1bc5
UD
1546* Richard Henderson corrected size of struct timeval on Linux/Alpha to
1547 conform to POSIX member type requirements. Symbol versions have been
1548 adjusted as needed within the library, and for direct use by applications,
1549 but there is potential for problems if third-party libraries use
1550 struct timeval as part of their interface. This does not present
1551 a problem for X and other "essential" system libraries.
1552
c84142e8 1553* An additional locale model to support C++ Standard Library locale
1fb05e3d 1554 model and probably more was implemented by Ulrich Drepper.
c84142e8 1555
1fb05e3d 1556* Eric Youngdale and Ulrich Drepper implemented versioning of objects on
c84142e8
UD
1557 symbol level.
1558
1559* Miles Bader provided the `argp' function family to support hierachical
1560 command line argument parsing, layered on top of getopt.
377a515b 1561
cbdee279 1562* strtod accepts new hexadecimal floating-point format from ISO C 9X.
377a515b
UD
1563
1564* printf has two new specifiers %a and %A to print hexadecimal flaoting-point
cbdee279 1565 numbers.
377a515b 1566
cbdee279 1567* scanf recognizes the %a and %A format for scanning floating point numbers.
e61abf83 1568
48869012
UD
1569* the new headers <stdint.h> and <inttypes.h> from ISO C 9X provides
1570 information and interfaces for the available integer types.
e61abf83 1571
813f4f4d
UD
1572* about 130 new math functions were added to implement the ISO C9x math
1573 library.
1574
e61abf83 1575* the new header <complex.h> contains definitions of the complex math
cbdee279
UD
1576 functions from ISO C 9X.
1577
1578* the new header <tgmath.h> defines generic macros to use complex or
1579 real valued functions.
e61abf83 1580
a5a0310d 1581* Thorsten Kukuk provided an implementation for NIS+, securelevel 0, 1 and 2.
e61abf83 1582
a5a0310d
UD
1583* Andreas Jaeger provided a test suite for the math library.
1584
1585* Mark Kettenis implemented the utmpx interface and an utmp daemon.
cbdee279 1586
440d13e2 1587* Ulrich Drepper added character set conversion functions (iconv).
cbdee279
UD
1588
1589* Optimized string functions have been added.
1590
1591* The localedata addon is now part of glibc.
2eb45444
UD
1592
1593* An implementation of profiling shared libraries was added by Ulrich Drepper.
ea278354 1594
48244d09
UD
1595* Thorsten Kukuk and Ulrich Drepper provided an implementation for a caching
1596 daemon for NSS (nscd).
1597
1598 Missing a better place here are some numbers on improvements. Under
1599 Linux 2.1.125 un-tar-ing the kernel sources takes
1600
0dee6738 1601 user system wall
48244d09 1602
0dee6738 1603 using local files 12.19s 6.88s 22.91s
48244d09 1604
0dee6738 1605 using NIS 13.92s 8.91s 26.34s
48244d09 1606
0dee6738 1607 using NIS & nscd 10.37s 7.34s 25.30s
48244d09 1608
0dee6738
UD
1609 using NIS+ 27.57s 30.37s 640.46s
1610
1611 using NIS+ & nscd 10.25s 7.83s 26.51s
1612
1613 using NIS & old nscd [1] 13.83s 8.32s 29.60s
48244d09 1614
48244d09
UD
1615 Keep in mind that non-namelookup related operations dominate above times.
1616 It was just a common complain that using NIS+ unpacking the kernel is
0dee6738 1617 horribly slow.
48244d09 1618
0dee6738
UD
1619 [1] The old nscd implementation is not available anymore since it was
1620 distributed with glibc up to version 2.0.98 and thus is now replaced.
ea278354
UD
1621
1622* Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
48869012
UD
1623
1624* Mark Kettenis provided a Hesiod NSS module.
20833331
UD
1625
1626* The ELF dynamic loader knows how to process dynamic string tokens ($ORIGIN
1627 and $PLATFORM) in RPATHs and similar strings (Ulrich Drepper).
1628
1629* rcmd can now handle netgroups (Dick Streefland).
48244d09 1630
62595351
UD
1631* A port to the ARM was contributed by Phil Blundell, Pat Beirne and Scott
1632 Bambrough.
1633
1634* Support for the IPv6 protocol has been added to the socket API, as per the
1635 latest draft standards.
1636
1770a20d
UD
1637* Support for Linux 2.2 has been added.
1638
48244d09
UD
1639* Interface changes relative to the latest 2.0.x release:
1640~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
62595351 1641addseverity NEW: Unix98
48244d09 1642alphasort64 NEW: LFS
62595351
UD
1643argp_err_exit_status NEW: argp, GNU ext
1644argp_error NEW: argp, GNU ext
1645argp_failure NEW: argp, GNU ext
1646argp_help NEW: argp, GNU ext
1647argp_parse NEW: argp, GNU ext
1648argp_program_bug_address NEW: argp, GNU ext
1649argp_program_version NEW: argp, GNU ext
1650argp_program_version_hook NEW: argp, GNU ext
1651argp_state_help NEW: argp, GNU ext
1652argp_usage NEW: argp, GNU ext
e980ca92
UD
1653authdes_create NEW: Secure RPC
1654authdes_getucred NEW: Secure RPC
1655authdes_pk_create NEW: Secure RPC
48244d09
UD
1656backtrace NEW: GNU ext.
1657backtrace_symbols NEW: GNU ext.
1658backtrace_symbols_fd NEW: GNU ext.
1659cacos NEW: ISO C 9x
1660cacosf NEW: ISO C 9x
1661cacosh NEW: ISO C 9x
1662cacoshf NEW: ISO C 9x
1663cacoshl NEW: ISO C 9x
1664cacosl NEW: ISO C 9x
1665capget NEW: kernel
1666capset NEW: kernel
1667carg NEW: ISO C 9x
1668cargf NEW: ISO C 9x
1669cargl NEW: ISO C 9x
1670casin NEW: ISO C 9x
1671casinf NEW: ISO C 9x
1672casinh NEW: ISO C 9x
1673casinhf NEW: ISO C 9x
1674casinhl NEW: ISO C 9x
1675casinl NEW: ISO C 9x
1676catan NEW: ISO C 9x
1677catanf NEW: ISO C 9x
1678catanh NEW: ISO C 9x
1679catanhf NEW: ISO C 9x
1680catanhl NEW: ISO C 9x
1681catanl NEW: ISO C 9x
e980ca92 1682cbc_crypt NEW: Secure RPC
48244d09
UD
1683ccos NEW: ISO C 9x
1684ccosf NEW: ISO C 9x
1685ccosh NEW: ISO C 9x
1686ccoshf NEW: ISO C 9x
1687ccoshl NEW: ISO C 9x
1688ccosl NEW: ISO C 9x
1689cexp NEW: ISO C 9x
1690cexpf NEW: ISO C 9x
1691cexpl NEW: ISO C 9x
1692cimag NEW: ISO C 9x
1693cimagf NEW: ISO C 9x
1694cimagl NEW: ISO C 9x
1695clearerr_locked REMOVED
1696clntunix_create NEW: sunrpc ext
1697clog NEW: ISO C 9x
1698clog10 NEW: ISO C 9x
1699clog10f NEW: ISO C 9x
1700clog10l NEW: ISO C 9x
1701clogf NEW: ISO C 9x
1702clogl NEW: ISO C 9x
1703conj NEW: ISO C 9x
1704conjf NEW: ISO C 9x
1705conjl NEW: ISO C 9x
1706cpow NEW: ISO C 9x
1707cpowf NEW: ISO C 9x
1708cpowl NEW: ISO C 9x
1709cproj NEW: ISO C 9x
1710cprojf NEW: ISO C 9x
1711cprojl NEW: ISO C 9x
1712creal NEW: ISO C 9x
1713crealf NEW: ISO C 9x
1714creall NEW: ISO C 9x
1715creat64 NEW: LFS
1716csin NEW: ISO C 9x
1717csinf NEW: ISO C 9x
1718csinh NEW: ISO C 9x
1719csinhf NEW: ISO C 9x
1720csinhl NEW: ISO C 9x
1721csinl NEW: ISO C 9x
1722csqrt NEW: ISO C 9x
1723csqrtf NEW: ISO C 9x
1724csqrtl NEW: ISO C 9x
1725ctan NEW: ISO C 9x
1726ctanf NEW: ISO C 9x
1727ctanh NEW: ISO C 9x
1728ctanhf NEW: ISO C 9x
1729ctanhl NEW: ISO C 9x
1730ctanl NEW: ISO C 9x
e980ca92
UD
1731des_setparity NEW: Secure RPC
1732ecb_crypt NEW: Secure RPC
62595351 1733endutxent NEW: Unix98
48244d09
UD
1734exp10 NEW: ISO C 9x
1735exp10f NEW: ISO C 9x
1736exp10l NEW: ISO C 9x
1737exp2 NEW: ISO C 9x
1738exp2f NEW: ISO C 9x
1739exp2l NEW: ISO C 9x
1740fattach NEW: STREAMS
1741fdetach NEW: STREAMS
1742fdim NEW: ISO C 9x
1743fdimf NEW: ISO C 9x
1744fdiml NEW: ISO C 9x
1745feclearexcept NEW: ISO C 9x
1746fegetenv NEW: ISO C 9x
1747fegetexceptflag NEW: ISO C 9x
1748fegetround NEW: ISO C 9x
1749feholdexcept NEW: ISO C 9x
1750feof_locked REMOVED
1751feraiseexcept NEW: ISO C 9x
1752ferror_locked REMOVED
1753fesetenv NEW: ISO C 9x
1754fesetexceptflag NEW: ISO C 9x
1755fesetround NEW: ISO C 9x
1756fetestexcept NEW: ISO C 9x
1757feupdateenv NEW: ISO C 9x
1758fflush_locked REMOVED
1759ffsl NEW: GNU ext.
1760ffsll NEW: GNU ext.
1761fgetpos64 NEW: LFS
1762fgets_unlocked NEW: GNU ext.
1763fileno_locked REMOVED
1764fma NEW: ISO C 9x
1765fmaf NEW: ISO C 9x
1766fmal NEW: ISO C 9x
1767fmax NEW: ISO C 9x
1768fmaxf NEW: ISO C 9x
1769fmaxl NEW: ISO C 9x
1770fmin NEW: ISO C 9x
1771fminf NEW: ISO C 9x
1772fminl NEW: ISO C 9x
62595351 1773fmtmsg NEW: Unix98
48244d09
UD
1774fopen64 NEW: LFS
1775fputc_locked REMOVED
1776fputs_unlocked NEW: GNU ext.
1777fread_unlocked NEW: GNU ext.
1778freopen64 NEW: LFS
1779fseeko NEW: Unix98
1780fsetpos64 NEW: LFS
1781fstatfs64 NEW: LFS
1782fstatvfs NEW: Unix98
1783fstatvfs64 NEW: LFS
1784ftello NEW: Unix98
1785ftello64 NEW: LFS
1786ftruncate64 NEW: LFS
1787ftw64 NEW: LFS
1788fwrite_unlocked NEW: GNU ext.
1789gai_strerror NEW: IPv6
1790gamma_r REMOVED
1791gammaf_r REMOVED
1792gammal_r REMOVED
1793getchar_locked REMOVED
1794getdate NEW: Unix98
1795getdate_err NEW: Unix98
1796getdate_r NEW: GNU ext.
1797getmsg NEW: STREAMS
1798getnameinfo NEW: IPv6
e980ca92 1799getnetname NEW: Secure RPC
48244d09
UD
1800getpmsg NEW: STREAMS
1801getpt NEW: Unix98 PTY
1802getrlimit64 NEW: LFS
62595351
UD
1803getutxent NEW: Unix98
1804getutxid NEW: Unix98
1805getutxline NEW: Unix98
48244d09
UD
1806glob64 NEW: GNU ext.
1807globfree64 NEW: GNU ext.
1808gnu_get_libc_release NEW: GNU ext.
1809gnu_get_libc_version NEW: GNU ext.
1810grantpt NEW: Unix98 PTY
e980ca92 1811host2netname NEW: Secure RPC
48244d09
UD
1812iconv NEW: iconv
1813iconv_close NEW: iconv
1814iconv_open NEW: iconv
1815if_freenameindex NEW: IPv6
1816if_indextoname NEW: IPv6
1817if_nameindex NEW: IPv6
1818if_nametoindex NEW: IPv6
1819in6addr_any NEW: IPv6
1820in6addr_loopback NEW: IPv6
1821inet6_isipv4mapped NEW: IPv6
1822isastream NEW: STREAMS
1823iswblank NEW: GNU ext.
e980ca92
UD
1824key_decryptsession NEW: Secure RPC
1825key_decryptsession_pk NEW: Secure RPC
1826key_encryptsession NEW: Secure RPC
1827key_encryptsession_pk NEW: Secure RPC
1828key_gendes NEW: Secure RPC
1829key_get_conv NEW: Secure RPC
1830key_secretkey_is_set NEW: Secure RPC
1831key_setnet NEW: Secure RPC
1832key_setsecret NEW: Secure RPC
48244d09
UD
1833llrint NEW: ISO C 9x
1834llrintf NEW: ISO C 9x
1835llrintl NEW: ISO C 9x
1836llround NEW: ISO C 9x
1837llroundf NEW: ISO C 9x
1838llroundl NEW: ISO C 9x
1839log2 NEW: ISO C 9x
1840log2f NEW: ISO C 9x
1841log2l NEW: ISO C 9x
1842lrint NEW: ISO C 9x
1843lrintf NEW: ISO C 9x
1844lrintl NEW: ISO C 9x
1845lround NEW: ISO C 9x
1846lroundf NEW: ISO C 9x
1847lroundl NEW: ISO C 9x
1848lseek64 NEW: LFS
1849makecontext NEW: Unix98
1850mempcpy NEW: GNU ext.
1851mmap64 NEW: LFS
1852moncontrol REMOVED
1853modify_ldt NEW: kernel
1854nan NEW: ISO C 9x
1855nanf NEW: ISO C 9x
1856nanl NEW: ISO C 9x
1857nearbyint NEW: ISO C 9x
1858nearbyintf NEW: ISO C 9x
1859nearbyintl NEW: ISO C 9x
e980ca92
UD
1860netname2host NEW: Secure RPC
1861netname2user NEW: Secure RPC
42bd0a85
UD
1862nexttoward NEW: ISO C 9x
1863nexttowardf NEW: ISO C 9x
1864nexttowardl NEW: ISO C 9x
48244d09
UD
1865nftw NEW: Unix98
1866nftw64 NEW: LFS
1867open64 NEW: LFS
e980ca92 1868passwd2des NEW: Secure RPC
48244d09
UD
1869pow10 NEW: GNU ext.
1870pow10f NEW: GNU ext.
1871pow10l NEW: GNU ext.
1872pread NEW: Unix98
1873pread64 NEW: LFS
1874printf_size NEW: GNU ext.
1875printf_size_info NEW: GNU ext.
1876profil_counter REMOVED
1877pthread_mutexattr_getkind_np REPLACED
1878pthread_mutexattr_setkind_np REPLACED
1879ptsname NEW: Unix98 PTY
1880ptsname_r NEW: Unix98 PTY
1881putc_locked REMOVED
1882putchar_locked REMOVED
1883putgrent NEW: GNU ext.
1884putmsg NEW: STREAMS
1885putpmsg NEW: STREAMS
62595351 1886pututxline NEW: Unix98
48244d09
UD
1887pwrite NEW: Unix98
1888pwrite64 NEW: LFS
1889readdir64 NEW: LFS
1890readdir64_r NEW: LFS
1891remquo NEW: ISO C 9x
1892remquof NEW: ISO C 9x
1893remquol NEW: ISO C 9x
1894round NEW: ISO C 9x
1895roundf NEW: ISO C 9x
1896roundl NEW: ISO C 9x
1897rtime NEW: GNU ext.
1898scalbln NEW: ISO C 9x
1899scalblnf NEW: ISO C 9x
1900scalblnl NEW: ISO C 9x
1901scandir64 NEW: LFS
1902sendfile NEW: kernel
1903setcontext NEW: Unix98
1904setrlimit64 NEW: LFS
62595351 1905setutxent NEW: Unix98
48244d09
UD
1906sighold NEW: Unix98
1907sigignore NEW: Unix98
1908sigqueue NEW: POSIX.1b
1909sigrelse NEW: Unix98
1910sigset NEW: POSIX.1b
1911sigtimedwait NEW: POSIX.1b
1912sigwaitinfo NEW: POSIX.1b
1913sincos NEW: GNU ext.
1914sincosf NEW: GNU ext.
1915sincosl NEW: GNU ext.
1916statfs64 NEW: LFS
1917statvfs NEW: Unix98
1918statvfs64 NEW: LFS
1919strcasestr NEW: GNU ext.
48244d09
UD
1920strtoimax NEW: ISO C 9x
1921strtoumax NEW: ISO C 9x
1922strverscmp NEW: GNU ext.
e980ca92 1923svcauthdes_stats NEW: Secure RPC
48244d09
UD
1924svcunix_create NEW: sunrpc etx
1925svcunixfd_create NEW: sunrpc ext
1926swapcontext NEW: Unix98
1927tcgetsid NEW: Unix98 PTY
1928tdestroy NEW: GNU ext.
1929tgamma NEW: ISO C 9x
1930tgammaf NEW: ISO C 9x
1931tgammal NEW: ISO C 9x
1932tmpfile64 NEW: LFS
1933trunc NEW: ISO C 9x
1934truncate64 NEW: LFS
1935truncf NEW: ISO C 9x
1936truncl NEW: ISO C 9x
1937umount2 NEW: kernel
1938unlockpt NEW: Unix98 PTY
62595351 1939updwtmpx NEW: Unix98
e980ca92 1940user2netname NEW: Secure RPC
62595351 1941utmpxname NEW: Unix98
48244d09 1942versionsort NEW: GNU ext.
3ef4002b 1943versionsort64 NEW: GNU ext.
48244d09
UD
1944waitid NEW: Unix98
1945wcscasecmp NEW: GNU ext.
1946wcsncasecmp NEW: GNU ext.
1947wcsnlen NEW: GNU ext.
1948wcstoimax NEW: ISO C 9x
1949wcstoll NEW: ISO C 9x
1950wcstoull NEW: ISO C 9x
1951wcstoumax NEW: ISO C 9x
1952wcswcs NEW: Unix98
1953wordexp NEW: POSIX.2
1954wordfree NEW: POSIX.2
1955write_profiling REMOVED
e980ca92
UD
1956xdecrypt NEW: Secure RPC
1957xdr_authdes_cred NEW: Secure RPC
1958xdr_authdes_verf NEW: Secure RPC
1959xdr_cryptkeyarg NEW: Secure RPC
1960xdr_cryptkeyarg2 NEW: Secure RPC
1961xdr_cryptkeyres NEW: Secure RPC
1962xdr_getcredres NEW: Secure RPC
1963xdr_key_netstarg NEW: Secure RPC
1964xdr_key_netstres NEW: Secure RPC
1965xdr_keybuf NEW: Secure RPC
1966xdr_keystatus NEW: Secure RPC
1967xdr_netnamestr NEW: Secure RPC
1968xdr_sizeof NEW: Secure RPC
48244d09 1969xdr_unixcred NEW: sunrpc ext
e980ca92 1970xencrypt NEW: Secure RPC
48244d09 1971~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1770a20d
UD
1972\f
1973Version 2.0.6
1974
1975* more bug fixes
1976
a5a0310d
UD
1977\f
1978Version 2.0.5
1979
1980* more bug fixes
1981
1982* inet_ntoa is thread-safe
1983
1984* updwtmp is moved from libutil to libc
1985
1986* rewrite of cbrt function
1987
1988* update of timezone data
1989\f
1990Version 2.0.4
1991
1992* more bug fixes
1993\f
1994Version 2.0.3
1995
1996* more bug fixes
c84142e8 1997\f
795fbc9a
UD
1998Version 2.0.2
1999
2000* more bug fixes
2001
2002* add atoll function
2003
2004* fix complex problems in Berkeley DB code
e61abf83
UD
2005
2006* fix math functions
795fbc9a
UD
2007\f
2008Version 2.0.1
2009
2010* fixed lots of header problems (especially Linux/GNU specific)
2011
2012* dynamic loader preserves all registers
2013
2014* Roland McGrath provided support for handling of auxiliary objects in
2015 the ELF dynamic loader.
2016
2017* support for parallel builds is improved
2018\f
40a4b79f 2019Version 2.0
28f540f4 2020
d3669add
RM
2021* GNU extensions are no longer declared by default. To enable them you
2022 must define the macro `_GNU_SOURCE' in your program or compile with
2023 `-D_GNU_SOURCE'.
2024
28f540f4
RM
2025* The library has changed from using GNU ld symbol aliases to using weak
2026 symbols where available. The ELF object file format supports weak
2027 symbols; GNU ld also supports weak symbols in the a.out format. (There
2028 is also now support for other GNU ld extensions in ELF. Use the
787126fe
RM
2029 `--with-elf' option to configure to indicate you have ELF, and
2030 `--with-gnu-ld' if using GNU ld.) This change resulted in the deletion
28f540f4
RM
2031 of many files which contained only symbol aliases, reducing the size of
2032 the source and the compiled library; many other files were renamed to
2033 less cryptic names previously occupied by the symbol alias files.
dcf0671d
UD
2034 There is a new header file <elf.h> for programs which operate on
2035 files in the ELF format.
49e522bf
RM
2036
2037* Converted to Autoconf version 2, so `configure' has more options.
2038 Run `configure --help' to see the details.
2039
2040* The library can now be configured to build profiling, highly-optimized
b25c5d66
RM
2041 (but undebuggable), and/or shared libraries (ELF with GNU ld only). The
2042 `--enable-profile', `--enable-omitfp', and `--enable-shared' options to
2043 `configure' enable building these extra libraries. The shared library is
2044 built by default when using both ELF and GNU ld. When shared libraries
2045 are enabled, the new library `-ldl' is available for arbitrary run-time
2046 loading of shared objects; its interface is defined in <dlfcn.h>. The
2047 new header file <link.h> gives access to the internals of the run-time
33a934a3
UD
2048 dynamic linker, `ld.so'. The shell script `ldd' is similar to the
2049 application of same name on other systems and it provides information
2050 about dynamically linked binaries.
49e522bf 2051
71733723
RM
2052* The C library now provides the run-time support code for profiling
2053 executables compiled with `-pg'. Programs can control the profiling code
d3669add
RM
2054 through the interface in <sys/gmon.h>. The `gmon.out' files written by
2055 the GNU C library can be read only by GNU `gprof' (from GNU binutils);
2056 the support for this file format was contributed by David Mosberger-Tang.
71733723 2057
f7eac6eb 2058* The math code has been replaced with a math library based on fdlibm from
33a934a3
UD
2059 Sun, and modified by JT Conklin and Ulrich Drepper with i387 support, by
2060 Ian Taylor with `float' functions and by Ulrich Drepper with `long double'
2061 functions. The math functions now reside in a separate library, so
2062 programs using them will need to use `-lm' their linking commands.
2063
2064* John C. Bowman contributed optimized ix87 assembler inline functions.
f7eac6eb 2065
5f0e6fc7
RM
2066* Ulrich Drepper has contributed support for an `/etc/nsswitch.conf'
2067 mechanism similar to that found in Solaris 2. This is now used for the
33a934a3
UD
2068 group, passwd, hosts, networks, services, protocols, rpc, ethers,
2069 shadow, netgroup, publickey, and alias databases. The `nsswitch.conf'
2070 file controls what services are used for each individual database. This
2071 works by loading shared libraries with names specified in `nsswitch.conf',
2072 so service modules can be changed or added at any time without even
2073 relinking any program. Currently there are the file, db, and NIS based
2074 NSS services available.
5f0e6fc7 2075
49e522bf
RM
2076* The new functions `strtoq' and `strtouq' parse integer values from
2077 strings, like `strtol' and `strtoul', but they return `long long int' and
2078 `unsigned long long int' values, respectively (64-bit quantities).
2079
2080* The new functions `strtof' and `strtold' parse floating-point values from
2081 strings, like `strtod', but they return `float' and `long double' values,
2082 respectively (on some machines `double' and `long double' are the same).
2083
2084* Ulrich Drepper has contributed new implementations of the floating-point
2085 printing and reading code used in the `printf' family of functions and
2086 `strtod', `strtof', and `strtold'. These new functions are perfectly
2087 accurate, and much faster than the old ones.
2088
33a934a3
UD
2089* The implementation of the POSIX locale model was completely rewritten by
2090 Ulrich Drepper. This includes the new programs `localedef' and `locale'
2091 to compile the POSIX locale definition.
2092
2093* The former dummy implementations of the strcoll and strxfrm function are
2094 now replaced by fully functional code contributed by Ulrich Drepper. The
2095 collation information comes from the POSIX locale definitions.
2096
49e522bf
RM
2097* The new header <langinfo.h> defines an interface for accessing
2098 various locale-dependent data (using the locale chosen with `setlocale').
2099
f7eac6eb 2100* Ulrich Drepper has contributed a new suite of functions for operation on
33a934a3 2101 wide-character and multibyte-character strings, in <wchar.h>;
b7407d63 2102 and classification and case conversion of wide characters, in <wctype.h>.
33a934a3
UD
2103 These new functions are conforming to the ISO C, Amendement 1 specification.
2104
2105* There is now a second implementation of the standard I/O library available.
2106 It comes from GNU libg++ as was written by Per Bothner, heavily modified
2107 by Hongjiu Lu and made thread safe by Ulrich Drepper.
f7eac6eb 2108
71733723 2109* You can now use positional parameter specifications in format strings
49e522bf
RM
2110 for the `printf' and `scanf' families of functions. For example,
2111 `printf ("Number %2$d, Mr %1$s\n", "Jones", 6);'' prints
2112 ``Number 6, Mr Jones''. This is mainly useful when providing different
d365fd2c
RM
2113 format strings for different languages, whose grammars may dictate
2114 different orderings of the values being printed. To support this
49e522bf 2115 feature, the interface for `register_printf_handler' has changed; see
d365fd2c 2116 the header file <printf.h> for details.
49e522bf
RM
2117
2118* The `printf' and `scanf' families of functions now understand a new
2119 formatting flag for numeric conversions: the ' flag (e.g. %'d or %'f) says
2120 to group numbers as indicated by the locale; for `scanf' and friends, this
2121 says to accept as valid only a number with all the proper grouping
2122 separators in the right places. In the default "C" locale, numbers are
2123 not grouped; but locales for specific countries will define the usual
2124 conventions (i.e. separate thousands with `,' in the US locale).
28f540f4
RM
2125
2126* The pgrp functions have been regularized, slightly incompatibly but much
2127 less confusingly. The core functions are now `getpgid' and `setpgid',
2128 which take arguments for the PID to operate on; the POSIX.1 `getpgrp' (no
2129 argument) and BSD `setpgrp' (identical to `setpgid') functions are
2130 provided for compatibility. There is no longer an incompatible `getpgrp'
2131 with an argument declared under _BSD_SOURCE; no BSD code uses it.
2132
2133* The new header file <fts.h> and suite of functions simplify programs that
2134 operate on directory trees. This code comes from 4.4 BSD.
2135
33a934a3
UD
2136* The resolver code has been updated from the BIND 4.9.5-P1 release.
2137 Parts of the code were heavily modified by Ulrich Drepper to fit in the
2138 NSS scheme used in glibc.
28f540f4 2139
28f540f4
RM
2140* There is a new malloc debugging hook `__memalign_hook'.
2141
2142* There are new typedefs `ushort' for `unsigned short int' and `uint' for
2143 `unsigned int' in <sys/types.h>. These are for compatibility only and
2144 their use is discouraged.
2145
2146* The `-lmcheck' library to enable standard malloc debugging hooks is now
2147 done differently, so that it works even without GNU ld.
787126fe 2148
22a1292a
RM
2149* New function `euidaccess' checks allowed access to a file like `access',
2150 but using the effective IDs instead of the real IDs.
49e522bf
RM
2151
2152* The time zone data files have been updated for the latest and greatest
2153 local time conventions of the countries of the world.
2154
2155* The new function `dirfd' extracts the file descriptor used by a DIR stream;
2156 see <dirent.h>.
2157
2158* The new functions `ecvt', `fcvt', and `gcvt' provide an obsolete interface
2159 for formatting floating-point numbers. They are provided only for
33a934a3
UD
2160 compatibility; new programs should use `sprintf' instead. There are
2161 also equivalent function for the `long double' floating-point type and
2162 all functions also exist in a reentrant form.
342414a6
RM
2163
2164* The new auxiliary library `-lutil' from 4.4 BSD contains various
2165 functions for maintaining the login-record files (primarily of use to
2166 system programs such as `login'), and convenient functions for
2167 allocating and initializing a pseudo-terminal (pty) device.
c709e372
RM
2168
2169* Ulrich Drepper has contributed new support for System V style
2170 shared memory and IPC on systems that support it.
2171
2172* Ulrich Drepper has contributed several miscellaneous new functions found
2173 in System V: The `hsearch' family of functions provide an effective
2174 implementation of hash tables; `a64l' and `l64a' provide a very simple
2175 binary to ASCII mapping; `drand48' and friends provide a 48-bit random
2176 number generator.
2177
2178* Ulrich Drepper has contributed new reentrant counterparts for the
2179 `random' and `hsearch' families of functions; `random_r', `hsearch_r', etc.
2180
2181* Ulrich Drepper has contributed new, highly-optimized versions of several
2182 string functions for the i486/Pentium family of processors.
2183
71733723 2184* Ulrich Drepper has updated the Linux-specific code, based largely
c709e372 2185 on work done in Hongjiu Lu's version of GNU libc for Linux.
33a934a3
UD
2186 The GNU library now supports Linux versions 2.0.10 and later,
2187 using the ELF object file format (i[3456]86-*-linux).
c709e372 2188
d3669add
RM
2189* Andreas Schwab has ported the C library to Linux/m68k (m68k-*-linux).
2190
33a934a3
UD
2191* David Mosberger-Tang and Richard Henderson have ported the C library
2192 to Linux/Alpha (alpha-*-linux). Richard Henderson contributed the
2193 dynamic linking support for ELF/Alpha.
2194
2195* Richard Henderson contributed several Alpha optimized assembler function
2196 for arithmetic and string handling.
d3669add 2197
c709e372 2198* Ulrich Drepper has contributed a new set of message catalog functions to
40a4b79f
RM
2199 support multiple languages using the <libintl.h> interface, for use with
2200 his new package GNU gettext. Translation volunteers have contributed
2201 catalogs of the library's messages in Spanish, German, and Korean.
2202
2203* For compatibility with XPG4, Ulrich Drepper has contributed the `gencat'
2204 program and the `catgets' function for reading the catalog files it
2205 creates. (The <libintl.h> interface is preferred; we include the
2206 <nl_types.h> interface using `catgets' only for source compatibility with
2207 programs already written to use it.)
71733723
RM
2208
2209* New header file <values.h> gives SVID-compatible names for <limits.h>
2210 constants.
2211
2212* Various new macros, declarations, and small header files for compatibility
2213 with 4.4 BSD.
2214
2215* New function `group_member' is a convenient way to check if a process has
2216 a given effective group ID.
2217
2218* When using GCC 2.7 and later, the socket functions are now declared in a
2219 special way so that passing an argument of type `struct sockaddr_in *',
2220 `struct sockaddr_ns *', or `struct sockaddr_un *' instead of the generic
2221 `struct sockaddr *' type, does not generate a type-clash warning.
2222
2223* New function `error' declared in header file <error.h> is a convenient
6d52618b 2224 function for printing error messages and optionally exiting; this is the
71733723
RM
2225 canonical function used in GNU programs. The new functions `err', `warn',
2226 and friends in header file <err.h> are the canonical 4.4 BSD interface for
2227 doing the same thing.
2228
2229* The <glob.h> interface has several new flags from 4.4 BSD that extend the
2230 POSIX.2 `glob' function to do ~ and {...} expansion.
2231
2232* New function `unsetenv' complements `setenv' for compatibility with 4.4 BSD.
33a934a3 2233 `clearenv' which is used in POSIX.9 is also available.
71733723
RM
2234
2235* New function `getsid' returns session ID number on systems that support it.
2236
f7eac6eb
RM
2237* We have incorporated the 4.4 BSD `db' library (version 1.85). New header
2238 files <db.h> and <mpool.h> provide a rich set of functions for several
2239 types of simple databases stored in memory and in files, and <ndbm.h> is
6d52618b 2240 an old `ndbm'-compatible interface using the `db' functions. Link with
999493cb 2241 `-ldb' to get these functions.
f7eac6eb
RM
2242
2243* New macro `strdupa' copies a string like `strdup', but uses local stack
2244 space from `alloca' instead of dynamic heap space from `malloc'.
52e9a9d1
RM
2245
2246* New function `strnlen' is like `strlen' but searches only a given maximum
33a934a3
UD
2247 number of characters for the null terminator. `stpncpy', `strndup' and
2248 `strndupa' are similar variants for the `stpcpy', `strdup' and `strdupa'
2249 function.
40a4b79f
RM
2250
2251* New function `statfs' in header <sys/statfs.h>.
2252
2253* The new <argz.h> and <envz.h> interfaces contributed by Miles Bader
2254 provide convenient functions for operating on blocks of null-terminated
2255 strings.
2256
2257* A new suite of functions in <utmp.h> handle all the details of reading
2258 and writing the utmp file.
33a934a3
UD
2259
2260* An implementation of the NIS/YP(tm) based NSS service was contributed by
2261 Thorsten Kukuk.
2262
2263* Paul Eggert and Ulrich Drepper modified the `strftime' function to be
2264 completely POSIX compliant and also implemented the extended functionality
2265 to handle alternate digit representation and alternate era date formats.
2266
2267* Ulrich Drepper provided an implementation of the `strptime' function
2268 defined in XPG4.2 which transforms a string into a `struct tm' value.
2269
2270* Paul Eggert provided the tzselect shell script as part of the timezone
2271 code. The shell script makes it easy to select the correct timezone
2272 specification.
2273
2274* The implementation of the malloc family of functions is completely replaced
2275 by a new implementation by Doug Lea with many improvements by Wolfram Gloger.
2276 The implementation uses the mmap function (if available) and it is
2277 optimized for the use in multi threaded programs.
2278
2279* Ulrich Drepper contributed a MD5 "encryption" for the crypt family of
2280 functions. This new functionality is usable by specifying a special
2281 salt string and it is compatible with implementation on *BSD systems.
2282
2283* Lots of functions from the XPG4.2 standard were added by Ulrich Drepper:
2284 `getsubopt' to handle second level command line options, `bsd_signal'
2285 to access BSD style `signal' functionality, the obsolete `regexp' style
2286 expression matcher.
2287
2288* the `lchown' function is available on system which support this
2289 functionality.
2290
2291* The implementation of the shadow password handling function was contributed
2292 by Ulrich Drepper.
2293
2294* David Mosberger-Tang changed the SunRPC implementation to be 64bit safe.
2295
2296* POSIX.1g support was added. The <sys/select.h> header is available,
2297 `isfdtype' and `pselect' are implemented. Craig Metz contributed an
2298 implementation of `getaddrinfo'.
28f540f4
RM
2299\f
2300Version 1.09
2301
2302* For cross-compilation you should now set `BUILD_CC' instead of `HOST_CC'.
2303
2304* New header file <fstab.h> and new functions `getfsspec', `getfsent' and
2305 friends, for parsing /etc/fstab. This code comes from 4.4 BSD.
2306
2307* The new function `daemon' from 4.4 BSD is useful for server programs that
2308 want to put themselves in the background.
2309
2310* Joel Sherrill has contributed support for several standalone boards that
2311 run without an operating system.
2312
2313* `printf', `scanf' and friends now accept a `q' type modifier for long
2314 long int as well as `ll'. Formats using these might be `%qu' or `%lld'.
2315
2316* All of the code taken from BSD (notably most of the math and networking
2317 routines) has been updated from the BSD 4.4-Lite release.
2318
2319* The resolver code has been updated from the BIND-4.9.3-BETA9 release.
2320
2321* The new functions `getdomainname' and `setdomainname' fetch or change the
2322 YP/NIS domain name. These are system calls which exist on systems which
2323 have YP (aka NIS).
2324
2325* The time zone data files have been updated for the latest international
2326 conventions.
2327
2328* The SunRPC programs `portmap' and `rpcinfo' are now installed in
2329 $(sbindir) (usually /usr/local/sbin) instead of $(bindir).
2330\f
2331Version 1.08
2332
2333* The C library now includes support for Sun RPC, from Sun's free
2334 RPCSRC-4.0 distribution. The `portmap', `rpcinfo', and `rpcgen' programs
2335 are included. (There is still no support for YP.)
2336
2337* Tom Quinn has contributed a port of the C library to SGI machines running
2338 Irix 4 (mips-sgi-irix4).
2339
2340* The new `lockf' function is a simplified interface to the locking
2341 facilities of `fcntl', included for compatibility.
2342
2343* New time functions `timegm', `timelocal', and `dysize' for compatibility.
2344
2345* New header file <sys/timeb.h> and new function `ftime' for compatibility.
2346
2347* New header files <poll.h> and <sys/poll.h> and new function `poll' for
2348 compatibility.
2349
2350* The error message printed by `assert' for a failed assertion now includes
2351 the name of the program (if using GNU ld) and the name of the calling
2352 function (with versions of GCC that support this).
2353
2354* The `psignal' function is now declared in <signal.h>, not <stdio.h>.
2355
2356* The library now includes the <sys/mman.h> header file and memory
2357 management functions `mmap', `munmap', `mprotect', `msync', and
2358 `madvise', on systems that support those facilities.
2359
2360* The interface for `mcheck' has changed slightly: the function called to
2361 abort the program when an allocation inconsistency is detected now takes
2362 an argument that indicates the type of failure. The new function
2363 `mprobe' lets you request a consistency check for a particular block at
2364 any time (checks are normally done only when you call `free' or `realloc'
2365 on a block).
2366
2367* It is now possible to easily cross-compile the C library, building on one
2368 system a library to run on another machine and/or operating system. All
2369 you need to do is set the variable `HOST_CC' in `configparms' to the
2370 native compiler for programs to run on the machine you are building on (a
2371 few generator programs are used on Unix systems); set `CC' to the
2372 cross-compiler.
2373
2374* The new function `fexecve' (only implemented on the GNU system) executes
2375 a program file given a file descriptor already open on the file.
2376\f
2377Version 1.07
2378
2379* Brendan Kehoe has contributed most of a port to the DEC Alpha
2380 running OSF/1 (alpha-dec-osf1). He says it is 75% complete.
2381
2382* You can set the variable `libprefix' in `configparms' to specify a prefix
2383 to be prepended to installed library files; this makes it easy to install
2384 the GNU C library to be linked as `-lgnuc' or whatever.
2385
2386* The new `stpncpy' is a cross between `stpcpy' and `strncpy': It
2387 copies a limited number of characters from a string, and returns the
2388 address of the last character written.
2389
2390* You no longer need to check for whether the installed `stddef.h' is
2391 compatible with the GNU C library. configure now checks for you.
2392
2393* You can now define a per-stream `fileno' function to convert the
2394 stream's cookie into an integral file descriptor.
2395
2396* ``malloc (0)'' no longer returns a null pointer. Instead, it
2397 allocates zero bytes of storage, and returns a unique pointer which
2398 you can pass to `realloc' or `free'. The behavior is undefined if
2399 you dereference this pointer.
2400
2401* The C library now runs on Sony NEWS m68k machines running either
2402 NewsOS 3 or NewsOS 4.
2403
2404* The new `syscall' function is a system-dependent primitive function
2405 for invoking system calls. It has the canonical behavior on Unix
2406 systems, including unreliable return values for some calls (such as
2407 `pipe', `fork' and `getppid').
2408
2409* The error code `EWOULDBLOCK' is now obsolete; it is always defined
2410 to `EAGAIN', which is the preferred name. On systems whose kernels
2411 use two distinct codes, the C library now translates EWOULDBLOCK to
2412 EAGAIN in every system call function.
2413\f
2414Version 1.06
2415
2416* The GNU C Library Reference Manual is now distributed with the library.
2417 `make dvi' will produce a DVI file of the printed manual.
2418 `make info' will produce Info files that you can read on line using C-h i
2419 in Emacs or the `info' program.
ea278354 2420 Please send comments on the manual to bug-glibc-manual@gnu.org.
28f540f4
RM
2421
2422* The library now supports SVR4 on i386s (i386-unknown-sysv4).
2423
2424* Brendan Kehoe has contributed a port to Sun SPARCs running Solaris 2.
2425
2426* Jason Merrill has contributed a port to the Sequent Symmetry running
2427 Dynix version 3 (i386-sequent-dynix).
2428
2429* The library has been ported to i386s running SCO 3.2.4 (also known as SCO
2430 ODT 2.0; i386-unknown-sco3.2.4) or SCO 3.2 (i386-unknown-sco3.2).
2431
2432* New function `memory_warnings' lets you arrange to get warnings when
2433 malloc is running out of memory to allocate, like Emacs gives you.
2434
2435* The C library now contains the relocating allocator used in Emacs 19 for
2436 its editing buffers. This allocator (ralloc) minimizes allocation
2437 overhead and fragmentation by moving allocated regions around whenever it
2438 needs to. You always refer to a ralloc'd region with a "handle" (a
2439 pointer to a pointer--an object of type `void **').
2440
2441* There is a new `printf' format: `%m' gives you the string corresponding
2442 to the error code in `errno'.
2443
2444* In `scanf' formats, you can now use `%as' or `%a[' to do the normal `%s'
2445 or `%[' conversion, but instead of filling in a fixed-sized buffer you
2446 pass, the `a' modifier says to fill in a `char **' you pass with a
2447 malloc'd string.
2448
2449* The `fnmatch' function supports the new flag bits `FNM_LEADING_DIR' and
2450 `FNM_CASEFOLD'. `FNM_LEADING_DIR' lets a pattern like `foo*' match a
2451 name like `foo/bar'. `FNM_CASEFOLD' says to ignore case in matching.
2452
2453* `mkstemp' is a traditional Unix function to atomically create and open a
2454 uniquely-named temporary file.
2455\f
2456Version 1.05
2457
2458* The standard location for the file that says what the local timezone is
2459 has changed again. It is now `/usr/local/etc/localtime' (or more
2460 precisely, `${prefix}/etc/localtime') rather than `/etc/localtime'.
2461
2462* The distribution no longer contains any files with names longer than 14
2463 characters.
2464
2465* `struct ttyent' has two new flag bits: TTY_TRUSTED and TTY_CONSOLE.
2466 These are set by the new `trusted' and `console' keywords in `/etc/ttys'.
2467
2468* New functions `ttyslot' and `syslog' from 4.4 BSD.
2469\f
2470Version 1.04
2471
2472* The configuration process has changed quite a bit. The `configure'
2473 script is now used just like the configuration scripts for other GNU
2474 packages. The `sysdeps' directory hierarchy is much rearranged.
2475 The file `INSTALL' explains the new scheme in detail.
2476
2477* The header files no longer need to be processed into ANSI C and
2478 traditional C versions. There is just one set of files to install, and
2479 it will work with ANSI or old C compilers (including `gcc -traditional').
2480
2481* Brendan Kehoe and Ian Lance Taylor have ported the library to the
2482 MIPS DECStation running Ultrix 4.
2483
2484* The Sun 4 startup code (crt0) can now properly load SunOS 4 shared libraries.
2485 Tom Quinn contributed the initial code. The GNU C library can NOT yet be
2486 made itself into a shared library.
2487
2488* Yet further improved support for the i386, running 4.3 BSD-like systems
2489 (such as Mach 3 with the Unix single-server), or System V.
2490
2491* New function `strncasecmp' to do case-insensitive string comparison
2492 with limited length.
2493
2494* New function `strsep' is a reentrant alternative to `strtok'.
2495
2496* New functions `scandir' and `alphasort' for searching directories.
2497
2498* New function `setenv' is a better interface to `putenv'.
2499
2500* Ian Lance Taylor has contributed an implementation of the SVID `ftw'
2501 function for traversing a directory tree.
2502
2503* The GNU obstack package is now also part of the C library.
2504 The new function `open_obstack_stream' creates a stdio stream that
2505 writes onto an obstack; `obstack_printf' and `obstack_vprintf' do
2506 formatted output directly to an obstack.
2507
2508* Miscellaneous new functions: reboot, nice, sigaltstack (4.4 BSD only),
2509 cfmakeraw, getusershell, getpass, swab, getttyent, seteuid, setegid.
2510
2511* `FNM_FILE_NAME' is another name for `FNM_PATHNAME', used with `fnmatch'.
2512
2513* The new functions `strfry' and `memfrob' do mysterious and wonderful
2514 things to your strings.
2515
2516* There are some new test programs: test-fseek, testmb, and testrand.
2517
2518* Some work has been done to begin porting the library to 4.4 BSD and Linux.
2519 These ports are not finished, but are a good starting place for really
2520 supporting those systems.
2521
2522* `/etc/localtime' is now the standard location for the file that says what
2523 the local timezone is, rather than `/usr/local/lib/zoneinfo/localtime'.
2524 This follows the general principle that `/etc' is the place for all local
2525 configuration files.
2526
2527* The C library header files now use `extern "C"' when used by the C++
2528 compiler, so the C library should now work with C++ code.
2529
2530* The header file <bstring.h> is gone. <string.h> now declares bcopy,
56ddf355
UD
2531 bcmp, bzero, and ffs. (Update: nowadays these functions are declared
2532 in <strings.h>.)
28f540f4
RM
2533
2534* Mike Haertel (of GNU e?grep and malloc fame) has written a new sorting
2535 function which uses the `merge sort' algorithm, and is said to be
2536 significantly faster than the old GNU `qsort' function. Merge sort is
2537 now the standard `qsort' function. The new algorithm can require a lot
2538 of temporary storage; so, the old sorting function is called when the
2539 required storage is not available.
2540
2541* The C library now includes Michael Glad's Ultra Fast Crypt, which
2542 provides the Unix `crypt' function, plus some other entry points.
28f540f4
RM
2543
2544* The code and header files taken from 4.4 BSD have been updated with the
2545 latest files released from Berkeley.
2546\f
2547----------------------------------------------------------------------
2548Copyright information:
2549
88726d48 2550Copyright (C) 1992-2014 Free Software Foundation, Inc.
28f540f4
RM
2551
2552 Permission is granted to anyone to make or distribute verbatim copies
2553 of this document as received, in any medium, provided that the
2554 copyright notice and this permission notice are preserved,
2555 thus giving the recipient permission to redistribute in turn.
2556
2557 Permission is granted to distribute modified versions
2558 of this document, or of portions of it,
2559 under the above conditions, provided also that they
2560 carry prominent notices stating who last changed them.
2561\f
2562Local variables:
2563version-control: never
1086d70d 2564fill-column: 76
557a9213 2565End: