[compiler-rt] r199370 - [asan] Nuke ASAN_FLEXIBLE_MAPPING_AND_OFFSET.

Evgeniy Stepanov eugeni.stepanov at gmail.com
Thu Jan 16 02:16:20 PST 2014


Author: eugenis
Date: Thu Jan 16 04:16:19 2014
New Revision: 199370

URL: http://llvm.org/viewvc/llvm-project?rev=199370&view=rev
Log:
[asan] Nuke ASAN_FLEXIBLE_MAPPING_AND_OFFSET.

Removed:
    compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/time_null_regtest.cc
    compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow32.cc
    compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow64.cc
Modified:
    compiler-rt/trunk/lib/asan/CMakeLists.txt
    compiler-rt/trunk/lib/asan/asan_internal.h
    compiler-rt/trunk/lib/asan/asan_mapping.h
    compiler-rt/trunk/lib/asan/tests/CMakeLists.txt
    compiler-rt/trunk/lib/asan/tests/asan_noinst_test.cc
    compiler-rt/trunk/make/platform/clang_darwin.mk
    compiler-rt/trunk/make/platform/clang_linux.mk

Modified: compiler-rt/trunk/lib/asan/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/CMakeLists.txt?rev=199370&r1=199369&r2=199370&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/CMakeLists.txt (original)
+++ compiler-rt/trunk/lib/asan/CMakeLists.txt Thu Jan 16 04:16:19 2014
@@ -38,16 +38,13 @@ set(ASAN_COMMON_DEFINITIONS
 
 if(ANDROID)
   list(APPEND ASAN_COMMON_DEFINITIONS
-    ASAN_FLEXIBLE_MAPPING_AND_OFFSET=0
     ASAN_NEEDS_SEGV=0
     ASAN_LOW_MEMORY=1)
 elseif(MSVC)
   list(APPEND ASAN_COMMON_DEFINITIONS
-    ASAN_FLEXIBLE_MAPPING_AND_OFFSET=0
     ASAN_NEEDS_SEGV=0)
 else()
   list(APPEND ASAN_COMMON_DEFINITIONS
-    ASAN_FLEXIBLE_MAPPING_AND_OFFSET=1
     ASAN_NEEDS_SEGV=1)
 endif()
 

Modified: compiler-rt/trunk/lib/asan/asan_internal.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_internal.h?rev=199370&r1=199369&r2=199370&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_internal.h (original)
+++ compiler-rt/trunk/lib/asan/asan_internal.h Thu Jan 16 04:16:19 2014
@@ -44,12 +44,6 @@
 # define ASAN_HAS_EXCEPTIONS 1
 #endif
 
-// If set, asan uses the values of SHADOW_SCALE and SHADOW_OFFSET
-// provided by the instrumented objects. Otherwise constants are used.
-#ifndef ASAN_FLEXIBLE_MAPPING_AND_OFFSET
-# define ASAN_FLEXIBLE_MAPPING_AND_OFFSET 0
-#endif
-
 // If set, values like allocator chunk size, as well as defaults for some flags
 // will be changed towards less memory overhead.
 #ifndef ASAN_LOW_MEMORY

Modified: compiler-rt/trunk/lib/asan/asan_mapping.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_mapping.h?rev=199370&r1=199369&r2=199370&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_mapping.h (original)
+++ compiler-rt/trunk/lib/asan/asan_mapping.h Thu Jan 16 04:16:19 2014
@@ -63,31 +63,24 @@ static const u64 kDefaultShadowOffset64
 static const u64 kDefaultShort64bitShadowOffset = 0x7FFF8000;  // < 2G.
 static const u64 kMIPS32_ShadowOffset32 = 0x0aaa8000;
 
-#if ASAN_FLEXIBLE_MAPPING_AND_OFFSET == 1
-extern "C" SANITIZER_INTERFACE_ATTRIBUTE uptr __asan_mapping_scale;
-extern "C" SANITIZER_INTERFACE_ATTRIBUTE uptr __asan_mapping_offset;
-# define SHADOW_SCALE (__asan_mapping_scale)
-# define SHADOW_OFFSET (__asan_mapping_offset)
+#define SHADOW_SCALE kDefaultShadowScale
+#if SANITIZER_ANDROID
+# define SHADOW_OFFSET (0)
 #else
-# define SHADOW_SCALE kDefaultShadowScale
-# if SANITIZER_ANDROID
-#  define SHADOW_OFFSET (0)
+# if SANITIZER_WORDSIZE == 32
+#  if defined(__mips__)
+#    define SHADOW_OFFSET kMIPS32_ShadowOffset32
+#  else
+#    define SHADOW_OFFSET kDefaultShadowOffset32
+#  endif
 # else
-#  if SANITIZER_WORDSIZE == 32
-#   if defined(__mips__)
-#     define SHADOW_OFFSET kMIPS32_ShadowOffset32
-#   else
-#     define SHADOW_OFFSET kDefaultShadowOffset32
-#   endif
+#  if SANITIZER_MAC
+#   define SHADOW_OFFSET kDefaultShadowOffset64
 #  else
-#   if SANITIZER_MAC
-#    define SHADOW_OFFSET kDefaultShadowOffset64
-#   else
-#    define SHADOW_OFFSET kDefaultShort64bitShadowOffset
-#   endif
+#   define SHADOW_OFFSET kDefaultShort64bitShadowOffset
 #  endif
 # endif
-#endif  // ASAN_FLEXIBLE_MAPPING_AND_OFFSET
+#endif
 
 #define SHADOW_GRANULARITY (1ULL << SHADOW_SCALE)
 #define MEM_TO_SHADOW(mem) (((mem) >> SHADOW_SCALE) + (SHADOW_OFFSET))

Removed: compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/time_null_regtest.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/time_null_regtest.cc?rev=199369&view=auto
==============================================================================
--- compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/time_null_regtest.cc (original)
+++ compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/time_null_regtest.cc (removed)
@@ -1,20 +0,0 @@
-// RUN: %clangxx_asan -O0 %s -fsanitize-address-zero-base-shadow -pie -o %t && %t 2>&1 | FileCheck %s
-
-// Zero-base shadow only works on x86_64 and i386.
-// REQUIRES: x86_64-supported-target
-
-// A regression test for time(NULL), which caused ASan to crash in the
-// zero-based shadow mode on Linux.
-// FIXME: this test does not work on Darwin, because the code pages of the
-// executable interleave with the zero-based shadow.
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-int main() {
-  time_t t = time(NULL);
-  fprintf(stderr, "Time: %s\n", ctime(&t));  // NOLINT
-  // CHECK: {{Time: .* .* .*}}
-  return 0;
-}

Removed: compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow32.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow32.cc?rev=199369&view=auto
==============================================================================
--- compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow32.cc (original)
+++ compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow32.cc (removed)
@@ -1,24 +0,0 @@
-// RUN: %clangxx_asan -O0 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
-// RUN: not %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -O1 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
-// RUN: not %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -O2 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
-// RUN: not %t 2>&1 | FileCheck %s
-
-// Zero-base shadow only works on x86_64 and i386.
-// REQUIRES: i386-supported-target, asan-32-bits
-
-#include <string.h>
-int main(int argc, char **argv) {
-  char x[10];
-  memset(x, 0, 10);
-  int res = x[argc * 10];  // BOOOM
-  // CHECK: {{READ of size 1 at 0x.* thread T0}}
-  // CHECK: {{    #0 0x.* in main .*zero-base-shadow32.cc:}}[[@LINE-2]]
-  // CHECK: {{Address 0x.* is .* frame}}
-  // CHECK: main
-
-  // Check that shadow for stack memory occupies lower part of address space.
-  // CHECK: =>0x1
-  return res;
-}

Removed: compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow64.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow64.cc?rev=199369&view=auto
==============================================================================
--- compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow64.cc (original)
+++ compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow64.cc (removed)
@@ -1,24 +0,0 @@
-// RUN: %clangxx_asan -O0 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
-// RUN: not %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -O1 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
-// RUN: not %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -O2 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
-// RUN: not %t 2>&1 | FileCheck %s
-
-// Zero-base shadow only works on x86_64 and i386.
-// REQUIRES: x86_64-supported-target, asan-64-bits
-
-#include <string.h>
-int main(int argc, char **argv) {
-  char x[10];
-  memset(x, 0, 10);
-  int res = x[argc * 10];  // BOOOM
-  // CHECK: {{READ of size 1 at 0x.* thread T0}}
-  // CHECK: {{    #0 0x.* in main .*zero-base-shadow64.cc:}}[[@LINE-2]]
-  // CHECK: {{Address 0x.* is .* frame}}
-  // CHECK: main
-
-  // Check that shadow for stack memory occupies lower part of address space.
-  // CHECK: =>0x0f
-  return res;
-}

Modified: compiler-rt/trunk/lib/asan/tests/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/tests/CMakeLists.txt?rev=199370&r1=199369&r2=199370&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/tests/CMakeLists.txt (original)
+++ compiler-rt/trunk/lib/asan/tests/CMakeLists.txt Thu Jan 16 04:16:19 2014
@@ -50,11 +50,9 @@ list(APPEND ASAN_UNITTEST_COMMON_CFLAGS
   -DASAN_UAR=0)
 if(ANDROID)
   list(APPEND ASAN_UNITTEST_COMMON_CFLAGS
-    -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=0
     -DASAN_NEEDS_SEGV=0)
 else()
   list(APPEND ASAN_UNITTEST_COMMON_CFLAGS
-    -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=1
     -DASAN_NEEDS_SEGV=1)
 endif()
 

Modified: compiler-rt/trunk/lib/asan/tests/asan_noinst_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/tests/asan_noinst_test.cc?rev=199370&r1=199369&r2=199370&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/tests/asan_noinst_test.cc (original)
+++ compiler-rt/trunk/lib/asan/tests/asan_noinst_test.cc Thu Jan 16 04:16:19 2014
@@ -25,34 +25,6 @@
 #include <vector>
 #include <limits>
 
-#if ASAN_FLEXIBLE_MAPPING_AND_OFFSET == 1
-// Manually set correct ASan mapping scale and offset, as they won't be
-// exported from instrumented sources (there are none).
-# define FLEXIBLE_SHADOW_SCALE kDefaultShadowScale
-# if SANITIZER_ANDROID
-#  define FLEXIBLE_SHADOW_OFFSET (0)
-# else
-#  if SANITIZER_WORDSIZE == 32
-#   if defined(__mips__)
-#     define FLEXIBLE_SHADOW_OFFSET kMIPS32_ShadowOffset32
-#   else
-#     define FLEXIBLE_SHADOW_OFFSET kDefaultShadowOffset32
-#   endif
-#  else
-#   if defined(__powerpc64__)
-#    define FLEXIBLE_SHADOW_OFFSET kPPC64_ShadowOffset64
-#   elif SANITIZER_MAC
-#    define FLEXIBLE_SHADOW_OFFSET kDefaultShadowOffset64
-#   else
-#    define FLEXIBLE_SHADOW_OFFSET kDefaultShort64bitShadowOffset
-#   endif
-#  endif
-# endif
-SANITIZER_INTERFACE_ATTRIBUTE uptr __asan_mapping_scale = FLEXIBLE_SHADOW_SCALE;
-SANITIZER_INTERFACE_ATTRIBUTE uptr __asan_mapping_offset =
-    FLEXIBLE_SHADOW_OFFSET;
-#endif  // ASAN_FLEXIBLE_MAPPING_AND_OFFSET
-
 extern "C" {
 // Set specific ASan options for uninstrumented unittest.
 const char* __asan_default_options() {

Modified: compiler-rt/trunk/make/platform/clang_darwin.mk
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/platform/clang_darwin.mk?rev=199370&r1=199369&r2=199370&view=diff
==============================================================================
--- compiler-rt/trunk/make/platform/clang_darwin.mk (original)
+++ compiler-rt/trunk/make/platform/clang_darwin.mk Thu Jan 16 04:16:19 2014
@@ -150,16 +150,14 @@ CFLAGS.10.4		:= $(CFLAGS) $(OSX_DEPLOYME
 CFLAGS.asan_osx_dynamic := \
 	$(CFLAGS) -mmacosx-version-min=10.6 -fno-builtin \
 	-gline-tables-only \
-	-DMAC_INTERPOSE_FUNCTIONS=1 \
-  -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=1
+	-DMAC_INTERPOSE_FUNCTIONS=1
 
 CFLAGS.asan_iossim_dynamic := \
 	$(CFLAGS) -mios-simulator-version-min=7.0 \
         -isysroot $(IOSSIM_SDK_PATH) \
         -fno-builtin \
 	-gline-tables-only \
-	-DMAC_INTERPOSE_FUNCTIONS=1 \
-  -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=1
+	-DMAC_INTERPOSE_FUNCTIONS=1
 
 CFLAGS.ubsan_osx	:= $(CFLAGS) -mmacosx-version-min=10.6 -fno-builtin
 

Modified: compiler-rt/trunk/make/platform/clang_linux.mk
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/platform/clang_linux.mk?rev=199370&r1=199369&r2=199370&view=diff
==============================================================================
--- compiler-rt/trunk/make/platform/clang_linux.mk (original)
+++ compiler-rt/trunk/make/platform/clang_linux.mk Thu Jan 16 04:16:19 2014
@@ -94,10 +94,8 @@ CFLAGS.profile-i386 := $(CFLAGS) -m32
 CFLAGS.profile-x86_64 := $(CFLAGS) -m64
 CFLAGS.san-i386 := $(CFLAGS) -m32 $(SANITIZER_CFLAGS) -fno-rtti
 CFLAGS.san-x86_64 := $(CFLAGS) -m64 $(SANITIZER_CFLAGS) -fno-rtti
-CFLAGS.asan-i386 := $(CFLAGS) -m32 $(SANITIZER_CFLAGS) -fno-rtti \
-                    -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=1
-CFLAGS.asan-x86_64 := $(CFLAGS) -m64 $(SANITIZER_CFLAGS) -fno-rtti \
-                    -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=1
+CFLAGS.asan-i386 := $(CFLAGS) -m32 $(SANITIZER_CFLAGS) -fno-rtti
+CFLAGS.asan-x86_64 := $(CFLAGS) -m64 $(SANITIZER_CFLAGS) -fno-rtti
 CFLAGS.tsan-x86_64 := $(CFLAGS) -m64 $(SANITIZER_CFLAGS) -fno-rtti
 CFLAGS.msan-x86_64 := $(CFLAGS) -m64 $(SANITIZER_CFLAGS) -fno-rtti
 CFLAGS.ubsan-i386 := $(CFLAGS) -m32 $(SANITIZER_CFLAGS) -fno-rtti





More information about the llvm-commits mailing list