source: clfs-sysroot/patches/glibc-2.5-branch_update-1.patch@ 820590f

Last change on this file since 820590f was 5ed871a, checked in by Joe Ciccone <jciccone@…>, 18 years ago

Added the Glibc branch_update patch.

  • Property mode set to 100644
File size: 18.0 KB
RevLine 
[5ed871a]1Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes)
2Date: 2006-12-03
3Initial Package Version: 2.5
4Upstream Status: From Upstream
5Origin: Robert Connolly (Concept)
6 cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc \
7 co -rglibc-2_5-branch libc
8Description: This is a branch update for Glibc-2.5, and should be
9rechecked periodically. See the "Changelog" and "localedata/ChangeLog"
10for specific details.
11
12diff -Naur glibc-2.5/ChangeLog libc/ChangeLog
13--- glibc-2.5/ChangeLog 2006-09-29 11:45:39.000000000 -0700
14+++ libc/ChangeLog 2006-10-06 08:39:29.000000000 -0700
15@@ -1,5 +1,62 @@
16+2006-10-06 Andreas Jaeger <aj@suse.de>
17+
18+ * include/features.h (__GLIBC_MINOR__): It's glibc 2.5 now.
19+
20+2006-10-06 Ulrich Drepper <drepper@redhat.com>
21+
22+ * po/pl.po: Update from translation team.
23+
24+ * nscd/nscd.c (main): Fix typo in message.
25+ Patch by Jakub Bogsz <qboosh@pld-linux.org>.
26+
27+2006-10-02 Jakub Jelinek <jakub@redhat.com>
28+
29+ [BZ #3291]
30+ * sysdeps/unix/sysv/linux/sparc/sparc64/pause.c: Include
31+ errno.h, signal.h, unistd.h and sysdep-cancel.h.
32+ (__sigprocmask): Define.
33+
34+2006-10-02 Ulrich Drepper <drepper@redhat.com>
35+
36+ * elf/rtld.c (dl_main): Don't use prelinking if LD_DYNAMIC_WEAK is
37+ used.
38+
39+2006-10-02 Jakub Jelinek <jakub@redhat.com>
40+
41+ * nscd/mem.c (mempool_alloc): Round array size to 16 bytes
42+ in oldtotal and newtotal calculation.
43+ * nscd/nscd-client.h (struct mapped_database): Add datasize
44+ field.
45+ * nscd/nscd_helper.c (get_mapping): Initialize datasize field.
46+ (__nscd_get_map_ref): Get a new mapping even if mapping's data_size
47+ increased.
48+ (__nscd_cache_search): Add checks to make sure we never reference
49+ data beyond the current mapping.
50+
51+2006-10-02 Dmitry V. Levin <ldv@altlinux.org>
52+
53+ * sysdeps/posix/getaddrinfo.c (match_prefix): Make mask and val
54+ variables const to avoid compiler warnings.
55+
56+ * io/fts.c (fts_close): Remove redundant checks.
57+ (fts_build): Likewise.
58+ (fts_palloc): Likewise.
59+
60+ * manual/message.texi (Advanced gettext functions,
61+ Using gettextized software): Fix typos.
62+
63+2006-09-30 Ulrich Drepper <drepper@redhat.com>
64+
65+ * posix/glob.c (glob_in_dir): Add some comments and asserts to
66+ explain why there are no leaks.
67+
68 2006-09-29 Ulrich Drepper <drepper@redhat.com>
69
70+ * libio/wmemstream.c: Include <wchar.h>.
71+ * libio/bug-wmemstream1.c: Likewise.
72+ * libio/tst-wmemstream1.c: Likewise.
73+ * libio/tst-wmemstream2.c: Likewise.
74+
75 * version.h (RELEASE): Bump to 2.5.
76 * README: Regenerated.
77
78diff -Naur glibc-2.5/elf/rtld.c libc/elf/rtld.c
79--- glibc-2.5/elf/rtld.c 2006-09-29 09:56:15.000000000 -0700
80+++ libc/elf/rtld.c 2006-10-02 11:24:37.000000000 -0700
81@@ -2087,7 +2087,8 @@
82 }
83
84 if (main_map->l_info[ADDRIDX (DT_GNU_LIBLIST)]
85- && ! __builtin_expect (GLRO(dl_profile) != NULL, 0))
86+ && ! __builtin_expect (GLRO(dl_profile) != NULL, 0)
87+ && ! __builtin_expect (GLRO(dl_dynamic_weak), 0))
88 {
89 ElfW(Lib) *liblist, *liblistend;
90 struct link_map **r_list, **r_listend, *l;
91diff -Naur glibc-2.5/include/features.h libc/include/features.h
92--- glibc-2.5/include/features.h 2006-04-25 13:34:32.000000000 -0700
93+++ libc/include/features.h 2006-10-06 08:38:14.000000000 -0700
94@@ -304,7 +304,7 @@
95 /* Major and minor version number of the GNU C library package. Use
96 these macros to test for features in specific releases. */
97 #define __GLIBC__ 2
98-#define __GLIBC_MINOR__ 4
99+#define __GLIBC_MINOR__ 5
100
101 #define __GLIBC_PREREQ(maj, min) \
102 ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
103diff -Naur glibc-2.5/io/fts.c libc/io/fts.c
104--- glibc-2.5/io/fts.c 2006-04-08 12:33:17.000000000 -0700
105+++ libc/io/fts.c 2006-10-02 09:06:49.000000000 -0700
106@@ -251,8 +251,7 @@
107 /* Free up child linked list, sort array, path buffer. */
108 if (sp->fts_child)
109 fts_lfree(sp->fts_child);
110- if (sp->fts_array)
111- free(sp->fts_array);
112+ free(sp->fts_array);
113 free(sp->fts_path);
114
115 /* Return to original directory, save errno if necessary. */
116@@ -705,8 +704,7 @@
117 * structures already allocated.
118 */
119 mem1: saved_errno = errno;
120- if (p)
121- free(p);
122+ free(p);
123 fts_lfree(head);
124 (void)__closedir(dirp);
125 cur->fts_info = FTS_ERR;
126@@ -1043,10 +1041,7 @@
127 * We limit fts_pathlen to USHRT_MAX to be safe in both cases.
128 */
129 if (sp->fts_pathlen < 0 || sp->fts_pathlen >= USHRT_MAX) {
130- if (sp->fts_path) {
131- free(sp->fts_path);
132- sp->fts_path = NULL;
133- }
134+ free(sp->fts_path);
135 sp->fts_path = NULL;
136 __set_errno (ENAMETOOLONG);
137 return (1);
138diff -Naur glibc-2.5/libio/bug-wmemstream1.c libc/libio/bug-wmemstream1.c
139--- glibc-2.5/libio/bug-wmemstream1.c 2006-08-14 15:11:34.000000000 -0700
140+++ libc/libio/bug-wmemstream1.c 2006-09-29 17:06:33.000000000 -0700
141@@ -1,5 +1,6 @@
142 #include <stdio.h>
143 #include <string.h>
144+#include <wchar.h>
145
146
147 static int
148diff -Naur glibc-2.5/libio/tst-wmemstream1.c libc/libio/tst-wmemstream1.c
149--- glibc-2.5/libio/tst-wmemstream1.c 2006-01-11 18:02:27.000000000 -0800
150+++ libc/libio/tst-wmemstream1.c 2006-09-29 17:06:33.000000000 -0700
151@@ -1,3 +1,5 @@
152+#include <wchar.h>
153+
154 #define CHAR_T wchar_t
155 #define W(o) L##o
156 #define OPEN_MEMSTREAM open_wmemstream
157diff -Naur glibc-2.5/libio/tst-wmemstream2.c libc/libio/tst-wmemstream2.c
158--- glibc-2.5/libio/tst-wmemstream2.c 2006-01-11 18:02:27.000000000 -0800
159+++ libc/libio/tst-wmemstream2.c 2006-09-29 17:06:33.000000000 -0700
160@@ -1,3 +1,5 @@
161+#include <wchar.h>
162+
163 #define CHAR_T wchar_t
164 #define W(o) L##o
165 #define OPEN_MEMSTREAM open_wmemstream
166diff -Naur glibc-2.5/libio/wmemstream.c libc/libio/wmemstream.c
167--- glibc-2.5/libio/wmemstream.c 2006-08-14 15:13:48.000000000 -0700
168+++ libc/libio/wmemstream.c 2006-09-29 17:06:33.000000000 -0700
169@@ -20,6 +20,7 @@
170 #include "strfile.h"
171 #include <stdio.h>
172 #include <stdlib.h>
173+#include <wchar.h>
174
175
176 struct _IO_FILE_wmemstream
177diff -Naur glibc-2.5/localedata/ChangeLog libc/localedata/ChangeLog
178--- glibc-2.5/localedata/ChangeLog 2006-09-29 11:30:52.000000000 -0700
179+++ libc/localedata/ChangeLog 2006-10-06 08:36:50.000000000 -0700
180@@ -1,3 +1,16 @@
181+2006-10-05 Dmitry V. Levin <ldv@altlinux.org>
182+
183+ * locales/tt_RU: Fix territory, title and descriptive comment.
184+
185+2006-10-05 Ulrich Drepper <drepper@redhat.com>
186+
187+ * locales/pa_IN (abday): Fix spelling of Sunday.
188+ Patch by Mayank Jain <majain@redhat.com>.
189+
190+2006-10-01 Ulrich Drepper <drepper@redhat.com>
191+
192+ * locales/en_GB: Use more complete en_US data in LC_NAME.
193+
194 2006-09-29 Ulrich Drepper <drepper@redhat.com>
195
196 [BZ #39]
197diff -Naur glibc-2.5/localedata/locales/en_GB libc/localedata/locales/en_GB
198--- glibc-2.5/localedata/locales/en_GB 2006-07-30 15:19:44.000000000 -0700
199+++ libc/localedata/locales/en_GB 2006-10-01 09:18:33.000000000 -0700
200@@ -146,8 +146,7 @@
201 END LC_MEASUREMENT
202
203 LC_NAME
204-name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
205-<U0025><U006D><U0025><U0074><U0025><U0066>"
206+copy "en_US"
207 END LC_NAME
208
209 LC_ADDRESS
210diff -Naur glibc-2.5/localedata/locales/pa_IN libc/localedata/locales/pa_IN
211--- glibc-2.5/localedata/locales/pa_IN 2006-08-12 22:47:24.000000000 -0700
212+++ libc/localedata/locales/pa_IN 2006-10-05 09:54:26.000000000 -0700
213@@ -80,7 +80,7 @@
214 "<U0A2C><U0A41><U0A71><U0A27><U0020>";/
215 "<U0A35><U0A40><U0A30><U0020>";/
216 "<U0A36><U0A41><U0A71><U0A15><U0A30><U0020>";/
217- "<U0A36><U0A28><U0A40><U0A1A><U0A30><U0020>"
218+ "<U0A36><U0A28><U0A3F><U0A71><U0A1A><U0A30><U0020>"
219 %
220 % Full weekday names (%A)
221 day "<U0A10><U0A24><U0A35><U0A3E><U0A30><U0020>";/
222diff -Naur glibc-2.5/localedata/locales/tt_RU libc/localedata/locales/tt_RU
223--- glibc-2.5/localedata/locales/tt_RU 2006-07-30 15:19:43.000000000 -0700
224+++ libc/localedata/locales/tt_RU 2006-10-06 08:34:42.000000000 -0700
225@@ -1,7 +1,7 @@
226 comment_char %
227 escape_char /
228 %
229-% Tatar Language Locale for Tatarstan
230+% Tatar Language Locale for Russia
231 % Source:
232 % Contact: Pablo Saratxaga, Rinat Norkin
233 % Email: <pablo@mandrakesoft.com>, <rinat@taif.ru>
234@@ -24,7 +24,7 @@
235 % replace cyrillic alphabet
236
237 LC_IDENTIFICATION
238-title "Tatar language locale for Tatarstan"
239+title "Tatar language locale for Russia"
240 source "Rinat Norkin"
241 address ""
242 contact "Pablo Saratxaga, Rinat Norkin"
243@@ -32,7 +32,7 @@
244 tel ""
245 fax ""
246 language "Tatar"
247-territory "Tatarstan"
248+territory "Russia"
249 revision "0.4"
250 date "2001-01-28"
251
252diff -Naur glibc-2.5/manual/message.texi libc/manual/message.texi
253--- glibc-2.5/manual/message.texi 2003-08-29 00:15:18.000000000 -0700
254+++ libc/manual/message.texi 2006-10-02 09:02:53.000000000 -0700
255@@ -1189,7 +1189,7 @@
256 with every language this is the only viable solution except for
257 hardcoding the information in the code (which still would require the
258 possibility of extensions to not prevent the use of new languages). The
259-details are explained in the GNU @code{gettext} manual. Here only a a
260+details are explained in the GNU @code{gettext} manual. Here only a
261 bit of information is provided.
262
263 The information about the plural form selection has to be stored in the
264@@ -1590,7 +1590,7 @@
265 them.
266
267 The POSIX locale model uses the environment variables @code{LC_COLLATE},
268-@code{LC_CTYPE}, @code{LC_MESSAGES}, @code{LC_MONETARY}, @code{NUMERIC},
269+@code{LC_CTYPE}, @code{LC_MESSAGES}, @code{LC_MONETARY}, @code{LC_NUMERIC},
270 and @code{LC_TIME} to select the locale which is to be used. This way
271 the user can influence lots of functions. As we mentioned above the
272 @code{gettext} functions also take advantage of this.
273diff -Naur glibc-2.5/manual/stdio.texi libc/manual/stdio.texi
274--- glibc-2.5/manual/stdio.texi 2006-02-03 23:12:54.000000000 -0800
275+++ libc/manual/stdio.texi 2006-10-06 08:33:02.000000000 -0700
276@@ -2393,8 +2393,9 @@
277 allocates a string (as with @code{malloc}; @pxref{Unconstrained
278 Allocation}) to hold the output, instead of putting the output in a
279 buffer you allocate in advance. The @var{ptr} argument should be the
280-address of a @code{char *} object, and @code{asprintf} stores a pointer
281-to the newly allocated string at that location.
282+address of a @code{char *} object, and a successful call to
283+@code{asprintf} stores a pointer to the newly allocated string at that
284+location.
285
286 The return value is the number of characters allocated for the buffer, or
287 less than zero if an error occurred. Usually this means that the buffer
288diff -Naur glibc-2.5/nscd/mem.c libc/nscd/mem.c
289--- glibc-2.5/nscd/mem.c 2005-12-06 21:47:27.000000000 -0800
290+++ libc/nscd/mem.c 2006-10-02 09:31:11.000000000 -0700
291@@ -1,5 +1,5 @@
292 /* Cache memory handling.
293- Copyright (C) 2004, 2005 Free Software Foundation, Inc.
294+ Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
295 This file is part of the GNU C Library.
296 Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
297
298@@ -480,12 +480,12 @@
299 {
300 /* Try to resize the database. Grow size of 1/8th. */
301 size_t oldtotal = (sizeof (struct database_pers_head)
302- + db->head->module * sizeof (ref_t)
303+ + roundup (db->head->module * sizeof (ref_t), ALIGN)
304 + db->head->data_size);
305 size_t new_data_size = (db->head->data_size
306 + MAX (2 * len, db->head->data_size / 8));
307 size_t newtotal = (sizeof (struct database_pers_head)
308- + db->head->module * sizeof (ref_t)
309+ + roundup (db->head->module * sizeof (ref_t), ALIGN)
310 + new_data_size);
311 if (newtotal > db->max_db_size)
312 {
313diff -Naur glibc-2.5/nscd/nscd.c libc/nscd/nscd.c
314--- glibc-2.5/nscd/nscd.c 2006-05-30 10:29:36.000000000 -0700
315+++ libc/nscd/nscd.c 2006-10-06 08:24:36.000000000 -0700
316@@ -237,7 +237,7 @@
317
318 if (chdir ("/") != 0)
319 error (EXIT_FAILURE, errno,
320- _("cannot change current working cirectory to \"/\""));
321+ _("cannot change current working directory to \"/\""));
322
323 openlog ("nscd", LOG_CONS | LOG_ODELAY, LOG_DAEMON);
324
325diff -Naur glibc-2.5/nscd/nscd-client.h libc/nscd/nscd-client.h
326--- glibc-2.5/nscd/nscd-client.h 2006-04-25 16:48:55.000000000 -0700
327+++ libc/nscd/nscd-client.h 2006-10-02 09:32:27.000000000 -0700
328@@ -258,6 +258,7 @@
329 const char *data;
330 size_t mapsize;
331 int counter; /* > 0 indicates it is usable. */
332+ size_t datasize;
333 };
334 #define NO_MAPPING ((struct mapped_database *) -1l)
335
336diff -Naur glibc-2.5/nscd/nscd_helper.c libc/nscd/nscd_helper.c
337--- glibc-2.5/nscd/nscd_helper.c 2006-04-25 16:47:53.000000000 -0700
338+++ libc/nscd/nscd_helper.c 2006-10-02 09:33:51.000000000 -0700
339@@ -290,6 +290,7 @@
340 newp->data = ((char *) mapping + head.header_size
341 + roundup (head.module * sizeof (ref_t), ALIGN));
342 newp->mapsize = size;
343+ newp->datasize = head.data_size;
344 /* Set counter to 1 to show it is usable. */
345 newp->counter = 1;
346
347@@ -340,7 +341,8 @@
348 /* If not mapped or timestamp not updated, request new map. */
349 if (cur == NULL
350 || (cur->head->nscd_certainly_running == 0
351- && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL)))
352+ && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL))
353+ || cur->head->data_size > cur->datasize)
354 cur = get_mapping (type, name,
355 (struct mapped_database **) &mapptr->mapped);
356
357@@ -365,14 +367,18 @@
358 const struct mapped_database *mapped)
359 {
360 unsigned long int hash = __nis_hash (key, keylen) % mapped->head->module;
361+ size_t datasize = mapped->datasize;
362
363 ref_t work = mapped->head->array[hash];
364- while (work != ENDREF)
365+ while (work != ENDREF && work + sizeof (struct hashentry) <= datasize)
366 {
367 struct hashentry *here = (struct hashentry *) (mapped->data + work);
368
369- if (type == here->type && keylen == here->len
370- && memcmp (key, mapped->data + here->key, keylen) == 0)
371+ if (type == here->type
372+ && keylen == here->len
373+ && here->key + here->len <= datasize
374+ && memcmp (key, mapped->data + here->key, keylen) == 0
375+ && here->packet + sizeof (struct datahead) <= datasize)
376 {
377 /* We found the entry. Increment the appropriate counter. */
378 const struct datahead *dh
379@@ -380,8 +386,7 @@
380
381 /* See whether we must ignore the entry or whether something
382 is wrong because garbage collection is in progress. */
383- if (dh->usable && ((char *) dh + dh->allocsize
384- <= (char *) mapped->head + mapped->mapsize))
385+ if (dh->usable && here->packet + dh->allocsize <= datasize)
386 return dh;
387 }
388
389diff -Naur glibc-2.5/posix/glob.c libc/posix/glob.c
390--- glibc-2.5/posix/glob.c 2006-09-25 08:31:56.000000000 -0700
391+++ libc/posix/glob.c 2006-09-30 08:08:44.000000000 -0700
392@@ -1287,8 +1287,15 @@
393 for (size_t i = 0; i < cur; ++i)
394 free (names->name[i]);
395 names = names->next;
396+ /* NB: we will not leak memory here if we exit without
397+ freeing the current block assigned to OLD. At least
398+ the very first block is always allocated on the stack
399+ and this is the block assigned to OLD here. */
400 if (names == NULL)
401- break;
402+ {
403+ assert (old == &init_names);
404+ break;
405+ }
406 cur = names->count;
407 if (old == names_alloca)
408 names_alloca = names;
409@@ -1306,8 +1313,15 @@
410 new_gl_pathv[pglob->gl_offs + pglob->gl_pathc++]
411 = names->name[i];
412 names = names->next;
413+ /* NB: we will not leak memory here if we exit without
414+ freeing the current block assigned to OLD. At least
415+ the very first block is always allocated on the stack
416+ and this is the block assigned to OLD here. */
417 if (names == NULL)
418- break;
419+ {
420+ assert (old == &init_names);
421+ break;
422+ }
423 cur = names->count;
424 if (old == names_alloca)
425 names_alloca = names;
426diff -Naur glibc-2.5/README libc/README
427--- glibc-2.5/README 2006-09-29 11:42:12.000000000 -0700
428+++ libc/README 2006-10-02 10:11:52.000000000 -0700
429@@ -10,13 +10,6 @@
430 implement the operating system behavior seen by user applications.
431 In GNU/Hurd systems, it works with a microkernel and Hurd servers.
432
433-Version 2.4 is the first release after a long period of development, and
434-introduces changes to the API and a new ABI for all configurations. It
435-has been tested and deployed in new production systems, but should still
436-be considered somewhat experimental. The stable 2.3 release series
437-continues to be maintained, and implements a widely-deployed ABI.
438-Version 2.3.6 is available, and we will release 2.3.7 with more bug fixes.
439-
440 The GNU C Library implements much of the POSIX.1 functionality in the
441 GNU/Hurd system, using configurations i[34567]86-*-gnu.
442
443diff -Naur glibc-2.5/README.template libc/README.template
444--- glibc-2.5/README.template 2006-03-06 02:59:31.000000000 -0800
445+++ libc/README.template 2006-10-02 10:10:43.000000000 -0700
446@@ -10,13 +10,6 @@
447 implement the operating system behavior seen by user applications.
448 In GNU/Hurd systems, it works with a microkernel and Hurd servers.
449
450-Version 2.4 is the first release after a long period of development, and
451-introduces changes to the API and a new ABI for all configurations. It
452-has been tested and deployed in new production systems, but should still
453-be considered somewhat experimental. The stable 2.3 release series
454-continues to be maintained, and implements a widely-deployed ABI.
455-Version 2.3.6 is available, and we will release 2.3.7 with more bug fixes.
456-
457 The GNU C Library implements much of the POSIX.1 functionality in the
458 GNU/Hurd system, using configurations i[34567]86-*-gnu.
459
460diff -Naur glibc-2.5/sysdeps/posix/getaddrinfo.c libc/sysdeps/posix/getaddrinfo.c
461--- glibc-2.5/sysdeps/posix/getaddrinfo.c 2006-09-24 09:51:50.000000000 -0700
462+++ libc/sysdeps/posix/getaddrinfo.c 2006-10-02 09:49:47.000000000 -0700
463@@ -1291,8 +1291,8 @@
464 for (idx = 0; ; ++idx)
465 {
466 unsigned int bits = list[idx].bits;
467- uint8_t *mask = list[idx].prefix.s6_addr;
468- uint8_t *val = in6->sin6_addr.s6_addr;
469+ const uint8_t *mask = list[idx].prefix.s6_addr;
470+ const uint8_t *val = in6->sin6_addr.s6_addr;
471
472 while (bits >= 8)
473 {
474diff -Naur glibc-2.5/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c libc/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c
475--- glibc-2.5/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c 2006-08-14 22:27:23.000000000 -0700
476+++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c 2006-10-02 11:40:39.000000000 -0700
477@@ -1 +1,9 @@
478+#include <errno.h>
479+#include <signal.h>
480+#include <unistd.h>
481+#include <sysdep-cancel.h>
482+
483+#define __sigprocmask(how, set, oset) \
484+ INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8)
485+
486 #include <sysdeps/posix/pause.c>
Note: See TracBrowser for help on using the repository browser.