r4546 - in glibc-package/branches/multiarch/debian: . debhelper.in patches patches/any sysdeps
Author: aurel32
Date: 2011-02-26 19:57:54 +0000 (Sat, 26 Feb 2011)
New Revision: 4546
Added:
glibc-package/branches/multiarch/debian/debhelper.in/libc.prerm
glibc-package/branches/multiarch/debian/patches/any/cvs-fnmatch-alloca.patch
glibc-package/branches/multiarch/debian/patches/any/cvs-qsort-race.diff
Modified:
glibc-package/branches/multiarch/debian/changelog
glibc-package/branches/multiarch/debian/patches/any/local-rtld.diff
glibc-package/branches/multiarch/debian/patches/series
glibc-package/branches/multiarch/debian/rules
glibc-package/branches/multiarch/debian/sysdeps/amd64.mk
glibc-package/branches/multiarch/debian/sysdeps/hurd-i386.mk
glibc-package/branches/multiarch/debian/sysdeps/sparc64.mk
Log:
Merge from trunk
Modified: glibc-package/branches/multiarch/debian/changelog
===================================================================
--- glibc-package/branches/multiarch/debian/changelog 2011-02-26 19:46:14 UTC (rev 4545)
+++ glibc-package/branches/multiarch/debian/changelog 2011-02-26 19:57:54 UTC (rev 4546)
@@ -1,20 +1,6 @@
-eglibc (2.11.2-12) UNRELEASED; urgency=low
+eglibc (2.11.2-13) UNRELEASED; urgency=low
[ Aurelien Jarno ]
- * Re-enable build failure in case of testsuite regressions.
-
- [ Samuel Thibault ]
- * patches/any/submitted-sched_h.diff: Synchronize bits/sched.h with
- sysdeps/unix/sysv/linux/bits/sched.h (Closes: #527589), rename to
- cvs-sched_h.diff.
- * patches/hurd-i386/cvs-if_freereq.diff: Fix crash when siocgifconf
- actually succeeds.
-
- [ Clint Adams ]
- * Patch from Nobuhiro Iwamatsu to cope with the removal of
- patch --unified-reject-files. closes: #612540.
-
- [ Aurelien Jarno ]
* Use the multiarch path for the native version and optimized flavors.
* Simplify the creation of /etc/ld.so.conf.d/<triplet>.conf.
* Install a symlink ABI -> multiarch path.
@@ -37,8 +23,37 @@
precedence.
* set multiarch field for new optimized hurd-i386 packages
- -- Clint Adams <clint@debian.org> Tue, 08 Feb 2011 22:29:28 -0500
+ -- Aurelien Jarno <aurel32@debian.org> Sat, 26 Feb 2011 18:28:26 +0100
+eglibc (2.11.2-12) unstable; urgency=medium
+
+ [ Aurelien Jarno ]
+ * Re-enable build failure in case of testsuite regressions.
+ * Add patches/any/cvs-fnmatch-alloca.patch from upstream to fix a
+ memory corruption in fnmatch() that can lead to code execution.
+ Closes: #615120.
+ * Add patches/any/cvs-qsort-race.diff from upstream to fix race in
+ qsort_r(). Closes: #614892.
+
+ [ Samuel Thibault ]
+ * patches/any/submitted-sched_h.diff: Synchronize bits/sched.h with
+ sysdeps/unix/sysv/linux/bits/sched.h (Closes: #527589), rename to
+ cvs-sched_h.diff.
+ * patches/hurd-i386/cvs-if_freereq.diff: Fix crash when siocgifconf
+ actually succeeds.
+
+ [ Clint Adams ]
+ * Patch from Nobuhiro Iwamatsu to cope with the removal of
+ patch --unified-reject-files. closes: #612540.
+
+ [ Steve Langasek ]
+ * Merge parts of multiarch patch:
+ - Use the correct path in the ldd script as well
+ - Set default rtlddir to /lib and override it when needed.
+ - Install xen library in $(libdir)/xen instead of /usr/lib/xen.
+
+ -- Aurelien Jarno <aurel32@debian.org> Sat, 26 Feb 2011 18:28:26 +0100
+
eglibc (2.11.2-11) unstable; urgency=low
* patches/kfreebsd/local-sysdeps.diff: remove stub marks for at*
Added: glibc-package/branches/multiarch/debian/debhelper.in/libc.prerm
===================================================================
--- glibc-package/branches/multiarch/debian/debhelper.in/libc.prerm (rev 0)
+++ glibc-package/branches/multiarch/debian/debhelper.in/libc.prerm 2011-02-26 19:57:54 UTC (rev 4546)
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -e
+export LC_ALL=C
+
+type=$1
+preversion=$2
+
+#DEBHELPER#
+
+if [ -n "$preversion" ]; then
+ if dpkg --compare-versions "$preversion" lt 2.12; then
+ # upgrading from a pre-multiarch libc to a multiarch libc; we have
+ # to blow away /etc/ld.so.cache, otherwise the old unpacked libc
+ # is still first in the cache and segfaults when combined with
+ # our newly-unpacked ld.so. For the moment, assume the version
+ # constraint is the same as for NSS (but it may need to be
+ # tightened)
+ # and do this last to avoid slowing down the rest of the upgrade.
+ rm -f /etc/ld.so.cache
+ fi
+fi
+
+exit 0
+w
Added: glibc-package/branches/multiarch/debian/patches/any/cvs-fnmatch-alloca.patch
===================================================================
--- glibc-package/branches/multiarch/debian/patches/any/cvs-fnmatch-alloca.patch (rev 0)
+++ glibc-package/branches/multiarch/debian/patches/any/cvs-fnmatch-alloca.patch 2011-02-26 19:57:54 UTC (rev 4546)
@@ -0,0 +1,446 @@
+2010-11-11 Andreas Schwab <schwab@redhat.com>
+
+ * posix/fnmatch_loop.c (NEW_PATTERN): Fix use of alloca.
+
+2010-08-09 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #11883]
+ * posix/fnmatch.c: Keep track of alloca use and fall back on malloc.
+ * posix/fnmatch_loop.c: Likewise.
+
+diff a/posix/fnmatch.c b/posix/fnmatch.c
+--- a/posix/fnmatch.c
++++ b/posix/fnmatch.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2007
++/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2007,2010
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+@@ -41,6 +41,12 @@
+ # include <stdlib.h>
+ #endif
+
++#ifdef _LIBC
++# include <alloca.h>
++#else
++# define alloca_account(size., var) alloca (size)
++#endif
++
+ /* For platform which support the ISO C amendement 1 functionality we
+ support user defined character classes. */
+ #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
+@@ -330,8 +336,11 @@ fnmatch (pattern, string, flags)
+ mbstate_t ps;
+ size_t n;
+ const char *p;
++ wchar_t *wpattern_malloc = NULL;
+ wchar_t *wpattern;
++ wchar_t *wstring_malloc = NULL;
+ wchar_t *wstring;
++ size_t alloca_used = 0;
+
+ /* Convert the strings into wide characters. */
+ memset (&ps, '\0', sizeof (ps));
+@@ -343,7 +352,8 @@ fnmatch (pattern, string, flags)
+ #endif
+ if (__builtin_expect (n < 1024, 1))
+ {
+- wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++ wpattern = (wchar_t *) alloca_account ((n + 1) * sizeof (wchar_t),
++ alloca_used);
+ n = mbsrtowcs (wpattern, &p, n + 1, &ps);
+ if (__builtin_expect (n == (size_t) -1, 0))
+ /* Something wrong.
+@@ -365,8 +375,11 @@ fnmatch (pattern, string, flags)
+ XXX Do we have to set `errno' to something which mbsrtows hasn't
+ already done? */
+ return -1;
+- wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++ wpattern_malloc = wpattern
++ = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t));
+ assert (mbsinit (&ps));
++ if (wpattern == NULL)
++ return -2;
+ (void) mbsrtowcs (wpattern, &pattern, n + 1, &ps);
+ }
+
+@@ -379,13 +392,18 @@ fnmatch (pattern, string, flags)
+ p = string;
+ if (__builtin_expect (n < 1024, 1))
+ {
+- wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++ wstring = (wchar_t *) alloca_account ((n + 1) * sizeof (wchar_t),
++ alloca_used);
+ n = mbsrtowcs (wstring, &p, n + 1, &ps);
+ if (__builtin_expect (n == (size_t) -1, 0))
+- /* Something wrong.
+- XXX Do we have to set `errno' to something which mbsrtows hasn't
+- already done? */
+- return -1;
++ {
++ /* Something wrong.
++ XXX Do we have to set `errno' to something which
++ mbsrtows hasn't already done? */
++ free_return:
++ free (wpattern_malloc);
++ return -1;
++ }
+ if (p)
+ {
+ memset (&ps, '\0', sizeof (ps));
+@@ -400,19 +418,32 @@ fnmatch (pattern, string, flags)
+ /* Something wrong.
+ XXX Do we have to set `errno' to something which mbsrtows hasn't
+ already done? */
+- return -1;
+- wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++ goto free_return;
++
++ wstring_malloc = wstring
++ = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t));
++ if (wstring == NULL)
++ {
++ free (wpattern_malloc);
++ return -2;
++ }
+ assert (mbsinit (&ps));
+ (void) mbsrtowcs (wstring, &string, n + 1, &ps);
+ }
+
+- return internal_fnwmatch (wpattern, wstring, wstring + n,
+- flags & FNM_PERIOD, flags, NULL);
++ int res = internal_fnwmatch (wpattern, wstring, wstring + n,
++ flags & FNM_PERIOD, flags, NULL,
++ alloca_used);
++
++ free (wstring_malloc);
++ free (wpattern_malloc);
++
++ return res;
+ }
+ # endif /* mbstate_t and mbsrtowcs or _LIBC. */
+
+ return internal_fnmatch (pattern, string, string + strlen (string),
+- flags & FNM_PERIOD, flags, NULL);
++ flags & FNM_PERIOD, flags, NULL, 0);
+ }
+
+ # ifdef _LIBC
+diff a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
+--- a/posix/fnmatch_loop.c
++++ b/posix/fnmatch_loop.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991-1993,1996-2001,2003-2005,2007
++/* Copyright (C) 1991-1993,1996-2001,2003-2005,2007,2010
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+@@ -28,22 +28,24 @@ struct STRUCT
+ it matches, nonzero if not. */
+ static int FCT (const CHAR *pattern, const CHAR *string,
+ const CHAR *string_end, int no_leading_period, int flags,
+- struct STRUCT *ends)
++ struct STRUCT *ends, size_t alloca_used)
+ internal_function;
+ static int EXT (INT opt, const CHAR *pattern, const CHAR *string,
+- const CHAR *string_end, int no_leading_period, int flags)
++ const CHAR *string_end, int no_leading_period, int flags,
++ size_t alloca_used)
+ internal_function;
+ static const CHAR *END (const CHAR *patternp) internal_function;
+
+ static int
+ internal_function
+-FCT (pattern, string, string_end, no_leading_period, flags, ends)
++FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ const CHAR *pattern;
+ const CHAR *string;
+ const CHAR *string_end;
+ int no_leading_period;
+ int flags;
+ struct STRUCT *ends;
++ size_t alloca_used;
+ {
+ register const CHAR *p = pattern, *n = string;
+ register UCHAR c;
+@@ -67,10 +69,8 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends)
+ case L('?'):
+ if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(')
+ {
+- int res;
+-
+- res = EXT (c, p, n, string_end, no_leading_period,
+- flags);
++ int res = EXT (c, p, n, string_end, no_leading_period,
++ flags, alloca_used);
+ if (res != -1)
+ return res;
+ }
+@@ -99,10 +99,8 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends)
+ case L('*'):
+ if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(')
+ {
+- int res;
+-
+- res = EXT (c, p, n, string_end, no_leading_period,
+- flags);
++ int res = EXT (c, p, n, string_end, no_leading_period,
++ flags, alloca_used);
+ if (res != -1)
+ return res;
+ }
+@@ -191,7 +189,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends)
+
+ for (--p; n < endp; ++n, no_leading_period = 0)
+ if (FCT (p, n, string_end, no_leading_period, flags2,
+- &end) == 0)
++ &end, alloca_used) == 0)
+ goto found;
+ }
+ else if (c == L('/') && (flags & FNM_FILE_NAME))
+@@ -200,7 +198,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends)
+ ++n;
+ if (n < string_end && *n == L('/')
+ && (FCT (p, n + 1, string_end, flags & FNM_PERIOD, flags,
+- NULL) == 0))
++ NULL, alloca_used) == 0))
+ return 0;
+ }
+ else
+@@ -214,7 +212,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends)
+ for (--p; n < endp; ++n, no_leading_period = 0)
+ if (FOLD ((UCHAR) *n) == c
+ && (FCT (p, n, string_end, no_leading_period, flags2,
+- &end) == 0))
++ &end, alloca_used) == 0))
+ {
+ found:
+ if (end.pattern == NULL)
+@@ -749,7 +747,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends)
+ _NL_COLLATE_SYMB_EXTRAMB);
+
+ /* Locate the character in the hashing
+- table. */
++ table. */
+ hash = elem_hash (str, c1);
+
+ idx = 0;
+@@ -971,9 +969,8 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends)
+ case L('!'):
+ if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(')
+ {
+- int res;
+-
+- res = EXT (c, p, n, string_end, no_leading_period, flags);
++ int res = EXT (c, p, n, string_end, no_leading_period, flags,
++ alloca_used);
+ if (res != -1)
+ return res;
+ }
+@@ -1052,26 +1049,32 @@ END (const CHAR *pattern)
+ static int
+ internal_function
+ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+- int no_leading_period, int flags)
++ int no_leading_period, int flags, size_t alloca_used)
+ {
+ const CHAR *startp;
+ int level;
+ struct patternlist
+ {
+ struct patternlist *next;
++ CHAR malloced;
+ CHAR str[0];
+ } *list = NULL;
+ struct patternlist **lastp = &list;
+ size_t pattern_len = STRLEN (pattern);
++ int any_malloced = 0;
+ const CHAR *p;
+ const CHAR *rs;
++ int retval = 0;
+
+ /* Parse the pattern. Store the individual parts in the list. */
+ level = 0;
+ for (startp = p = pattern + 1; level >= 0; ++p)
+ if (*p == L('\0'))
+- /* This is an invalid pattern. */
+- return -1;
++ {
++ /* This is an invalid pattern. */
++ retval = -1;
++ goto out;
++ }
+ else if (*p == L('['))
+ {
+ /* Handle brackets special. */
+@@ -1088,8 +1091,11 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+ /* Skip over all characters of the list. */
+ while (*p != L(']'))
+ if (*p++ == L('\0'))
+- /* This is no valid pattern. */
+- return -1;
++ {
++ /* This is no valid pattern. */
++ retval = -1;
++ goto out;
++ }
+ }
+ else if ((*p == L('?') || *p == L('*') || *p == L('+') || *p == L('@')
+ || *p == L('!')) && p[1] == L('('))
+@@ -1102,15 +1108,25 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+ /* This means we found the end of the pattern. */
+ #define NEW_PATTERN \
+ struct patternlist *newp; \
+- \
+- if (opt == L('?') || opt == L('@')) \
+- newp = alloca (sizeof (struct patternlist) \
+- + (pattern_len * sizeof (CHAR))); \
++ size_t slen = (opt == L('?') || opt == L('@') \
++ ? pattern_len : (p - startp + 1)); \
++ slen = sizeof (struct patternlist) + (slen * sizeof (CHAR)); \
++ int malloced = ! __libc_use_alloca (alloca_used + slen); \
++ if (__builtin_expect (malloced, 0)) \
++ { \
++ newp = malloc (slen); \
++ if (newp == NULL) \
++ { \
++ retval = -2; \
++ goto out; \
++ } \
++ any_malloced = 1; \
++ } \
+ else \
+- newp = alloca (sizeof (struct patternlist) \
+- + ((p - startp + 1) * sizeof (CHAR))); \
+- *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0'); \
++ newp = alloca_account (slen, alloca_used); \
+ newp->next = NULL; \
++ newp->malloced = malloced; \
++ *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0'); \
+ *lastp = newp; \
+ lastp = &newp->next
+ NEW_PATTERN;
+@@ -1131,8 +1147,9 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+ switch (opt)
+ {
+ case L('*'):
+- if (FCT (p, string, string_end, no_leading_period, flags, NULL) == 0)
+- return 0;
++ if (FCT (p, string, string_end, no_leading_period, flags, NULL,
++ alloca_used) == 0)
++ goto success;
+ /* FALLTHROUGH */
+
+ case L('+'):
+@@ -1143,7 +1160,7 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+ current pattern. */
+ if (FCT (list->str, string, rs, no_leading_period,
+ flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+- NULL) == 0
++ NULL, alloca_used) == 0
+ /* This was successful. Now match the rest with the rest
+ of the pattern. */
+ && (FCT (p, rs, string_end,
+@@ -1151,7 +1168,7 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+ ? no_leading_period
+ : rs[-1] == '/' && NO_LEADING_PERIOD (flags) ? 1 : 0,
+ flags & FNM_FILE_NAME
+- ? flags : flags & ~FNM_PERIOD, NULL) == 0
++ ? flags : flags & ~FNM_PERIOD, NULL, alloca_used) == 0
+ /* This didn't work. Try the whole pattern. */
+ || (rs != string
+ && FCT (pattern - 1, rs, string_end,
+@@ -1160,18 +1177,21 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+ : (rs[-1] == '/' && NO_LEADING_PERIOD (flags)
+ ? 1 : 0),
+ flags & FNM_FILE_NAME
+- ? flags : flags & ~FNM_PERIOD, NULL) == 0)))
++ ? flags : flags & ~FNM_PERIOD, NULL,
++ alloca_used) == 0)))
+ /* It worked. Signal success. */
+- return 0;
++ goto success;
+ }
+ while ((list = list->next) != NULL);
+
+ /* None of the patterns lead to a match. */
+- return FNM_NOMATCH;
++ retval = FNM_NOMATCH;
++ break;
+
+ case L('?'):
+- if (FCT (p, string, string_end, no_leading_period, flags, NULL) == 0)
+- return 0;
++ if (FCT (p, string, string_end, no_leading_period, flags, NULL,
++ alloca_used) == 0)
++ goto success;
+ /* FALLTHROUGH */
+
+ case L('@'):
+@@ -1183,13 +1203,14 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+ if (FCT (STRCAT (list->str, p), string, string_end,
+ no_leading_period,
+ flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+- NULL) == 0)
++ NULL, alloca_used) == 0)
+ /* It worked. Signal success. */
+- return 0;
++ goto success;
+ while ((list = list->next) != NULL);
+
+ /* None of the patterns lead to a match. */
+- return FNM_NOMATCH;
++ retval = FNM_NOMATCH;
++ break;
+
+ case L('!'):
+ for (rs = string; rs <= string_end; ++rs)
+@@ -1199,7 +1220,7 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+ for (runp = list; runp != NULL; runp = runp->next)
+ if (FCT (runp->str, string, rs, no_leading_period,
+ flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+- NULL) == 0)
++ NULL, alloca_used) == 0)
+ break;
+
+ /* If none of the patterns matched see whether the rest does. */
+@@ -1209,21 +1230,34 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+ ? no_leading_period
+ : rs[-1] == '/' && NO_LEADING_PERIOD (flags) ? 1 : 0,
+ flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+- NULL) == 0))
++ NULL, alloca_used) == 0))
+ /* This is successful. */
+- return 0;
++ goto success;
+ }
+
+ /* None of the patterns together with the rest of the pattern
+ lead to a match. */
+- return FNM_NOMATCH;
++ retval = FNM_NOMATCH;
++ break;
+
+ default:
+ assert (! "Invalid extended matching operator");
++ retval = -1;
+ break;
+ }
+
+- return -1;
++ success:
++ out:
++ if (any_malloced)
++ while (list != NULL)
++ {
++ struct patternlist *old = list;
++ list = list->next;
++ if (old->malloced)
++ free (old);
++ }
++
++ return retval;
+ }
+
+
Added: glibc-package/branches/multiarch/debian/patches/any/cvs-qsort-race.diff
===================================================================
--- glibc-package/branches/multiarch/debian/patches/any/cvs-qsort-race.diff (rev 0)
+++ glibc-package/branches/multiarch/debian/patches/any/cvs-qsort-race.diff 2011-02-26 19:57:54 UTC (rev 4546)
@@ -0,0 +1,37 @@
+2010-12-09 Ulrich Drepper <drepper@gmail.com>
+
+ [BZ #11655]
+ * stdlib/msort.c (qsort_r): Make sure both phys_pages and pagesize
+ are initialized.
+
+diff --git a/stdlib/msort.c b/stdlib/msort.c
+index 35cd4d0..fc58f0d 100644
+--- a/stdlib/msort.c
++++ b/stdlib/msort.c
+@@ -25,6 +25,7 @@
+ #include <unistd.h>
+ #include <memcopy.h>
+ #include <errno.h>
++#include <atomic.h>
+
+ struct msort_param
+ {
+@@ -182,7 +183,7 @@ qsort_r (void *b, size_t n, size_t s, __compar_d_fn_t cmp, void *arg)
+ static long int phys_pages;
+ static int pagesize;
+
+- if (phys_pages == 0)
++ if (pagesize == 0)
+ {
+ phys_pages = __sysconf (_SC_PHYS_PAGES);
+
+@@ -197,6 +198,9 @@ qsort_r (void *b, size_t n, size_t s, __compar_d_fn_t cmp, void *arg)
+ a quarter of the physical memory. */
+ phys_pages /= 4;
+
++ /* Make sure phys_pages is written to memory. */
++ atomic_write_barrier ();
++
+ pagesize = __sysconf (_SC_PAGESIZE);
+ }
+
Modified: glibc-package/branches/multiarch/debian/patches/any/local-rtld.diff
===================================================================
--- glibc-package/branches/multiarch/debian/patches/any/local-rtld.diff 2011-02-26 19:46:14 UTC (rev 4545)
+++ glibc-package/branches/multiarch/debian/patches/any/local-rtld.diff 2011-02-26 19:57:54 UTC (rev 4546)
@@ -15,10 +15,8 @@
elf/Makefile | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
-Index: eglibc-2.12.1/Makeconfig
-===================================================================
---- eglibc-2.12.1.orig/Makeconfig
-+++ eglibc-2.12.1/Makeconfig
+--- a/Makeconfig
++++ b/Makeconfig
@@ -202,6 +202,11 @@
endif
inst_slibdir = $(install_root)$(slibdir)
@@ -40,10 +38,8 @@
endif
endif
ifndef link-libc
-Index: eglibc-2.12.1/elf/Makefile
-===================================================================
---- eglibc-2.12.1.orig/elf/Makefile
-+++ eglibc-2.12.1/elf/Makefile
+--- a/elf/Makefile
++++ b/elf/Makefile
@@ -380,7 +380,7 @@
| $(AWK) '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }'
Modified: glibc-package/branches/multiarch/debian/patches/series
===================================================================
--- glibc-package/branches/multiarch/debian/patches/series 2011-02-26 19:46:14 UTC (rev 4545)
+++ glibc-package/branches/multiarch/debian/patches/series 2011-02-26 19:57:54 UTC (rev 4546)
@@ -270,3 +270,5 @@
any/cvs-audit-suid.diff
any/cvs-dont-expand-dst-twice.diff
any/cvs-ignore-origin-privileged.diff
+any/cvs-fnmatch-alloca.patch
+any/cvs-qsort-race.diff
Modified: glibc-package/branches/multiarch/debian/rules
===================================================================
--- glibc-package/branches/multiarch/debian/rules 2011-02-26 19:46:14 UTC (rev 4545)
+++ glibc-package/branches/multiarch/debian/rules 2011-02-26 19:57:54 UTC (rev 4546)
@@ -89,7 +89,7 @@
docdir=$(prefix)/share/doc
mandir=$(prefix)/share/man
sbindir=$(prefix)/sbin
-rtlddir = /lib
+rtlddir=/lib
slibdir=/lib/$(DEB_HOST_GNU_TYPE)
libdir=/usr/lib/$(DEB_HOST_GNU_TYPE)
Modified: glibc-package/branches/multiarch/debian/sysdeps/amd64.mk
===================================================================
--- glibc-package/branches/multiarch/debian/sysdeps/amd64.mk 2011-02-26 19:46:14 UTC (rev 4545)
+++ glibc-package/branches/multiarch/debian/sysdeps/amd64.mk 2011-02-26 19:57:54 UTC (rev 4546)
@@ -18,7 +18,6 @@
i386_extra_cflags = -march=pentium4 -mtune=generic
i386_extra_config_options = $(extra_config_options)
i386_includedir = /usr/include/i486-linux-gnu
-i386_rtlddir = /lib
i386_slibdir = /lib32
i386_libdir = /usr/lib32
Modified: glibc-package/branches/multiarch/debian/sysdeps/hurd-i386.mk
===================================================================
--- glibc-package/branches/multiarch/debian/sysdeps/hurd-i386.mk 2011-02-26 19:46:14 UTC (rev 4545)
+++ glibc-package/branches/multiarch/debian/sysdeps/hurd-i386.mk 2011-02-26 19:57:54 UTC (rev 4546)
@@ -19,8 +19,8 @@
xen_extra_config_options = $(extra_config_options) --disable-profile
define libc0.3-dev_extra_pkg_install
-mkdir -p debian/libc0.3-dev/usr/lib/xen
-cp -af debian/tmp-xen/usr/lib/*.a \
- debian/libc0.3-dev/usr/lib/xen
+mkdir -p debian/libc0.3-dev/$(libdir)/xen
+cp -af debian/tmp-xen/$(libdir)/*.a \
+ debian/libc0.3-dev/$(libdir)/xen
endef
Modified: glibc-package/branches/multiarch/debian/sysdeps/sparc64.mk
===================================================================
--- glibc-package/branches/multiarch/debian/sysdeps/sparc64.mk 2011-02-26 19:46:14 UTC (rev 4545)
+++ glibc-package/branches/multiarch/debian/sysdeps/sparc64.mk 2011-02-26 19:57:54 UTC (rev 4546)
@@ -9,7 +9,7 @@
sparcv9b_configure_build=sparc64b-linux-gnu
sparcv9b_extra_cflags = -mcpu=ultrasparc3
sparcv9b_extra_config_options = $(extra_config_options) --disable-profile
-sparcv9b_rtlddir = /lib
+sparcv9b_rtlddir = /lib64
sparcv9b_slibdir = /lib/ultra3
# /lib64 and /usr/lib64 are provided by glibc instead base-files: #259302.
Reply to: