Index: base/BUILD.gn |
diff --git a/base/BUILD.gn b/base/BUILD.gn |
index 39bc2c6302501901c45f5ba231799063e993afec..238a89a78fb3d5ebb2bcd92c3ff97bb10475daca 100644 |
--- a/base/BUILD.gn |
+++ b/base/BUILD.gn |
@@ -645,6 +645,8 @@ component("base") { |
"sys_info_openbsd.cc", |
] |
+ data = [] |
+ |
configs += [ ":base_implementation" ] |
deps = [ |
@@ -749,6 +751,30 @@ component("base") { |
"sha1_win.cc", |
] |
+ # Required for base/stack_trace_win.cc to symbolize correctly. |
+ data += [ "$root_build_dir/dbghelp.dll" ] |
+ |
+ if (is_component_build) { |
+ # Copy the VS runtime DLLs into the isolate so that they don't have to be |
+ # preinstalled on the target machine. The debug runtimes have a "d" at |
+ # the end. |
+ if (is_debug) { |
+ vcrt_suffix = "d" |
+ } else { |
+ vcrt_suffix = "" |
+ } |
+ |
+ # These runtime files are copied to the output directory by the |
+ # vs_toolchain script that runs as part of toolchain configuration. |
+ data += [ |
+ "$root_out_dir/msvcp120${vcrt_suffix}.dll", |
+ "$root_out_dir/msvcr120${vcrt_suffix}.dll", |
+ ] |
+ if (is_asan) { |
+ data += [ "//third_party/llvm-build/Release+Asserts/lib/clang/3.7.0/lib/windows/clang_rt.asan_dynamic-i386.dll" ] |
+ } |
+ } |
+ |
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] |
@@ -773,6 +799,11 @@ component("base") { |
"threading/platform_thread_internal_posix.cc", |
] |
+ if (is_asan) { |
+ # TODO(GYP) hook up asan on Mac. GYP has this extra dylib: |
+ #data += [ "$root_out_dir/libclang_rt.asan_osx_dynamic.dylib" ] |
+ } |
+ |
if (is_ios) { |
sources -= [ |
"files/file_path_watcher_fsevents.cc", |
@@ -791,6 +822,11 @@ component("base") { |
# Linux. |
if (is_linux) { |
+ if (is_asan || is_lsan || is_msan || is_tsan) { |
+ # For llvm-sanitizer. |
+ data += [ "//third_party/llvm-build/Release+Asserts/lib/libstdc++.so.6" ] |
+ } |
+ |
# TODO(brettw) this will need to be parameterized at some point. |
linux_configs = [] |
if (use_glib) { |
@@ -872,6 +908,16 @@ component("base") { |
] |
} |
+ if (is_asan || is_lsan || is_msan || is_tsan) { |
+ data += [ "//tools/valgrind/asan/" ] |
+ if (is_win) { |
+ data += |
+ [ "//third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer.exe" ] |
+ } else { |
+ data += [ "//third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer" ] |
+ } |
+ } |
+ |
configs += [ "//build/config/compiler:wexit_time_destructors" ] |
if (!is_debug) { |
configs -= [ "//build/config/compiler:optimize" ] |
@@ -1380,9 +1426,6 @@ test("base_unittests") { |
data = [ |
"test/data/", |
- |
- # TODO(dpranke): Remove when icu declares this directly. |
- "$root_out_dir/icudtl.dat", |
] |
# Allow more direct string conversions on platforms with native utf8 |
@@ -1396,6 +1439,9 @@ test("base_unittests") { |
":base_java", |
":base_java_unittest_support", |
] |
+ |
+ # TODO(brettw) I think this should not be here, we should not be using |
+ # isolate files. |
isolate_file = "base_unittests.isolate" |
} |
@@ -1449,6 +1495,15 @@ test("base_unittests") { |
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] |
+ |
+ # Symbols for crashes when running tests on swarming. |
+ if (symbol_level > 0) { |
+ if (is_win) { |
+ data += [ "$root_out_dir/base_unittests.exe.pdb" ] |
+ } else if (is_mac) { |
+ data += [ "$root_out_dir/base_unittests.dSYM/" ] |
+ } |
+ } |
} |
if (is_android) { |