File tree Expand file tree Collapse file tree 4 files changed +11
-14
lines changed
Expand file tree Collapse file tree 4 files changed +11
-14
lines changed Original file line number Diff line number Diff line change @@ -59,14 +59,11 @@ set(ASAN_CXX_SOURCES
5959
6060set (ASAN_STATIC_SOURCES
6161 asan_rtl_static.cpp
62+ # Note that only x86_64 targets using a constant shadow offset use functions
63+ # in this, but that's gated via macro checks in the file itself.
64+ asan_rtl_x86_64.S
6265 )
6366
64- if ("x86_64" IN_LIST ASAN_SUPPORTED_ARCH AND NOT WIN32 AND NOT APPLE )
65- list (APPEND ASAN_STATIC_SOURCES
66- asan_rtl_x86_64.S
67- )
68- endif ()
69-
7067set (ASAN_PREINIT_SOURCES
7168 asan_preinit.cpp
7269 )
Original file line number Diff line number Diff line change @@ -40,18 +40,18 @@ void InitializeShadowMemory() {
4040 if (Verbosity ())
4141 PrintAddressSpaceLayout ();
4242
43- // Make sure SHADOW_OFFSET doesn't use __asan_shadow_memory_dynamic_address .
44- __asan_shadow_memory_dynamic_address = kDefaultShadowSentinel ;
45- DCHECK ( kLowShadowBeg != kDefaultShadowSentinel );
46- __asan_shadow_memory_dynamic_address = kLowShadowBeg ;
43+ // TODO(https://fxbug.dev/42085278): Shadow on Fuchsia starts as zero for now .
44+ // __asan_shadow_memory_dynamic_address is an uninitialized global that's
45+ // zero. This is temporary and will be changed to a non-zero value in the
46+ // future.
4747
4848 CHECK_EQ (kShadowGapEnd , kHighShadowBeg - 1 );
4949 CHECK_EQ (kHighMemEnd , __sanitizer::ShadowBounds.memory_limit - 1 );
5050 CHECK_EQ (kHighMemBeg , __sanitizer::ShadowBounds.shadow_limit );
5151 CHECK_EQ (kHighShadowBeg , __sanitizer::ShadowBounds.shadow_base );
5252 CHECK_EQ (kShadowGapEnd , __sanitizer::ShadowBounds.shadow_base - 1 );
53- CHECK_EQ (kLowShadowEnd , 0 );
54- CHECK_EQ (kLowShadowBeg , 0 );
53+ CHECK_EQ (kLowShadowEnd , MEM_TO_SHADOW ( kLowMemEnd ) );
54+ CHECK_EQ (kLowShadowBeg , __asan_shadow_memory_dynamic_address );
5555}
5656
5757void AsanApplyToGlobals (globals_op_fptr op, const void *needle) {
Original file line number Diff line number Diff line change 175175#define ASAN_SHADOW_SCALE 3
176176
177177#if SANITIZER_FUCHSIA
178- # define ASAN_SHADOW_OFFSET_CONST ( 0 )
178+ # define ASAN_SHADOW_OFFSET_DYNAMIC
179179#elif SANITIZER_WORDSIZE == 32
180180# if SANITIZER_ANDROID
181181# define ASAN_SHADOW_OFFSET_DYNAMIC
Original file line number Diff line number Diff line change 11#include "asan_mapping.h"
22#include "sanitizer_common/sanitizer_asm.h"
33
4- #if defined(__x86_64__)
4+ #if defined(__x86_64__) && defined(ASAN_SHADOW_OFFSET_CONST)
55#include "sanitizer_common/sanitizer_platform.h"
66
77.file "asan_rtl_x86_64.S"
You can’t perform that action at this time.
0 commit comments