4839e42
2017-01-23  Jakub Jelinek  <jakub@redhat.com>
4839e42
4839e42
gcc/
4839e42
	* config/s390/s390.c (s390_asan_shadow_offset): New function.
4839e42
	(TARGET_ASAN_SHADOW_OFFSET): Redefine.
4839e42
libsanitizer/
4839e42
	* configure.tgt: Enable asan and ubsan on 64-bit s390*-*-linux*.
4839e42
4839e42
--- gcc/config/s390/s390.c.jj	2017-01-19 16:58:25.000000000 +0100
4839e42
+++ gcc/config/s390/s390.c	2017-01-23 16:32:28.220398187 +0100
4839e42
@@ -15435,6 +15435,14 @@ s390_excess_precision (enum excess_preci
4839e42
   return FLT_EVAL_METHOD_UNPREDICTABLE;
4839e42
 }
4839e42
 
4839e42
+/* Implement the TARGET_ASAN_SHADOW_OFFSET hook.  */
4839e42
+
4839e42
+static unsigned HOST_WIDE_INT
4839e42
+s390_asan_shadow_offset (void)
4839e42
+{
4839e42
+  return TARGET_64BIT ? HOST_WIDE_INT_1U << 52 : HOST_WIDE_INT_UC (0x20000000);
4839e42
+}
4839e42
+
4839e42
 /* Initialize GCC target structure.  */
4839e42
 
4839e42
 #undef  TARGET_ASM_ALIGNED_HI_OP
4839e42
@@ -15536,6 +15544,8 @@ s390_excess_precision (enum excess_preci
4839e42
 #define TARGET_BUILD_BUILTIN_VA_LIST s390_build_builtin_va_list
4839e42
 #undef TARGET_EXPAND_BUILTIN_VA_START
4839e42
 #define TARGET_EXPAND_BUILTIN_VA_START s390_va_start
4839e42
+#undef TARGET_ASAN_SHADOW_OFFSET
4839e42
+#define TARGET_ASAN_SHADOW_OFFSET s390_asan_shadow_offset
4839e42
 #undef TARGET_GIMPLIFY_VA_ARG_EXPR
4839e42
 #define TARGET_GIMPLIFY_VA_ARG_EXPR s390_gimplify_va_arg
4839e42
 
4839e42
--- libsanitizer/configure.tgt.jj	2017-01-23 15:25:21.000000000 +0100
4839e42
+++ libsanitizer/configure.tgt	2017-01-23 15:36:40.787456320 +0100
4839e42
@@ -39,6 +39,11 @@ case "${target}" in
4839e42
 	;;
4839e42
   sparc*-*-linux*)
4839e42
 	;;
4839e42
+  s390*-*-linux*)
4839e42
+	if test x$ac_cv_sizeof_void_p = x4; then
4839e42
+		UNSUPPORTED=1
4839e42
+	fi
4839e42
+	;;
4839e42
   arm*-*-linux*)
4839e42
 	;;
4839e42
   aarch64*-*-linux*)