diff options
author | Christophe Lyon <christophe.lyon@linaro.org> | 2014-09-26 13:07:42 +0000 |
---|---|---|
committer | Christophe Lyon <clyon@gcc.gnu.org> | 2014-09-26 15:07:42 +0200 |
commit | a3125fc2339aea0f552800ae4a052af49e16e54e (patch) | |
tree | 9fce4544423abd6254839964208ba2182026f2c4 | |
parent | bf898b300eea2cd87a1afcadd886c7ae3d593091 (diff) | |
download | gcc-a3125fc2339aea0f552800ae4a052af49e16e54e.zip gcc-a3125fc2339aea0f552800ae4a052af49e16e54e.tar.gz gcc-a3125fc2339aea0f552800ae4a052af49e16e54e.tar.bz2 |
[AArch64] Enable Address Sanitizer.
2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
[AArch64] Enable Address Sanitizer.
gcc/
* config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
(CC1_SPEC): Define.
* config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
(TARGET_ASAN_SHADOW_OFFSET): Define.
libsanitzer/
* configure.tgt: Enable build on aarch64*-linux.
From-SVN: r215642
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-linux.h | 6 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 11 | ||||
-rw-r--r-- | libsanitizer/ChangeLog | 4 | ||||
-rw-r--r-- | libsanitizer/configure.tgt | 2 |
5 files changed, 30 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d92a705..b003923 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-09-26 Christophe Lyon <christophe.lyon@linaro.org> + + * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define. + (CC1_SPEC): Define. + * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function. + (TARGET_ASAN_SHADOW_OFFSET): Define. + 2014-09-26 Martin Liska <mliska@suse.cz> * cgraph.c (cgraph_node::release_body): New argument keep_arguments diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h index 1731432..3fbde93 100644 --- a/gcc/config/aarch64/aarch64-linux.h +++ b/gcc/config/aarch64/aarch64-linux.h @@ -23,6 +23,12 @@ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" +#undef ASAN_CC1_SPEC +#define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" + +#undef CC1_SPEC +#define CC1_SPEC GNU_USER_TARGET_CC1_SPEC ASAN_CC1_SPEC + #define CPP_SPEC "%{pthread:-D_REENTRANT}" #define LINUX_TARGET_LINK_SPEC "%{h*} \ diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 68c78f6..5144c35 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -9777,6 +9777,14 @@ aarch64_expand_movmem (rtx *operands) return true; } +/* Implement the TARGET_ASAN_SHADOW_OFFSET hook. */ + +static unsigned HOST_WIDE_INT +aarch64_asan_shadow_offset (void) +{ + return (HOST_WIDE_INT_1 << 36); +} + #undef TARGET_ADDRESS_COST #define TARGET_ADDRESS_COST aarch64_address_cost @@ -10023,6 +10031,9 @@ aarch64_expand_movmem (rtx *operands) #undef TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS #define TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS true +#undef TARGET_ASAN_SHADOW_OFFSET +#define TARGET_ASAN_SHADOW_OFFSET aarch64_asan_shadow_offset + struct gcc_target targetm = TARGET_INITIALIZER; #include "gt-aarch64.h" diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog index 75c24b4..eaabf43 100644 --- a/libsanitizer/ChangeLog +++ b/libsanitizer/ChangeLog @@ -1,3 +1,7 @@ +2014-09-26 Christophe Lyon <christophe.lyon@linaro.org> + + * configure.tgt: Enable build on aarch64*-linux. + 2014-09-19 Kostya Serebryany <kcc@google.com> * All source files: Merge from upstream r218156. diff --git a/libsanitizer/configure.tgt b/libsanitizer/configure.tgt index 6de4a65..2c302ab 100644 --- a/libsanitizer/configure.tgt +++ b/libsanitizer/configure.tgt @@ -35,6 +35,8 @@ case "${target}" in ;; arm*-*-linux*) ;; + aarch64*-*-linux*) + ;; x86_64-*-darwin[1]* | i?86-*-darwin[1]*) TSAN_SUPPORTED=no ;; |