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