forked from LibreELEC/LibreELEC.tv
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
eglibc: update to eglibc-2.14.1-15769
Signed-off-by: Stephan Raue <[email protected]>
- Loading branch information
Showing
7 changed files
with
32 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,18 +3,17 @@ From: Andreas Schwab <[email protected]> | |
Date: Wed, 22 Sep 2010 12:06:30 +0200 | ||
Subject: [PATCH] Fix memory leak on init/fini dependency list | ||
|
||
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 | ||
diff -Naur eglibc-2.14.1-15769/elf/dl-close.c eglibc-2.14.1-15769.patch/elf/dl-close.c | ||
--- eglibc-2.14.1-15769/elf/dl-close.c 2011-11-10 17:59:49.000000000 +0100 | ||
+++ eglibc-2.14.1-15769.patch/elf/dl-close.c 2011-11-11 13:11:54.317765891 +0100 | ||
@@ -1,5 +1,5 @@ | ||
/* Close a shared object opened by `_dl_open'. | ||
- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. | ||
+ Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc. | ||
This file is part of the GNU C Library. | ||
|
||
The GNU C Library is free software; you can redistribute it and/or | ||
@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map) | ||
@@ -119,17 +119,8 @@ | ||
if (map->l_direct_opencount > 0 || map->l_type != lt_loaded | ||
|| dl_close_state != not_pending) | ||
{ | ||
|
@@ -33,39 +32,39 @@ 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)) | ||
diff -Naur eglibc-2.14.1-15769/elf/dl-deps.c eglibc-2.14.1-15769.patch/elf/dl-deps.c | ||
--- eglibc-2.14.1-15769/elf/dl-deps.c 2011-11-10 17:59:49.000000000 +0100 | ||
+++ eglibc-2.14.1-15769.patch/elf/dl-deps.c 2011-11-11 13:14:07.711207504 +0100 | ||
@@ -478,6 +478,7 @@ | ||
nneeded * sizeof needed[0]); | ||
atomic_write_barrier (); | ||
l->l_initfini = l_initfini; | ||
+ l->l_free_initfini = 1; | ||
} | ||
|
||
/* 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; | ||
+ map->l_free_initfini = 1; | ||
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) | ||
|
||
if (errno_reason) | ||
_dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname, | ||
diff -Naur eglibc-2.14.1-15769/elf/dl-libc.c eglibc-2.14.1-15769.patch/elf/dl-libc.c | ||
--- eglibc-2.14.1-15769/elf/dl-libc.c 2011-11-10 17:59:49.000000000 +0100 | ||
+++ eglibc-2.14.1-15769.patch/elf/dl-libc.c 2011-11-11 13:11:54.319765853 +0100 | ||
@@ -265,13 +265,13 @@ | ||
|
||
for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) | ||
{ | ||
|
@@ -80,7 +79,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); | ||
} | ||
|
@@ -91,22 +90,20 @@ 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", | ||
diff -Naur eglibc-2.14.1-15769/elf/rtld.c eglibc-2.14.1-15769.patch/elf/rtld.c | ||
--- eglibc-2.14.1-15769/elf/rtld.c 2011-11-10 17:59:49.000000000 +0100 | ||
+++ eglibc-2.14.1-15769.patch/elf/rtld.c 2011-11-11 13:11:54.320765834 +0100 | ||
@@ -2264,6 +2264,7 @@ | ||
lnp->dont_free = 1; | ||
lnp = lnp->next; | ||
} | ||
+ l->l_free_initfini = 0; | ||
|
||
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 | ||
diff -Naur eglibc-2.14.1-15769/include/link.h eglibc-2.14.1-15769.patch/include/link.h | ||
--- eglibc-2.14.1-15769/include/link.h 2011-11-10 17:59:51.000000000 +0100 | ||
+++ eglibc-2.14.1-15769.patch/include/link.h 2011-11-11 13:11:54.321765815 +0100 | ||
@@ -1,6 +1,6 @@ | ||
/* Data structure for communication from the run-time dynamic linker for | ||
loaded ELF shared objects. | ||
|
@@ -115,7 +112,7 @@ index e877104..051b99a 100644 | |
This file is part of the GNU C Library. | ||
|
||
The GNU C Library is free software; you can redistribute it and/or | ||
@@ -192,6 +192,9 @@ struct link_map | ||
@@ -192,6 +192,9 @@ | ||
during LD_TRACE_PRELINKING=1 | ||
contains any DT_SYMBOLIC | ||
libraries. */ | ||
|
@@ -125,7 +122,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; | ||
|
File renamed without changes.
File renamed without changes.
File renamed without changes.