aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/eglibc
diff options
context:
space:
mode:
authorKang Kai <kai.kang@windriver.com>2011-11-16 15:50:23 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-11-24 22:09:19 +0000
commite364b04a34d7c2a95145799773821e82b8677e78 (patch)
tree7f2361fd715d8724107a4d22df7b2dc220336490 /meta/recipes-core/eglibc
parenta60449f6110bc86dd0d976413c169bafc0ebcada (diff)
downloadopenembedded-core-contrib-e364b04a34d7c2a95145799773821e82b8677e78.tar.gz
eglibc_2.13: update SRCREV
Update eglibc 2.13 SRCREV to 15508, just to sync with upstream Remove glibc_bug_fix_12454.patch, because it is already merged. Signed-off-by: Kang Kai <kai.kang@windriver.com>
Diffstat (limited to 'meta/recipes-core/eglibc')
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.13/glibc_bug_fix_12454.patch179
-rw-r--r--meta/recipes-core/eglibc/eglibc_2.13.bb5
2 files changed, 2 insertions, 182 deletions
diff --git a/meta/recipes-core/eglibc/eglibc-2.13/glibc_bug_fix_12454.patch b/meta/recipes-core/eglibc/eglibc-2.13/glibc_bug_fix_12454.patch
deleted file mode 100644
index 71ba851773..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.13/glibc_bug_fix_12454.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-Upstream-Status: Inappropriate [backport]
-
-Imported by Nitin A Kamble <nitin.a.kamble@intel.com> 2011/07/12
-
-From 6b1e7d1992cd89032df431c0e0d1418b97e57cd8 Mon Sep 17 00:00:00 2001
-From: Ulrich Drepper <drepper@gmail.com>
-Date: Mon, 30 May 2011 12:31:25 -0400
-Subject: [PATCH] Handle DSOs without any dependency in ld.so
-
----
- ChangeLog | 6 ++++
- NEWS | 4 +-
- elf/dl-deps.c | 93 +++++++++++++++++++++++++++++---------------------------
- elf/dl-fini.c | 10 ++++--
- elf/rtld.c | 1 -
- 5 files changed, 62 insertions(+), 52 deletions(-)
-
-Index: libc/ChangeLog
-===================================================================
---- libc.orig/ChangeLog
-+++ libc/ChangeLog
-@@ -1,3 +1,13 @@
-+2011-05-30 Ulrich Drepper <drepper@gmail.com>
-+
-+ [BZ #12454]
-+ * elf/dl-deps.c (_dl_map_object_deps): Run initializer sorting only
-+ when there are multiple maps.
-+ * elf/dl-fini.c (_dl_sort_fini): Check for list of one.
-+ (_dl_fini): Remove test here.
-+
-+ * elf/rtld.c (dl_main): Don't allow the loader to load itself.
-+
- 2010-09-28 Andreas Schwab <schwab@redhat.com>
- Ulrich Drepper <drepper@gmail.com>
-
-Index: libc/elf/dl-deps.c
-===================================================================
---- libc.orig/elf/dl-deps.c
-+++ libc/elf/dl-deps.c
-@@ -613,61 +613,64 @@ Filters not supported with LD_TRACE_PREL
- map->l_searchlist.r_list[i]->l_reserved = 0;
- }
-
-- /* Now determine the order in which the initialization has to happen. */
-+ /* Sort the initializer list to take dependencies into account. The binary
-+ itself will always be initialize last. */
- memcpy (l_initfini, map->l_searchlist.r_list,
- nlist * sizeof (struct link_map *));
--
-- /* We can skip looking for the binary itself which is at the front
-- of the search list. */
-- assert (nlist > 1);
-- i = 1;
-- bool seen[nlist];
-- memset (seen, false, nlist * sizeof (seen[0]));
-- while (1)
-+ if (__builtin_expect (nlist > 1, 1))
- {
-- /* Keep track of which object we looked at this round. */
-- seen[i] = true;
-- struct link_map *thisp = l_initfini[i];
--
-- /* Find the last object in the list for which the current one is
-- a dependency and move the current object behind the object
-- with the dependency. */
-- unsigned int k = nlist - 1;
-- while (k > i)
-+ /* We can skip looking for the binary itself which is at the front
-+ of the search list. */
-+ i = 1;
-+ bool seen[nlist];
-+ memset (seen, false, nlist * sizeof (seen[0]));
-+ while (1)
- {
-- struct link_map **runp = l_initfini[k]->l_initfini;
-- if (runp != NULL)
-- /* Look through the dependencies of the object. */
-- while (*runp != NULL)
-- if (__builtin_expect (*runp++ == thisp, 0))
-- {
-- /* Move the current object to the back past the last
-- object with it as the dependency. */
-- memmove (&l_initfini[i], &l_initfini[i + 1],
-- (k - i) * sizeof (l_initfini[0]));
-- l_initfini[k] = thisp;
--
-- if (seen[i + 1])
-+ /* Keep track of which object we looked at this round. */
-+ seen[i] = true;
-+ struct link_map *thisp = l_initfini[i];
-+
-+ /* Find the last object in the list for which the current one is
-+ a dependency and move the current object behind the object
-+ with the dependency. */
-+ unsigned int k = nlist - 1;
-+ while (k > i)
-+ {
-+ struct link_map **runp = l_initfini[k]->l_initfini;
-+ if (runp != NULL)
-+ /* Look through the dependencies of the object. */
-+ while (*runp != NULL)
-+ if (__builtin_expect (*runp++ == thisp, 0))
- {
-- ++i;
-- goto next_clear;
-+ /* Move the current object to the back past the last
-+ object with it as the dependency. */
-+ memmove (&l_initfini[i], &l_initfini[i + 1],
-+ (k - i) * sizeof (l_initfini[0]));
-+ l_initfini[k] = thisp;
-+
-+ if (seen[i + 1])
-+ {
-+ ++i;
-+ goto next_clear;
-+ }
-+
-+ memmove (&seen[i], &seen[i + 1],
-+ (k - i) * sizeof (seen[0]));
-+ seen[k] = true;
-+
-+ goto next;
- }
-
-- memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0]));
-- seen[k] = true;
-+ --k;
-+ }
-
-- goto next;
-- }
-+ if (++i == nlist)
-+ break;
-+ next_clear:
-+ memset (&seen[i], false, (nlist - i) * sizeof (seen[0]));
-
-- --k;
-+ next:;
- }
--
-- if (++i == nlist)
-- break;
-- next_clear:
-- memset (&seen[i], false, (nlist - i) * sizeof (seen[0]));
--
-- next:;
- }
-
- /* Terminate the list of dependencies. */
-Index: libc/elf/dl-fini.c
-===================================================================
---- libc.orig/elf/dl-fini.c
-+++ libc/elf/dl-fini.c
-@@ -33,9 +33,12 @@ internal_function
- _dl_sort_fini (struct link_map *l, struct link_map **maps, size_t nmaps,
- char *used, Lmid_t ns)
- {
-+ /* A list of one element need not be sorted. */
-+ if (nmaps == 1)
-+ return;
-+
- /* We can skip looking for the binary itself which is at the front
- of the search list for the main namespace. */
-- assert (nmaps > 1);
- unsigned int i = ns == LM_ID_BASE;
- bool seen[nmaps];
- memset (seen, false, nmaps * sizeof (seen[0]));
-@@ -195,9 +198,8 @@ _dl_fini (void)
- assert (ns == LM_ID_BASE || i == nloaded || i == nloaded - 1);
- nmaps = i;
-
-- if (nmaps > 1)
-- /* Now we have to do the sorting. */
-- _dl_sort_fini (GL(dl_ns)[ns]._ns_loaded, maps, nmaps, NULL, ns);
-+ /* Now we have to do the sorting. */
-+ _dl_sort_fini (GL(dl_ns)[ns]._ns_loaded, maps, nmaps, NULL, ns);
-
- /* We do not rely on the linked list of loaded object anymore from
- this point on. We have our own list here (maps). The various
diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb b/meta/recipes-core/eglibc/eglibc_2.13.bb
index f076ae7c7f..955c4ec4b9 100644
--- a/meta/recipes-core/eglibc/eglibc_2.13.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.13.bb
@@ -1,9 +1,9 @@
require eglibc.inc
-SRCREV = "14157"
+SRCREV = "15508"
DEPENDS += "gperf-native"
-PR = "r17"
+PR = "r18"
PR_append = "+svnr${SRCPV}"
EGLIBC_BRANCH="eglibc-2_13"
@@ -16,7 +16,6 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
file://armv4-eabi-compile-fix.patch \
file://etc/ld.so.conf \
file://generate-supported.mk \
- file://glibc_bug_fix_12454.patch \
file://ppc-sqrt.patch \
file://multilib_readlib.patch \
"