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.
Revert "eglibc: update to eglibc-2.16-19673"
This reverts commit b895a2a.
- Loading branch information
Showing
12 changed files
with
323 additions
and
387 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
File renamed without changes.
File renamed without changes.
134 changes: 134 additions & 0 deletions
134
packages/toolchain/devel/eglibc/patches/eglibc-2.15-18222-bad-fix.patch
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 |
---|---|---|
@@ -0,0 +1,134 @@ | ||
From 675155e9084e060fd0e1e637b843f14e82898aa5 Mon Sep 17 00:00:00 2001 | ||
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 -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 @@ | ||
if (map->l_direct_opencount > 0 || map->l_type != lt_loaded | ||
|| dl_close_state != not_pending) | ||
{ | ||
- if (map->l_direct_opencount == 0) | ||
- { | ||
- if (map->l_type == lt_loaded) | ||
- dl_close_state = rerun; | ||
- else if (map->l_type == lt_library) | ||
- { | ||
- struct link_map **oldp = map->l_initfini; | ||
- map->l_initfini = map->l_orig_initfini; | ||
- _dl_scope_free (oldp); | ||
- } | ||
- } | ||
+ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded) | ||
+ 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 -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. */ | ||
@@ -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 (); | ||
@@ -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); | ||
|
||
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) | ||
{ | ||
- /* Remove all additional names added to the objects. */ | ||
for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next) | ||
{ | ||
struct libname_list *lnp = l->l_libname->next; | ||
|
||
l->l_libname->next = NULL; | ||
|
||
+ /* Remove all additional names added to the objects. */ | ||
while (lnp != NULL) | ||
{ | ||
struct libname_list *old = lnp; | ||
@@ -279,6 +279,10 @@ | ||
if (! old->dont_free) | ||
free (old); | ||
} | ||
+ | ||
+ /* Free the initfini dependency list. */ | ||
+ if (l->l_free_initfini) | ||
+ free (l->l_initfini); | ||
} | ||
|
||
if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0 | ||
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 -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. | ||
- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. | ||
+ Copyright (C) 1995-2006, 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 | ||
@@ -192,6 +192,9 @@ | ||
during LD_TRACE_PRELINKING=1 | ||
contains any DT_SYMBOLIC | ||
libraries. */ | ||
+ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be | ||
+ freed, ie. not allocated with | ||
+ the dummy malloc in ld.so. */ | ||
|
||
/* Collected information about own RPATH directories. */ | ||
struct r_search_path_struct l_rpath_dirs; | ||
@@ -240,9 +243,6 @@ | ||
|
||
/* List of object in order of the init and fini calls. */ | ||
struct link_map **l_initfini; | ||
- /* The init and fini list generated at startup, saved when the | ||
- object is also loaded dynamically. */ | ||
- struct link_map **l_orig_initfini; | ||
|
||
/* List of the dependencies introduced through symbol binding. */ | ||
struct link_map_reldeps |
64 changes: 64 additions & 0 deletions
64
packages/toolchain/devel/eglibc/patches/eglibc-2.15-18222-libgcc_eh-1.patch
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 |
---|---|---|
@@ -0,0 +1,64 @@ | ||
diff -Naur glibc-2.11.orig/Makeconfig glibc-2.11/Makeconfig | ||
--- glibc-2.11.orig/Makeconfig 2009-10-30 13:17:08.000000000 -0400 | ||
+++ glibc-2.11/Makeconfig 2009-11-13 12:14:18.000000000 -0500 | ||
@@ -538,12 +538,20 @@ | ||
libunwind = -lunwind | ||
endif | ||
ifneq ($(have-as-needed),yes) | ||
- libgcc_eh := -lgcc_eh $(libunwind) | ||
+ ifneq ($(have-cc-with-libgcc_eh),yes) | ||
+ libgcc_eh := $(libunwind) | ||
+ else | ||
+ libgcc_eh := -lgcc_eh $(libunwind) | ||
+ endif | ||
else | ||
libgcc_eh := -Wl,--as-needed -lgcc_s$(libgcc_s_suffix) $(libunwind) -Wl,--no-as-needed | ||
endif | ||
gnulib := -lgcc $(libgcc_eh) | ||
-static-gnulib := -lgcc -lgcc_eh $(libunwind) | ||
+ifneq ($(have-cc-with-libgcc_eh),yes) | ||
+ static-gnulib := -lgcc $(libunwind) | ||
+else | ||
+ static-gnulib := -lgcc -lgcc_eh $(libunwind) | ||
+endif | ||
libc.so-gnulib := -lgcc | ||
endif | ||
ifeq ($(elf),yes) | ||
diff -Naur glibc-2.11.orig/config.make.in glibc-2.11/config.make.in | ||
--- glibc-2.11.orig/config.make.in 2009-10-30 13:17:08.000000000 -0400 | ||
+++ glibc-2.11/config.make.in 2009-11-13 12:14:18.000000000 -0500 | ||
@@ -64,6 +64,7 @@ | ||
have-libaudit = @have_libaudit@ | ||
have-libcap = @have_libcap@ | ||
have-cc-with-libunwind = @libc_cv_cc_with_libunwind@ | ||
+have-cc-with-libgcc_eh = @libc_cv_cc_with_libgcc_eh@ | ||
fno-unit-at-a-time = @fno_unit_at_a_time@ | ||
bind-now = @bindnow@ | ||
have-hash-style = @libc_cv_hashstyle@ | ||
diff -Naur glibc-2.11.orig/configure.in glibc-2.11/configure.in | ||
--- glibc-2.11.orig/configure.in 2009-10-30 13:17:08.000000000 -0400 | ||
+++ glibc-2.11/configure.in 2009-11-13 12:14:18.000000000 -0500 | ||
@@ -1505,6 +1505,23 @@ | ||
AC_DEFINE(HAVE_CC_WITH_LIBUNWIND) | ||
fi | ||
|
||
+ AC_CACHE_CHECK(whether to link against libgcc_eh, | ||
+ libc_cv_cc_with_libgcc_eh, [ | ||
+ cat > conftest.c <<EOF | ||
+int main (void) { return 0; } | ||
+EOF | ||
+ if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \ | ||
+ conftest.c -v 2>&1 >/dev/null | grep -q " -lgcc_eh "; then | ||
+ libc_cv_cc_with_libgcc_eh=yes | ||
+ else | ||
+ libc_cv_cc_with_libgcc_eh=no | ||
+ fi | ||
+ rm -f conftest*]) | ||
+ AC_SUBST(libc_cv_cc_with_libgcc_eh) | ||
+ if test $libc_cv_cc_with_libgcc_eh = yes; then | ||
+ AC_DEFINE(HAVE_CC_WITH_LIBGCC_EH) | ||
+ fi | ||
+ | ||
AC_CACHE_CHECK(for -z nodelete option, | ||
libc_cv_z_nodelete, [dnl | ||
cat > conftest.c <<EOF |
59 changes: 59 additions & 0 deletions
59
packages/toolchain/devel/eglibc/patches/eglibc-2.15-18222-restore-rpc+nis.patch
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 |
---|---|---|
@@ -0,0 +1,59 @@ | ||
diff -Naur eglibc-2.14-15360/include/libc-symbols.h eglibc-2.14-15360.patch/include/libc-symbols.h | ||
--- eglibc-2.14-15360/include/libc-symbols.h 2011-09-17 16:13:20.000000000 +0200 | ||
+++ eglibc-2.14-15360.patch/include/libc-symbols.h 2011-09-18 19:00:16.559302295 +0200 | ||
@@ -656,7 +656,7 @@ | ||
# define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) | ||
# define libc_hidden_def(name) hidden_def (name) | ||
# define libc_hidden_weak(name) hidden_weak (name) | ||
-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version) | ||
+# define libc_hidden_nolink(name, version) hidden_def (name) | ||
# define libc_hidden_ver(local, name) hidden_ver (local, name) | ||
# define libc_hidden_data_def(name) hidden_data_def (name) | ||
# define libc_hidden_data_weak(name) hidden_data_weak (name) | ||
diff -Naur eglibc-2.14-15360/nis/Makefile eglibc-2.14-15360.patch/nis/Makefile | ||
--- eglibc-2.14-15360/nis/Makefile 2011-09-17 16:13:06.000000000 +0200 | ||
+++ eglibc-2.14-15360.patch/nis/Makefile 2011-09-18 19:00:16.526301845 +0200 | ||
@@ -25,9 +25,9 @@ | ||
|
||
aux := nis_hash | ||
|
||
+headers := $(wildcard rpcsvc/*.[hx]) | ||
distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \ | ||
- nisplus-parser.h nis_xdr.h nss \ | ||
- $(wildcard rpcsvc/*.[hx]) | ||
+ nisplus-parser.h nis_xdr.h nss | ||
|
||
# These are the databases available for the nis (and perhaps later nisplus) | ||
# service. This must be a superset of the services in nss. | ||
@@ -78,6 +78,8 @@ | ||
|
||
include ../Rules | ||
|
||
+CFLAGS-nis_findserv.c += -fno-strict-aliasing | ||
+CFLAGS-ypclnt.c += -fno-strict-aliasing | ||
|
||
$(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version) | ||
$(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \ | ||
diff -Naur eglibc-2.14-15360/sunrpc/Makefile eglibc-2.14-15360.patch/sunrpc/Makefile | ||
--- eglibc-2.14-15360/sunrpc/Makefile 2011-09-17 16:13:12.000000000 +0200 | ||
+++ eglibc-2.14-15360.patch/sunrpc/Makefile 2011-09-18 19:01:31.772325016 +0200 | ||
@@ -55,7 +55,7 @@ | ||
des_crypt.h) | ||
headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ | ||
$(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h | ||
-headers = rpc/netdb.h | ||
+headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc) | ||
generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ | ||
$(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen | ||
generated-dirs := rpcsvc | ||
@@ -165,6 +165,10 @@ | ||
|
||
CPPFLAGS += -D_RPC_THREAD_SAFE_ | ||
|
||
+CFLAGS-clnt_tcp.c += -fno-strict-aliasing | ||
+CFLAGS-clnt_udp.c += -fno-strict-aliasing | ||
+CFLAGS-clnt_unix.c += -fno-strict-aliasing | ||
+ | ||
$(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so | ||
$(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so | ||
$(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so |
8 changes: 4 additions & 4 deletions
8
...es/eglibc-2.16-19673-select_fd_type.patch → ...es/eglibc-2.15-18222-select_fd_type.patch
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
Oops, something went wrong.