Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: build/sanitizers/sanitizer_options.cc

Issue 2911513002: Partition libcxx build code from build/config/sanitizers (Closed)
Patch Set: Fix asan Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // This file contains the default options for various compiler-based dynamic 5 // This file contains the default options for various compiler-based dynamic
6 // tools. 6 // tools.
7 7
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 9
10 #if defined(ADDRESS_SANITIZER) && defined(OS_MACOSX) 10 #if defined(ADDRESS_SANITIZER) && defined(OS_MACOSX)
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 "detect_leaks=0 strip_path_prefix=/../../ fast_unwind_on_fatal=1 " 75 "detect_leaks=0 strip_path_prefix=/../../ fast_unwind_on_fatal=1 "
76 "detect_stack_use_after_return=1 " 76 "detect_stack_use_after_return=1 "
77 "allow_user_segv_handler=1 "; 77 "allow_user_segv_handler=1 ";
78 #endif // GOOGLE_CHROME_BUILD 78 #endif // GOOGLE_CHROME_BUILD
79 79
80 #elif defined(OS_MACOSX) 80 #elif defined(OS_MACOSX)
81 const char *kAsanDefaultOptions = 81 const char *kAsanDefaultOptions =
82 "check_printf=1 use_sigaltstack=1 " 82 "check_printf=1 use_sigaltstack=1 "
83 "strip_path_prefix=/../../ fast_unwind_on_fatal=1 " 83 "strip_path_prefix=/../../ fast_unwind_on_fatal=1 "
84 "detect_stack_use_after_return=1 detect_odr_violation=0 "; 84 "detect_stack_use_after_return=1 detect_odr_violation=0 ";
85 static const char kNaClDefaultOptions[] = "handle_segv=0";
86 static const char kNaClFlag[] = "--type=nacl-loader";
87 #endif // OS_LINUX 85 #endif // OS_LINUX
88 86
89 #if defined(OS_LINUX) || defined(OS_MACOSX) 87 #if defined(OS_LINUX) || defined(OS_MACOSX)
88 // Allow NaCl to override the default asan options.
89 extern const char* kAsanDefaultOptionsNaCl;
90 __attribute__((weak)) const char* kAsanDefaultOptionsNaCl = nullptr;
91
90 SANITIZER_HOOK_ATTRIBUTE const char *__asan_default_options() { 92 SANITIZER_HOOK_ATTRIBUTE const char *__asan_default_options() {
91 #if defined(OS_MACOSX) 93 if (kAsanDefaultOptionsNaCl)
92 char*** argvp = _NSGetArgv(); 94 return kAsanDefaultOptionsNaCl;
93 int* argcp = _NSGetArgc();
94 if (!argvp || !argcp) return kAsanDefaultOptions;
95 char** argv = *argvp;
96 int argc = *argcp;
97 for (int i = 0; i < argc; ++i) {
98 if (strcmp(argv[i], kNaClFlag) == 0) {
99 return kNaClDefaultOptions;
100 }
101 }
102 #endif
103 return kAsanDefaultOptions; 95 return kAsanDefaultOptions;
104 } 96 }
105 97
106 extern char kASanDefaultSuppressions[]; 98 extern char kASanDefaultSuppressions[];
107 99
108 SANITIZER_HOOK_ATTRIBUTE const char *__asan_default_suppressions() { 100 SANITIZER_HOOK_ATTRIBUTE const char *__asan_default_suppressions() {
109 return kASanDefaultSuppressions; 101 return kASanDefaultSuppressions;
110 } 102 }
111 #endif // OS_LINUX || OS_MACOSX 103 #endif // OS_LINUX || OS_MACOSX
112 #endif // ADDRESS_SANITIZER 104 #endif // ADDRESS_SANITIZER
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 // Default options for UndefinedBehaviorSanitizer: 172 // Default options for UndefinedBehaviorSanitizer:
181 // print_stacktrace=1 - print the stacktrace when UBSan reports an error. 173 // print_stacktrace=1 - print the stacktrace when UBSan reports an error.
182 const char kUbsanDefaultOptions[] = 174 const char kUbsanDefaultOptions[] =
183 "print_stacktrace=1 strip_path_prefix=/../../ "; 175 "print_stacktrace=1 strip_path_prefix=/../../ ";
184 176
185 SANITIZER_HOOK_ATTRIBUTE const char* __ubsan_default_options() { 177 SANITIZER_HOOK_ATTRIBUTE const char* __ubsan_default_options() {
186 return kUbsanDefaultOptions; 178 return kUbsanDefaultOptions;
187 } 179 }
188 180
189 #endif // UNDEFINED_SANITIZER 181 #endif // UNDEFINED_SANITIZER
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698