From 95a7a88f808434595c22b25e661cfd263ccdc08b Mon Sep 17 00:00:00 2001 From: Mikhail Kashkarov Date: Fri, 28 Jun 2019 21:31:32 +0300 Subject: [PATCH] Enable build-tunable asan shadow scale size Use the following for the project config (3 is default): %define asan_shadow_scale 3 Macros: asan_shadow_scale 3 :Macros Change-Id: I23b231f03d6ab47c6b4264f8c7837eb1197f4cc4 --- gcc/asan.h | 4 ++++ packaging/gcc-aarch64.spec | 1 + packaging/gcc-armv7hl.spec | 1 + packaging/gcc-armv7l.spec | 1 + packaging/linaro-gcc.spec | 1 + 5 files changed, 8 insertions(+) diff --git a/gcc/asan.h b/gcc/asan.h index 7d26b41..a8e9d72 100644 --- a/gcc/asan.h +++ b/gcc/asan.h @@ -66,7 +66,11 @@ extern hash_set *asan_used_labels; /* Shadow memory is found at (address >> ASAN_SHADOW_SHIFT) + asan_shadow_offset (). */ +#if defined(ASAN_SHADOW_SCALE) +#define ASAN_SHADOW_SHIFT ASAN_SHADOW_SCALE +#else #define ASAN_SHADOW_SHIFT 3 +#endif #define ASAN_SHADOW_GRANULARITY (1UL << ASAN_SHADOW_SHIFT) /* Red zone size, stack and global variables are padded by ASAN_RED_ZONE_SIZE diff --git a/packaging/gcc-aarch64.spec b/packaging/gcc-aarch64.spec index 443ff35..561e812 100644 --- a/packaging/gcc-aarch64.spec +++ b/packaging/gcc-aarch64.spec @@ -715,6 +715,7 @@ if [ ! -z "$(echo $RPM_OPT_FLAGS | grep -o "\B\-Wformat\-")" ]; then fi %{?asan: RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS -DASAN_INIT_FIRST) } +%{?asan_shadow_scale: RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS -Wp,-DASAN_SHADOW_SCALE=%{asan_shadow_scale})} %ifarch armv7l armv7hl aarch64 %undefine gcc_profiledbootstrap diff --git a/packaging/gcc-armv7hl.spec b/packaging/gcc-armv7hl.spec index ada6266..99449a5 100644 --- a/packaging/gcc-armv7hl.spec +++ b/packaging/gcc-armv7hl.spec @@ -715,6 +715,7 @@ if [ ! -z "$(echo $RPM_OPT_FLAGS | grep -o "\B\-Wformat\-")" ]; then fi %{?asan: RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS -DASAN_INIT_FIRST) } +%{?asan_shadow_scale: RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS -Wp,-DASAN_SHADOW_SCALE=%{asan_shadow_scale})} %ifarch armv7l armv7hl aarch64 %undefine gcc_profiledbootstrap diff --git a/packaging/gcc-armv7l.spec b/packaging/gcc-armv7l.spec index 45cade0..26c50c8 100644 --- a/packaging/gcc-armv7l.spec +++ b/packaging/gcc-armv7l.spec @@ -715,6 +715,7 @@ if [ ! -z "$(echo $RPM_OPT_FLAGS | grep -o "\B\-Wformat\-")" ]; then fi %{?asan: RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS -DASAN_INIT_FIRST) } +%{?asan_shadow_scale: RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS -Wp,-DASAN_SHADOW_SCALE=%{asan_shadow_scale})} %ifarch armv7l armv7hl aarch64 %undefine gcc_profiledbootstrap diff --git a/packaging/linaro-gcc.spec b/packaging/linaro-gcc.spec index 99f9a81..8fcae34 100644 --- a/packaging/linaro-gcc.spec +++ b/packaging/linaro-gcc.spec @@ -712,6 +712,7 @@ if [ ! -z "$(echo $RPM_OPT_FLAGS | grep -o "\B\-Wformat\-")" ]; then fi %{?asan: RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS -DASAN_INIT_FIRST) } +%{?asan_shadow_scale: RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS -Wp,-DASAN_SHADOW_SCALE=%{asan_shadow_scale})} %ifarch armv7l armv7hl aarch64 %undefine gcc_profiledbootstrap -- 2.7.4