diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 2 | ||||
-rw-r--r-- | gcc/config/rs6000/sysv4.h | 3 | ||||
-rw-r--r-- | libsanitizer/ChangeLog | 4 | ||||
-rw-r--r-- | libsanitizer/configure.tgt | 2 |
6 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0989c48..2ceada8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-12-06 Peter Bergner <bergner@vnet.ibm.com> + + * config/rs6000/sysv4.h (TARGET_ASAN_SHADOW_OFFSET): Define. + * config/rs6000/rs6000.c (rs6000_asan_shadow_offset): New function. + * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Disable if using ASAN. + 2012-12-06 Jakub Jelinek <jakub@redhat.com> PR fortran/55395 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 65ac42d..d25c63c 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -27529,6 +27529,15 @@ rs6000_final_prescan_insn (rtx insn, rtx *operand ATTRIBUTE_UNUSED, } } +/* Implement the TARGET_ASAN_SHADOW_OFFSET hook. */ + +#if TARGET_ELF +static unsigned HOST_WIDE_INT +rs6000_asan_shadow_offset (void) +{ + return (unsigned HOST_WIDE_INT) 1 << (TARGET_64BIT ? 41 : 29); +} +#endif /* Mask options that we want to support inside of attribute((target)) and #pragma GCC target operations. Note, we do not include things like diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 2e23f6e..6edb095 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -1406,7 +1406,7 @@ extern enum reg_class rs6000_constraints[RS6000_CONSTRAINT_MAX]; On the RS/6000, we grow upwards, from the area after the outgoing arguments. */ -#define FRAME_GROWS_DOWNWARD (flag_stack_protect != 0) +#define FRAME_GROWS_DOWNWARD (flag_stack_protect != 0 || flag_asan != 0) /* Size of the outgoing register save area */ #define RS6000_REG_SAVE ((DEFAULT_ABI == ABI_AIX \ diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h index 70a5908..8459a8d 100644 --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h @@ -971,6 +971,9 @@ ncrtn.o%s" #define TARGET_ASM_FILE_END rs6000_elf_file_end +#undef TARGET_ASAN_SHADOW_OFFSET +#define TARGET_ASAN_SHADOW_OFFSET rs6000_asan_shadow_offset + /* This target uses the sysv4.opt file. */ #define TARGET_USES_SYSV4_OPT 1 diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog index b2a4b29..b35ec16 100644 --- a/libsanitizer/ChangeLog +++ b/libsanitizer/ChangeLog @@ -1,3 +1,7 @@ +2012-12-06 Peter Bergner <bergner@vnet.ibm.com> + + * configure.tgt: Enable build on powerpc*-linux. + 2012-12-06 Jack Howarth <howarth@bromo.med.uc.edu> PR 55599/sanitizer diff --git a/libsanitizer/configure.tgt b/libsanitizer/configure.tgt index 2633539..b8ab311 100644 --- a/libsanitizer/configure.tgt +++ b/libsanitizer/configure.tgt @@ -25,6 +25,8 @@ case "${target}" in TSAN_SUPPORTED=yes fi ;; + powerpc*-*-linux*) + ;; sparc*-*-linux*) ;; x86_64-*-darwin* | i?86-*-darwin*) |