Index: chrome/tools/build/win/syzygy/BUILD.gn |
diff --git a/chrome/tools/build/win/syzygy/BUILD.gn b/chrome/tools/build/win/syzygy/BUILD.gn |
index c73f94944a65b72f6a4b5d4eb021110f841c0cec..6243dab30f400d69bb270c12c24592914e7bac04 100644 |
--- a/chrome/tools/build/win/syzygy/BUILD.gn |
+++ b/chrome/tools/build/win/syzygy/BUILD.gn |
@@ -29,6 +29,9 @@ if (syzygy_optimize) { |
# |
# deps (required) |
# Normal meaning. |
+ # |
+ # data_deps |
+ # Normal meaning. |
template("syzygy_optimize") { |
action(target_name) { |
if (defined(invoker.visibility)) { |
@@ -62,6 +65,10 @@ if (syzygy_optimize) { |
if (defined(invoker.deps)) { |
brettw
2016/06/24 23:51:43
You can replace both of these defined checks with:
Dirk Pranke
2016/06/25 22:53:57
Acknowledged.
|
deps = invoker.deps |
} |
+ |
+ if (defined(invoker.data_deps)) { |
+ data_deps = invoker.data_deps |
+ } |
} |
} |
@@ -70,6 +77,11 @@ if (syzygy_optimize) { |
deps = [ |
"//chrome:main_dll", |
] |
+ if (is_multi_dll_chrome) { |
+ data_deps = [ |
+ ":chrome_child_dll_syzygy", |
+ ] |
+ } |
} |
if (is_multi_dll_chrome) { |
# Also instrument chrome_child.dll. |
@@ -83,13 +95,23 @@ if (syzygy_optimize) { |
} else if (is_syzyasan) { |
# Instruments a binary with SyzyAsan. |
# |
- # dll_name (required) |
- # Name of the DLL to be instrumented, with no extension or path. This |
- # ${dll_name}.dll is assumed to be in the output directory and must be |
+ # binary_name (required) |
+ # Name of the binary to be instrumented, with no extension or path. This |
+ # ${binary_name} is assumed to be in the output directory and must be |
brettw
2016/06/24 23:51:43
Just delete the $ and {} on this now (before it wa
Dirk Pranke
2016/06/25 22:53:57
Acknowledged.
|
# generated by a dependency of this target. |
# |
+ # dest_dir (required) |
+ # The destination directory where the instrumented image should be |
+ # written. |
+ # |
# deps (required) |
# Normal meaning. |
+ # |
+ # public_deps |
+ # Normal meaning. |
+ # |
+ # data_deps |
+ # Normal meaning. |
template("syzygy_asan") { |
action(target_name) { |
if (defined(invoker.visibility)) { |
@@ -99,22 +121,23 @@ if (syzygy_optimize) { |
filter = "syzyasan-instrumentation-filter.txt" |
- dll_name = invoker.dll_name |
- input_dll = "$root_out_dir/$dll_name.dll" |
- input_pdb = "$root_out_dir/$dll_name.dll.pdb" |
+ binary_name = invoker.binary_name |
+ dest_dir = invoker.dest_dir |
+ input_image = "$root_out_dir/$binary_name" |
+ input_pdb = "$root_out_dir/$binary_name.pdb" |
inputs = [ |
filter, |
- input_dll, |
+ input_image, |
#input_pdb, |
] |
- output_filter = "$syzygy_dest_dir/win-syzyasan-filter-$dll_name.txt.json" |
+ output_filter = "$dest_dir/win-syzyasan-filter-$binary_name.txt.json" |
outputs = [ |
- "$syzygy_dest_dir/$dll_name.dll", |
- "$syzygy_dest_dir/$dll_name.dll.pdb", |
+ "$dest_dir/$input_image", |
+ "$dest_dir/$input_image.pdb", |
output_filter, |
] |
@@ -122,7 +145,7 @@ if (syzygy_optimize) { |
"--mode", |
"asan", |
"--input_executable", |
- rebase_path(input_dll, root_build_dir), |
+ rebase_path(input_image, root_build_dir), |
"--input_symbol", |
rebase_path(input_pdb, root_build_dir), |
"--filter", |
@@ -130,7 +153,7 @@ if (syzygy_optimize) { |
"--output-filter-file", |
rebase_path(output_filter, root_build_dir), |
"--destination_dir", |
- rebase_path(syzygy_dest_dir, root_build_dir), |
+ rebase_path(dest_dir, root_build_dir), |
] |
deps = [ |
@@ -142,11 +165,15 @@ if (syzygy_optimize) { |
if (defined(invoker.public_deps)) { |
public_deps = invoker.public_deps |
} |
+ if (defined(invoker.data_deps)) { |
+ data_deps = invoker.data_deps |
+ } |
} |
} |
syzygy_asan("chrome_dll_syzygy") { |
- dll_name = "chrome" |
+ binary_name = "chrome.dll" |
+ dest_dir = syzygy_dest_dir |
deps = [ |
"//chrome:main_dll", |
] |
@@ -160,7 +187,7 @@ if (syzygy_optimize) { |
# uninstrumented. Otherwise, chrome_child is also instrumented to the |
# normal place. |
syzygy_asan("chrome_child_dll_syzygy") { |
- dll_name = "chrome_child" |
+ binary_name = "chrome_child.dll" |
deps = [ |
"//chrome:chrome_child", |
] |
@@ -171,23 +198,26 @@ if (syzygy_optimize) { |
} else { |
dest_dir = syzygy_dest_dir |
} |
- } |
- if (is_official_build) { |
- # Copies the uninstrumented chrome_child.dll. |
- # GYP version: chrome/chrome_syzygy.gyp:chrome_child_dll_syzygy_copy |
- copy("chrome_child_dll_syzygy_copy") { |
- sources = [ |
- "$root_out_dir/chrome_child.dll", |
- "$root_out_dir/chrome_child.dll.pdb", |
- ] |
- outputs = [ |
- "$syzygy_dest_dir/{{source_file_part}}", |
- ] |
- deps = [ |
- "//chrome:chrome_child", |
- ] |
+ if (is_official_build) { |
+ # Copies the uninstrumented chrome_child.dll. |
+ # GYP version: chrome/chrome_syzygy.gyp:chrome_child_dll_syzygy_copy |
+ copy("chrome_child_dll_syzygy_copy") { |
brettw
2016/06/24 23:51:43
The copy target is defined inside the syzygy_asan
Dirk Pranke
2016/06/25 22:53:57
s/bested/nested :).
Ack.
|
+ sources = [ |
+ "$root_out_dir/chrome_child.dll", |
+ "$root_out_dir/chrome_child.dll.pdb", |
+ ] |
+ outputs = [ |
+ "$dest_dir/{{source_file_part}}", |
+ ] |
+ deps = [ |
+ "//chrome:chrome_child", |
+ ] |
+ } |
} |
+ data_deps = [ |
+ ":chrome_child_dll_syzygy", |
+ ] |
} |
} |
} else { |