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