| Index: build/sanitizers/sanitizer_options.cc | 
| diff --git a/build/sanitizers/sanitizer_options.cc b/build/sanitizers/sanitizer_options.cc | 
| index ece14b97935894601d5c6213046e2e2ad092c2e5..1e9262581fd64149dbe7872bb38732cd13ecf2a2 100644 | 
| --- a/build/sanitizers/sanitizer_options.cc | 
| +++ b/build/sanitizers/sanitizer_options.cc | 
| @@ -7,6 +7,11 @@ | 
|  | 
| #include "build/build_config.h" | 
|  | 
| +#if defined(ADDRESS_SANITIZER) && defined(OS_MACOSX) | 
| +#include <crt_externs.h>  // for _NSGetArgc, _NSGetArgv | 
| +#include <string.h> | 
| +#endif  // ADDRESS_SANITIZER && OS_MACOSX | 
| + | 
| // Functions returning default options are declared weak in the tools' runtime | 
| // libraries. To make the linker pick the strong replacements for those | 
| // functions from this module, we explicitly force its inclusion by passing | 
| @@ -61,6 +66,8 @@ const char *kAsanDefaultOptions = | 
| const char *kAsanDefaultOptions = | 
| "strict_memcmp=0 replace_intrin=0 check_printf=1 use_sigaltstack=1 " | 
| "strip_path_prefix=Release/../../ "; | 
| +static const char kNaClDefaultOptions[] = "handle_segv=0"; | 
| +static const char kNaClFlag[] = "--type=nacl-loader"; | 
| #endif  // OS_LINUX | 
|  | 
| #if defined(OS_LINUX) || defined(OS_MACOSX) | 
| @@ -71,6 +78,18 @@ __attribute__((visibility("default"))) | 
| // stripped by the linker. | 
| __attribute__((used)) | 
| const char *__asan_default_options() { | 
| +#if defined(OS_MACOSX) | 
| +  char*** argvp = _NSGetArgv(); | 
| +  int* argcp = _NSGetArgc(); | 
| +  if (!argvp || !argcp) return kAsanDefaultOptions; | 
| +  char** argv = *argvp; | 
| +  int argc = *argcp; | 
| +  for (int i = 0; i < argc; ++i) { | 
| +    if (strcmp(argv[i], kNaClFlag) == 0) { | 
| +      return kNaClDefaultOptions; | 
| +    } | 
| +  } | 
| +#endif | 
| return kAsanDefaultOptions; | 
| } | 
| #endif  // OS_LINUX || OS_MACOSX | 
|  |