[PATCH, Android] Stack protector enabling for Android target

H.J. Lu hjl.tools@gmail.com
Mon May 7 18:08:00 GMT 2012


On Mon, May 7, 2012 at 11:04 AM, Maxim Kuvyrkov <maxim@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.zamyatin@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.



More information about the Gcc-patches mailing list