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