Message ID | 1465297576-10981-11-git-send-email-nix@esperi.org.uk |
---|---|
State | Superseded |
Headers | show |
diff --git a/sysdeps/generic/symbol-hacks.h b/sysdeps/generic/symbol-hacks.h index ce576c9..fd3d2de 100644 --- a/sysdeps/generic/symbol-hacks.h +++ b/sysdeps/generic/symbol-hacks.h @@ -5,3 +5,9 @@ asm ("memmove = __GI_memmove"); asm ("memset = __GI_memset"); asm ("memcpy = __GI_memcpy"); #endif + +/* -fstack-protector generates calls to __stack_chk_fail, which need + similar adjustments to avoid going through the PLT. */ +#if !defined __ASSEMBLER__ && IS_IN (libc) && defined SHARED +asm ("__stack_chk_fail = __stack_chk_fail_local"); +#endif
From: Adhemerval Zanella <adhemerval.zanella@linaro.org> We use the same assembler-macro trick we use to de-PLTize compiler-generated libcalls to memcpy and memset to redirect __stack_chk_fail to __stack_chk_fail_local. v5: New. v6: Only do it within the shared library: with __stack_chk_fail_local in libc_pic.a now we don't need to worry about calls from inside other routines in libc_nonshared.a any more. * sysdeps/generic/symbol-hacks.h (__stack_chk_fail): Add internal alias. --- sysdeps/generic/symbol-hacks.h | 6 ++++++ 1 file changed, 6 insertions(+) -- 2.8.2.202.g98588b6