On Mon, May 7, 2012 at 11:04 AM, Maxim Kuvyrkov <ma...@codesourcery.com> wrote: > 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. >
We are working on x86_64-*-linux-android target, which uses x32. -- H.J.