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

Unified Diff: chrome/tools/build/win/syzygy/BUILD.gn

Issue 2091023007: Add the mini_installer_syzygy GN target. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rework location of is_win_fastlink, fix full_wpo_on_official while I'm at it Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/installer/mini_installer/BUILD.gn ('k') | third_party/kasko/kasko.gni » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..822a645f3e48861f54f23cc2bb265db4978cd0d7 100644
--- a/chrome/tools/build/win/syzygy/BUILD.gn
+++ b/chrome/tools/build/win/syzygy/BUILD.gn
@@ -6,13 +6,6 @@ import("//build/config/chrome_build.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/sanitizers/sanitizers.gni")
-declare_args() {
- # Generate Syzygy optimized binaries. Syzygy optimize mode is a profile
- # guided optimization that reorders code for better locality.
- syzygy_optimize =
- is_win && is_official_build && !is_clang && symbol_level == 2
-}
-
assert(!syzygy_optimize || !is_syzyasan,
"Don't do both syzygy_optimize and is_syzyasan")
@@ -29,6 +22,9 @@ if (syzygy_optimize) {
#
# deps (required)
# Normal meaning.
+ #
+ # data_deps
+ # Normal meaning.
template("syzygy_optimize") {
action(target_name) {
if (defined(invoker.visibility)) {
@@ -59,9 +55,12 @@ if (syzygy_optimize) {
rebase_path(syzygy_dest_dir, root_build_dir),
]
- if (defined(invoker.deps)) {
- deps = invoker.deps
- }
+ forward_variables_from(invoker,
+ [
+ "deps",
+ "data_deps",
+ "public_deps",
+ ])
}
}
@@ -70,6 +69,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 +87,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
# 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 +113,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 +137,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 +145,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 = [
@@ -139,14 +154,17 @@ if (syzygy_optimize) {
if (defined(invoker.deps)) {
deps += invoker.deps
}
- if (defined(invoker.public_deps)) {
- public_deps = invoker.public_deps
- }
+ forward_variables_from(invoker,
+ [
+ "data_deps",
+ "public_deps",
+ ])
}
}
syzygy_asan("chrome_dll_syzygy") {
- dll_name = "chrome"
+ binary_name = "chrome.dll"
+ dest_dir = syzygy_dest_dir
deps = [
"//chrome:main_dll",
]
@@ -160,7 +178,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,6 +189,10 @@ if (syzygy_optimize) {
} else {
dest_dir = syzygy_dest_dir
}
+
+ data_deps = [
+ ":chrome_child_dll_syzygy",
+ ]
}
if (is_official_build) {
@@ -182,7 +204,7 @@ if (syzygy_optimize) {
"$root_out_dir/chrome_child.dll.pdb",
]
outputs = [
- "$syzygy_dest_dir/{{source_file_part}}",
+ "$dest_dir/{{source_file_part}}",
]
deps = [
"//chrome:chrome_child",
« no previous file with comments | « chrome/installer/mini_installer/BUILD.gn ('k') | third_party/kasko/kasko.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698