summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c9
-rw-r--r--gcc/config/rs6000/rs6000.h2
-rw-r--r--gcc/config/rs6000/sysv4.h3
-rw-r--r--libsanitizer/ChangeLog4
-rw-r--r--libsanitizer/configure.tgt2
6 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0989c488e61..2ceada8b111 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 65ac42d71d1..d25c63c4310 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 2e23f6e523d..6edb0958525 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 70a5908fbea..8459a8dd4a8 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 b2a4b2999a6..b35ec16d313 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 26335391c4a..b8ab311cb4a 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*)
OpenPOWER on IntegriCloud