From db1674c532d0ff91376412c3ea4ca3543a496f49 Mon Sep 17 00:00:00 2001 From: machenbach Date: Mon, 27 Apr 2015 06:20:05 -0700 Subject: [PATCH] Reland [test] Make msan work for v8 stand-alone. (patchset #1 id:1 of https://codereview.chromium.org/1104073002/) Reason for revert: Reland after switching bot to ninja. Original issue's description: > Revert of [test] Make msan work for v8 stand-alone. (patchset #6 id:100001 of https://codereview.chromium.org/802583003/) > > Reason for revert: > Compile failures: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/2047 > > Original issue's description: > > [test] Make msan work for v8 stand-alone. > > > > The msan configuration can be used in combination with > > v8_use_snapshot=false. > > > > BUG=chromium:425187 > > LOG=n > > > > Committed: https://crrev.com/a65ef0d53fc28b0908f228938c6d84effa83c596 > > Cr-Commit-Position: refs/heads/master@{#28064} > > TBR=jochen@chromium.org,earthdok@chromium.org,svenpanne@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:425187 > > Committed: https://crrev.com/f69a48696ec3ec0ea1169a41b4c84fb36b059968 > Cr-Commit-Position: refs/heads/master@{#28068} TBR=jochen@chromium.org,earthdok@chromium.org,svenpanne@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:425187 Review URL: https://codereview.chromium.org/1102323002 Cr-Commit-Position: refs/heads/master@{#28078} --- build/standalone.gypi | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/build/standalone.gypi b/build/standalone.gypi index 2266d98346a..cd7847b3497 100644 --- a/build/standalone.gypi +++ b/build/standalone.gypi @@ -35,6 +35,10 @@ 'component%': 'static_library', 'clang_dir%': 'third_party/llvm-build/Release+Asserts', 'clang_xcode%': 0, + # Track where uninitialized memory originates from. From fastest to + # slowest: 0 - no tracking, 1 - track only the initial allocation site, 2 + # - track the chain of stores leading from allocation site to use site. + 'msan_track_origins%': 1, 'visibility%': 'hidden', 'v8_enable_backtrace%': 0, 'v8_enable_i18n_support%': 1, @@ -315,6 +319,36 @@ ], }, }], + ['msan==1 and OS!="mac"', { + 'target_defaults': { + 'cflags_cc+': [ + '-fno-omit-frame-pointer', + '-gline-tables-only', + '-fsanitize=memory', + '-fsanitize-memory-track-origins=<(msan_track_origins)', + '-fPIC', + ], + 'cflags+': [ + '-fPIC', + ], + 'cflags!': [ + '-fno-exceptions', + '-fomit-frame-pointer', + ], + 'ldflags': [ + '-fsanitize=memory', + ], + 'defines': [ + 'MEMORY_SANITIZER', + ], + 'dependencies': [ + # Use libc++ (third_party/libc++ and third_party/libc++abi) instead of + # stdlibc++ as standard library. This is intended to use for instrumented + # builds. + '<(DEPTH)/buildtools/third_party/libc++/libc++.gyp:libcxx_proxy', + ], + }, + }], ['asan==1 and OS=="mac"', { 'target_defaults': { 'xcode_settings': {