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