diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2009-02-23 08:37:35 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2009-02-23 08:37:35 +0000 |
commit | 17c7994988c08f229ee024467e0983f86461bd2b (patch) | |
tree | 5f01b2e1bcb583e3ac8c7369af9776ad4ea4b595 /ldso | |
parent | 1a08441c06b25efb87de33512674e80a8dedc63e (diff) |
- fix weak ssp symbol on some arches (Peter S. Mazinger)
Work around alleged binutils glitch with weak symbols on some arches.
See binutils ML, weak psm and vapier.
Diffstat (limited to 'ldso')
-rw-r--r-- | ldso/ldso/ldso.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c index 449328cac..37247cd9a 100644 --- a/ldso/ldso/ldso.c +++ b/ldso/ldso/ldso.c @@ -96,15 +96,13 @@ extern void _start(void); #ifdef __UCLIBC_HAS_SSP__ # include <dl-osinfo.h> -uintptr_t stack_chk_guard; +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; -# ifdef __UCLIBC_HAS_SSP_COMPAT__ -strong_alias(__stack_chk_guard,__guard) -# endif -# elif defined __UCLIBC_HAS_SSP_COMPAT__ +# endif +# ifdef __UCLIBC_HAS_SSP_COMPAT__ uintptr_t __guard attribute_relro; # endif #endif @@ -344,12 +342,12 @@ 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); -# ifdef __UCLIBC_HAS_SSP_COMPAT__ - __guard = stack_chk_guard; -# endif # else __stack_chk_guard = stack_chk_guard; # endif +# ifdef __UCLIBC_HAS_SSP_COMPAT__ + __guard = stack_chk_guard; +# endif #endif /* At this point we are now free to examine the user application, |