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