Patchwork [committed] Revert 0x7fff8000 shadow offset for now

login
register
mail settings
Submitter Jakub Jelinek
Date Feb. 13, 2013, 4:07 p.m.
Message ID <20130213160753.GY4385@tucnak.redhat.com>
Download mbox | patch
Permalink /patch/220193/
State New
Headers show

Comments

Jakub Jelinek - Feb. 13, 2013, 4:07 p.m.
Hi!

So that we don't keep GCC trunk in known broken state, I've
bootstrapped/regtested this change and installed it.

2013-02-13  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.

	* asan/asan_mapping.h (SHADOW_OFFSET): Set to (1ULL << 44) on x86-64.


	Jakub
Konstantin Serebryany - Feb. 14, 2013, 8:41 a.m.
Thanks!
This'll let us think about fixing 7fff8000+prelink w/o a rush.

Still, can we switch to using asan-rt in
ASAN_FLEXIBLE_MAPPING_AND_OFFSET=1 mode?
This way we will have fewer differences between gcc variant and upstream
and will be able to change the offset w/o changing the rt at all.
(and this will allow simpler experiments with zero base in gcc).

--kcc


On Wed, Feb 13, 2013 at 8:07 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> Hi!
>
> So that we don't keep GCC trunk in known broken state, I've
> bootstrapped/regtested this change and installed it.
>
> 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
>
>         * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
>
>         * asan/asan_mapping.h (SHADOW_OFFSET): Set to (1ULL << 44) on x86-64.
>
> --- gcc/config/i386/i386.c.jj   2013-02-13 11:53:42.000000000 +0100
> +++ gcc/config/i386/i386.c      2013-02-13 14:15:19.670007874 +0100
> @@ -5436,8 +5436,7 @@ ix86_legitimate_combined_insn (rtx insn)
>  static unsigned HOST_WIDE_INT
>  ix86_asan_shadow_offset (void)
>  {
> -  return TARGET_LP64 ? (TARGET_MACHO ? (HOST_WIDE_INT_1 << 44)
> -                                    : HOST_WIDE_INT_C (0x7fff8000))
> +  return TARGET_LP64 ? (HOST_WIDE_INT_1 << 44)
>                      : (HOST_WIDE_INT_1 << 29);
>  }
>
> --- libsanitizer/asan/asan_mapping.h.jj 2013-02-13 11:53:43.000000000 +0100
> +++ libsanitizer/asan/asan_mapping.h    2013-02-13 14:20:34.032179688 +0100
> @@ -36,11 +36,7 @@ extern SANITIZER_INTERFACE_ATTRIBUTE upt
>  #   if defined(__powerpc64__)
>  #    define SHADOW_OFFSET (1ULL << 41)
>  #   else
> -#    if ASAN_MAC
> -#     define SHADOW_OFFSET (1ULL << 44)
> -#    else
> -#     define SHADOW_OFFSET 0x7fff8000ULL
> -#    endif
> +#    define SHADOW_OFFSET (1ULL << 44)
>  #   endif
>  #  endif
>  # endif
>
>         Jakub

Patch

--- gcc/config/i386/i386.c.jj	2013-02-13 11:53:42.000000000 +0100
+++ gcc/config/i386/i386.c	2013-02-13 14:15:19.670007874 +0100
@@ -5436,8 +5436,7 @@  ix86_legitimate_combined_insn (rtx insn)
 static unsigned HOST_WIDE_INT
 ix86_asan_shadow_offset (void)
 {
-  return TARGET_LP64 ? (TARGET_MACHO ? (HOST_WIDE_INT_1 << 44)
-				     : HOST_WIDE_INT_C (0x7fff8000))
+  return TARGET_LP64 ? (HOST_WIDE_INT_1 << 44)
 		     : (HOST_WIDE_INT_1 << 29);
 }
 
--- libsanitizer/asan/asan_mapping.h.jj	2013-02-13 11:53:43.000000000 +0100
+++ libsanitizer/asan/asan_mapping.h	2013-02-13 14:20:34.032179688 +0100
@@ -36,11 +36,7 @@  extern SANITIZER_INTERFACE_ATTRIBUTE upt
 #   if defined(__powerpc64__)
 #    define SHADOW_OFFSET (1ULL << 41)
 #   else
-#    if ASAN_MAC
-#     define SHADOW_OFFSET (1ULL << 44)
-#    else
-#     define SHADOW_OFFSET 0x7fff8000ULL
-#    endif
+#    define SHADOW_OFFSET (1ULL << 44)
 #   endif
 #  endif
 # endif