Index: chrome/chrome_syzygy.gyp |
diff --git a/chrome/chrome_syzygy.gyp b/chrome/chrome_syzygy.gyp |
index 07c25ded410f50f524f1d7db97e7efb470bd49c1..7ea4a042fa9154a38558f376f6b4eb6c5894bf13 100644 |
--- a/chrome/chrome_syzygy.gyp |
+++ b/chrome/chrome_syzygy.gyp |
@@ -4,11 +4,9 @@ |
{ |
'conditions': [ |
['OS=="win" and fastbuild==0', { |
- # Reorder the initial chrome DLL executable, placing the optimized |
- # output and corresponding PDB file into the "syzygy" subdirectory. |
- # If there's a matching chrome.dll-ordering.json file present in |
- # the output directory, chrome.dll will be ordered according to that, |
- # otherwise it will be randomized. |
+ # Reorder or instrument the initial chrome DLL executable, placing the |
+ # optimized output and corresponding PDB file into the "syzygy" |
+ # subdirectory. |
# This target won't build in fastbuild, since there are no PDBs. |
'targets': [ |
{ |
@@ -21,26 +19,60 @@ |
'variables': { |
'dest_dir': '<(PRODUCT_DIR)\\syzygy', |
}, |
- 'actions': [ |
- { |
- 'action_name': 'Reorder Chrome with Syzygy', |
- 'msvs_cygwin_shell': 0, |
- 'inputs': [ |
- '<(PRODUCT_DIR)\\chrome.dll', |
- '<(PRODUCT_DIR)\\chrome.dll.pdb', |
+ 'conditions': [ |
+ ['asan!=1', { |
+ # Reorder chrome DLL executable. |
+ # If there's a matching chrome.dll-ordering.json file present in |
+ # the output directory, chrome.dll will be ordered according to |
+ # that, otherwise it will be randomized. |
+ 'actions': [ |
+ { |
+ 'action_name': 'Reorder Chrome with Syzygy', |
+ 'msvs_cygwin_shell': 0, |
+ 'inputs': [ |
+ '<(PRODUCT_DIR)\\chrome.dll', |
+ '<(PRODUCT_DIR)\\chrome.dll.pdb', |
+ ], |
+ 'outputs': [ |
+ '<(dest_dir)\\chrome.dll', |
+ '<(dest_dir)\\chrome.dll.pdb', |
+ ], |
+ 'action': [ |
+ 'python', |
+ '<(DEPTH)/chrome/tools/build/win/syzygy_reorder.py', |
+ '--input_executable', '<(PRODUCT_DIR)\\chrome.dll', |
+ '--input_symbol', '<(PRODUCT_DIR)\\chrome.dll.pdb', |
+ '--destination_dir', '<(dest_dir)', |
+ ], |
+ }, |
], |
- 'outputs': [ |
- '<(dest_dir)\\chrome.dll', |
- '<(dest_dir)\\chrome.dll.pdb', |
+ }, { |
+ # Instrument chrome DLL executable with SyzyAsan. |
+ 'actions': [ |
+ { |
+ 'action_name': 'Instrument Chrome with SyzyAsan', |
+ 'msvs_cygwin_shell': 0, |
+ 'inputs': [ |
+ '<(PRODUCT_DIR)\\chrome.dll', |
+ '<(PRODUCT_DIR)\\chrome.dll.pdb', |
+ ], |
+ 'outputs': [ |
+ '<(dest_dir)\\chrome.dll', |
+ '<(dest_dir)\\chrome.dll.pdb', |
+ ], |
+ 'action': [ |
+ 'python', |
+ '<(DEPTH)/chrome/tools/build/win/syzygy_instrument.py', |
+ '--mode', 'asan', |
+ '--agent_dll', '<(DEPTH)\\third_party\\syzygy\\binaries' |
+ '\\exe\\asan_rtl.dll', |
+ '--input_executable', '<(PRODUCT_DIR)\\chrome.dll', |
+ '--input_symbol', '<(PRODUCT_DIR)\\chrome.dll.pdb', |
+ '--destination_dir', '<(dest_dir)', |
+ ], |
+ }, |
], |
- 'action': [ |
- 'python', |
- '<(DEPTH)/chrome/tools/build/win/syzygy_reorder.py', |
- '--input_executable', '<(PRODUCT_DIR)\\chrome.dll', |
- '--input_symbol', '<(PRODUCT_DIR)\\chrome.dll.pdb', |
- '--destination_dir', '<(dest_dir)', |
- ], |
- }, |
+ }], |
], |
}, |
], |