diff options
-rw-r--r-- | meta/recipes-core/eglibc/eglibc-2.14/glibc-2.14-libdl-crash.patch | 66 | ||||
-rw-r--r-- | meta/recipes-core/eglibc/eglibc_2.14.bb | 2 |
2 files changed, 35 insertions, 33 deletions
diff --git a/meta/recipes-core/eglibc/eglibc-2.14/glibc-2.14-libdl-crash.patch b/meta/recipes-core/eglibc/eglibc-2.14/glibc-2.14-libdl-crash.patch index e1f135c424..1c30c9d833 100644 --- a/meta/recipes-core/eglibc/eglibc-2.14/glibc-2.14-libdl-crash.patch +++ b/meta/recipes-core/eglibc/eglibc-2.14/glibc-2.14-libdl-crash.patch @@ -12,11 +12,11 @@ http://mailman.archlinux.org/pipermail/arch-commits/2011-June/137142.html http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/glibc/current/SOURCES/glibc-2.14-libdl-crash.patch?view=markup&pathrev=691343 http://repos.archlinuxppc.org/wsvn/filedetails.php?repname=packages&path=%2Fglibc%2Ftrunk%2Fglibc-2.14-libdl-crash.patch -diff --git a/elf/dl-close.c b/elf/dl-close.c -index 73b2a2f..9bd91e3 100644 ---- a/elf/dl-close.c -+++ b/elf/dl-close.c -@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map) +Index: libc/elf/dl-close.c +=================================================================== +--- libc.orig/elf/dl-close.c 2011-12-05 20:16:38.000000000 -0800 ++++ libc/elf/dl-close.c 2011-12-05 20:17:15.863326893 -0800 +@@ -119,17 +119,8 @@ if (map->l_direct_opencount > 0 || map->l_type != lt_loaded || dl_close_state != not_pending) { @@ -35,12 +35,12 @@ index 73b2a2f..9bd91e3 100644 + dl_close_state = rerun; /* There are still references to this object. Do nothing more. */ - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0)) -diff --git a/elf/dl-deps.c b/elf/dl-deps.c -index 9e30594..3890d00 100644 ---- a/elf/dl-deps.c -+++ b/elf/dl-deps.c -@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map, + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0)) +Index: libc/elf/dl-deps.c +=================================================================== +--- libc.orig/elf/dl-deps.c 2011-12-05 20:16:38.000000000 -0800 ++++ libc/elf/dl-deps.c 2011-12-05 20:19:33.179326877 -0800 +@@ -478,6 +478,7 @@ nneeded * sizeof needed[0]); atomic_write_barrier (); l->l_initfini = l_initfini; @@ -48,7 +48,7 @@ index 9e30594..3890d00 100644 } /* If we have no auxiliary objects just go on to the next map. */ -@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING")); +@@ -678,6 +679,7 @@ l_initfini[nlist] = NULL; atomic_write_barrier (); map->l_initfini = l_initfini; @@ -56,18 +56,20 @@ index 9e30594..3890d00 100644 if (l_reldeps != NULL) { atomic_write_barrier (); -@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING")); +@@ -686,7 +688,7 @@ _dl_scope_free (old_l_reldeps); } if (old_l_initfini != NULL) - map->l_orig_initfini = old_l_initfini; -+ _dl_scope_free (old_l_initfini); - } -diff --git a/elf/dl-libc.c b/elf/dl-libc.c -index 7be9483..a13fce3 100644 ---- a/elf/dl-libc.c -+++ b/elf/dl-libc.c -@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem) ++ _dl_scope_free (old_l_initfini); + + if (errno_reason) + _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname, +Index: libc/elf/dl-libc.c +=================================================================== +--- libc.orig/elf/dl-libc.c 2011-10-22 09:34:03.000000000 -0700 ++++ libc/elf/dl-libc.c 2011-12-05 20:17:15.863326893 -0800 +@@ -265,13 +265,13 @@ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) { @@ -82,7 +84,7 @@ index 7be9483..a13fce3 100644 while (lnp != NULL) { struct libname_list *old = lnp; -@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem) +@@ -279,6 +279,10 @@ if (! old->dont_free) free (old); } @@ -93,11 +95,11 @@ index 7be9483..a13fce3 100644 } if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0 -diff --git a/elf/rtld.c b/elf/rtld.c -index 4a9109e..617e30e 100644 ---- a/elf/rtld.c -+++ b/elf/rtld.c -@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", +Index: libc/elf/rtld.c +=================================================================== +--- libc.orig/elf/rtld.c 2011-10-22 09:34:03.000000000 -0700 ++++ libc/elf/rtld.c 2011-12-05 20:17:15.863326893 -0800 +@@ -2264,6 +2264,7 @@ lnp->dont_free = 1; lnp = lnp->next; } @@ -105,11 +107,11 @@ index 4a9109e..617e30e 100644 if (l != &GL(dl_rtld_map)) _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, -diff --git a/include/link.h b/include/link.h -index e877104..051b99a 100644 ---- a/include/link.h -+++ b/include/link.h -@@ -192,6 +192,9 @@ struct link_map +Index: libc/include/link.h +=================================================================== +--- libc.orig/include/link.h 2011-10-22 09:32:35.000000000 -0700 ++++ libc/include/link.h 2011-12-05 20:17:15.863326893 -0800 +@@ -192,6 +192,9 @@ during LD_TRACE_PRELINKING=1 contains any DT_SYMBOLIC libraries. */ @@ -119,7 +121,7 @@ index e877104..051b99a 100644 /* Collected information about own RPATH directories. */ struct r_search_path_struct l_rpath_dirs; -@@ -240,9 +243,6 @@ struct link_map +@@ -240,9 +243,6 @@ /* List of object in order of the init and fini calls. */ struct link_map **l_initfini; diff --git a/meta/recipes-core/eglibc/eglibc_2.14.bb b/meta/recipes-core/eglibc/eglibc_2.14.bb index 501987525e..fd384f4705 100644 --- a/meta/recipes-core/eglibc/eglibc_2.14.bb +++ b/meta/recipes-core/eglibc/eglibc_2.14.bb @@ -1,6 +1,6 @@ require eglibc.inc -SRCREV = "15225" +SRCREV = "15870" DEPENDS += "gperf-native" PR = "r1" |