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