aboutsummaryrefslogtreecommitdiffstats
path: root/main/libc0.9.32/0001-Compatible-stack-protector-for-non-Thread-Local-stor.patch
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-12-23 16:30:18 +0100
committerNatanael Copa <ncopa@alpinelinux.org>2011-12-23 16:33:50 +0100
commit293f29e8c45ca0fcb064107e275a477ad1913106 (patch)
treea79d2b2b93af581c861488f2bca773e4751288f0 /main/libc0.9.32/0001-Compatible-stack-protector-for-non-Thread-Local-stor.patch
parent453d9efbeb9055b3762960fb09894a04ded1495f (diff)
downloadaports-293f29e8c45ca0fcb064107e275a477ad1913106.tar.bz2
aports-293f29e8c45ca0fcb064107e275a477ad1913106.tar.xz
main/libc0.9.32: reorganize patches
We keep track of our patches in git now: http://git.alpinelinux.org/cgit/uClibc-alpine This is so its easier to keep track of upstream and make sure that our patches are upstreamed. we also bump pkgrel so we make sure we get the patches tested properly
Diffstat (limited to 'main/libc0.9.32/0001-Compatible-stack-protector-for-non-Thread-Local-stor.patch')
-rw-r--r--main/libc0.9.32/0001-Compatible-stack-protector-for-non-Thread-Local-stor.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/main/libc0.9.32/0001-Compatible-stack-protector-for-non-Thread-Local-stor.patch b/main/libc0.9.32/0001-Compatible-stack-protector-for-non-Thread-Local-stor.patch
new file mode 100644
index 0000000000..b60dd446e7
--- /dev/null
+++ b/main/libc0.9.32/0001-Compatible-stack-protector-for-non-Thread-Local-stor.patch
@@ -0,0 +1,72 @@
+From 3fb4bfcafbcaff3522e7bab48ff03460fec99023 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Fri, 23 Dec 2011 14:06:09 +0100
+Subject: [PATCH] Compatible stack protector for non Thread Local storage
+
+Before we had thread local storage the __stack_chk_guard was a global
+variable that was referenced to by the older binaries.
+
+We since then have changed ABI so this patch can probably go away.
+---
+ ldso/ldso/ldso.c | 7 +------
+ libc/misc/internals/__uClibc_main.c | 8 +-------
+ 2 files changed, 2 insertions(+), 13 deletions(-)
+
+diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
+index 7ee9257..3585cb7 100644
+--- a/ldso/ldso/ldso.c
++++ b/ldso/ldso/ldso.c
+@@ -103,11 +103,7 @@ extern void _start(void);
+ #ifdef __UCLIBC_HAS_SSP__
+ # include <dl-osinfo.h>
+ static uintptr_t stack_chk_guard;
+-# ifndef THREAD_SET_STACK_GUARD
+-/* Only exported for architectures that don't store the stack guard canary
+- * in local thread area. */
+ uintptr_t __stack_chk_guard attribute_relro;
+-# endif
+ # ifdef __UCLIBC_HAS_SSP_COMPAT__
+ uintptr_t __guard attribute_relro;
+ # endif
+@@ -951,9 +947,8 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
+ stack_chk_guard = _dl_setup_stack_chk_guard ();
+ # ifdef THREAD_SET_STACK_GUARD
+ THREAD_SET_STACK_GUARD (stack_chk_guard);
+-# else
+- __stack_chk_guard = stack_chk_guard;
+ # endif
++ __stack_chk_guard = stack_chk_guard;
+ # ifdef __UCLIBC_HAS_SSP_COMPAT__
+ __guard = stack_chk_guard;
+ # endif
+diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c
+index 315365a..78cd058 100644
+--- a/libc/misc/internals/__uClibc_main.c
++++ b/libc/misc/internals/__uClibc_main.c
+@@ -46,12 +46,7 @@ void *__libc_stack_end = NULL;
+ # ifdef __UCLIBC_HAS_SSP__
+ # include <dl-osinfo.h>
+ static uintptr_t stack_chk_guard;
+-# ifndef THREAD_SET_STACK_GUARD
+-/* Only exported for architectures that don't store the stack guard canary
+- * in thread local area. */
+-/* for gcc-4.1 non-TLS */
+ uintptr_t __stack_chk_guard attribute_relro;
+-# endif
+ /* for gcc-3.x + Etoh ssp */
+ # ifdef __UCLIBC_HAS_SSP_COMPAT__
+ uintptr_t __guard attribute_relro;
+@@ -247,9 +242,8 @@ void __uClibc_init(void)
+ stack_chk_guard = _dl_setup_stack_chk_guard();
+ # ifdef THREAD_SET_STACK_GUARD
+ THREAD_SET_STACK_GUARD (stack_chk_guard);
+-# else
+- __stack_chk_guard = stack_chk_guard;
+ # endif
++ __stack_chk_guard = stack_chk_guard;
+ # ifdef __UCLIBC_HAS_SSP_COMPAT__
+ __guard = stack_chk_guard;
+ # endif
+--
+1.7.8
+