On 6/05/2012, at 7:02 PM, Igor Zamyatin wrote:

> Hi!
> 
> The patch enables stack protector for Android.
> Android targets don't contain necessary information in features.h so
> we explicitly enable stack protector for Android.
> 
> Bootstrapped and regtested on x86_64. Ok to commit?
> 
> Thanks,
> Igor
> 
> 2012-05-06  Igor Zamyatin  <igor.zamya...@intel.com>
> 
>        * configure.ac: Stack protector enabling for Android targets.
>        * configure: Regenerate.
> 
> 
> diff --git a/gcc/configure.ac b/gcc/configure.ac
> index 86b4bea..c1012d6 100644
> --- a/gcc/configure.ac
> +++ b/gcc/configure.ac
> @@ -4545,6 +4545,8 @@ AC_CACHE_CHECK(__stack_chk_fail in target C library,
>       gcc_cv_libc_provides_ssp,
>       [gcc_cv_libc_provides_ssp=no
>     case "$target" in
> +       *-android*)
> +         gcc_cv_libc_provides_ssp=yes;;
>        *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
>       [# glibc 2.4 and later provides __stack_chk_fail and
>       # either __stack_chk_guard, or TLS access to stack guard canary.


What you really want is to enable stack protector for Bionic libc, which is 
often synonymous with -android* target, but not always.  Let's enable ssp based 
on whether __BIONIC__ is defined in the libc headers (i.e., add a grep test for 
__BIONIC__ in <sys/cdefs.h>)

Also please add a comment along the lines of "all versions of Bionic support 
stack protector".

Which exact target did you test this on?  X86_64-*-* is a pretty broad 
definition.

Thank you,

--
Maxim Kuvyrkov
CodeSourcery / Mentor Graphics

Reply via email to