diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2019-02-15 23:08:49 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2019-02-15 23:08:49 +0000 |
commit | 34c5627c9cfea3eecbfbe3a1edeaaa703ddee553 (patch) | |
tree | 482e43b35197675e2b407dafeb3090d3324daf4f | |
parent | 362432c00db860483058ff609a893151bf8e4b1c (diff) | |
download | gcc-34c5627c9cfea3eecbfbe3a1edeaaa703ddee553.zip gcc-34c5627c9cfea3eecbfbe3a1edeaaa703ddee553.tar.gz gcc-34c5627c9cfea3eecbfbe3a1edeaaa703ddee553.tar.bz2 |
linux.h (ASAN_CC1_SPEC): Define.
* config/sparc/linux.h (ASAN_CC1_SPEC): Define.
(CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
* config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
(CC1_SPEC): Likewise.
* config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
From-SVN: r268950
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/sparc/linux.h | 9 | ||||
-rw-r--r-- | gcc/config/sparc/linux64.h | 19 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 2 |
4 files changed, 24 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 63d1f41..c430cfd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,13 @@ 2019-02-15 Eric Botcazou <ebotcazou@adacore.com> + * config/sparc/linux.h (ASAN_CC1_SPEC): Define. + (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC. + * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise. + (CC1_SPEC): Likewise. + * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit. + +2019-02-15 Eric Botcazou <ebotcazou@adacore.com> + * asan.c (asan_emit_stack_protection): Use full-sized mask to align the base address on 64-bit strict-alignment platforms. diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h index 2db9ea2..08476f1 100644 --- a/gcc/config/sparc/linux.h +++ b/gcc/config/sparc/linux.h @@ -54,10 +54,11 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define DRIVER_SELF_SPECS MCPU_MTUNE_NATIVE_SPECS -/* This is for -profile to use -lc_p instead of -lc. */ -#undef CC1_SPEC -#define CC1_SPEC "%{profile:-p} \ -" +#undef ASAN_CC1_SPEC +#define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" + +#undef CC1_SPEC +#define CC1_SPEC GNU_USER_TARGET_CC1_SPEC ASAN_CC1_SPEC #undef SIZE_TYPE #define SIZE_TYPE "unsigned int" diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h index 21e1300..bbf5bab 100644 --- a/gcc/config/sparc/linux64.h +++ b/gcc/config/sparc/linux64.h @@ -143,24 +143,25 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define DRIVER_SELF_SPECS MCPU_MTUNE_NATIVE_SPECS -#undef CC1_SPEC +#undef ASAN_CC1_SPEC +#define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" + +#undef CC1_SPEC #if DEFAULT_ARCH32_P -#define CC1_SPEC "%{profile:-p} \ -%{m32:%{m64:%emay not use both -m32 and -m64}} \ +#define CC1_SPEC GNU_USER_TARGET_CC1_SPEC ASAN_CC1_SPEC \ +"%{m32:%{m64:%emay not use both -m32 and -m64}} \ %{m64:-mptr64 -mstack-bias -mlong-double-128 \ %{!mcpu*:-mcpu=ultrasparc} \ - %{!mno-vis:%{!mcpu=v9:-mvis}}} \ -" + %{!mno-vis:%{!mcpu=v9:-mvis}}}" #else -#define CC1_SPEC "%{profile:-p} \ -%{m32:%{m64:%emay not use both -m32 and -m64}} \ +#define CC1_SPEC GNU_USER_TARGET_CC1_SPEC ASAN_CC1_SPEC \ +"%{m32:%{m64:%emay not use both -m32 and -m64}} \ %{m32:-mptr32 -mno-stack-bias %{!mlong-double-128:-mlong-double-64} \ %{!mcpu*:-mcpu=cypress}} \ %{mv8plus:-mptr32 -mno-stack-bias %{!mlong-double-128:-mlong-double-64} \ %{!mcpu*:-mcpu=v9}} \ %{!m32:%{!mcpu*:-mcpu=ultrasparc}} \ -%{!mno-vis:%{!m32:%{!mcpu=v9:-mvis}}} \ -" +%{!mno-vis:%{!m32:%{!mcpu=v9:-mvis}}}" #endif /* Support for a compile-time default CPU, et cetera. The rules are: diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 8bb59a6..faddd06 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -12524,7 +12524,7 @@ sparc_init_machine_status (void) static unsigned HOST_WIDE_INT sparc_asan_shadow_offset (void) { - return TARGET_ARCH64 ? HOST_WIDE_INT_C (0x7fff8000) : (HOST_WIDE_INT_1 << 29); + return TARGET_ARCH64 ? (HOST_WIDE_INT_1 << 43) : (HOST_WIDE_INT_1 << 29); } /* This is called from dwarf2out.c via TARGET_ASM_OUTPUT_DWARF_DTPREL. |