1 # Copyright 2013 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 # Intended to be included by chrome_syzygy.gyp. A variable 'dll_name' should 6 # be set to the base name of the DLL. This is used to generate the build steps 7 # for both chrome.dll and chrome_child.dll when in multiple dll mode. 8 { 9 # Reorder or instrument the initial chrome DLL executable, placing the 10 # optimized output and corresponding PDB file into the "syzygy" 11 # subdirectory. 12 # This target won't build in fastbuild, since there are no PDBs. 13 'dependencies': [ 14 '<(DEPTH)/chrome/chrome.gyp:<(dll_name)_dll', 15 ], 16 'conditions': [ 17 ['syzyasan==0 and syzygy_optimize==1', { 18 # Reorder chrome DLL executable. 19 # If there's a matching chrome.dll-ordering.json file present in 20 # the output directory, chrome.dll will be ordered according to 21 # that, otherwise it will be randomized. 22 'actions': [ 23 { 24 'action_name': 'Reorder Chrome with Syzygy', 25 'inputs': [ 26 '<(PRODUCT_DIR)/<(dll_name).dll', 27 '<(PRODUCT_DIR)/<(dll_name).dll.pdb', 28 ], 29 'outputs': [ 30 '<(dest_dir)/<(dll_name).dll', 31 '<(dest_dir)/<(dll_name).dll.pdb', 32 ], 33 'action': [ 34 'python', 35 '<(DEPTH)/chrome/tools/build/win/syzygy_reorder.py', 36 '--input_executable', '<(PRODUCT_DIR)/<(dll_name).dll', 37 '--input_symbol', '<(PRODUCT_DIR)/<(dll_name).dll.pdb', 38 '--destination_dir', '<(dest_dir)', 39 ], 40 }, 41 ], 42 }], 43 ['syzyasan==1 and syzygy_optimize==0', { 44 # Instrument chrome DLL executable with SyzyAsan. 45 'actions': [ 46 { 47 'action_name': 'Instrument Chrome with SyzyAsan', 48 'inputs': [ 49 '<(DEPTH)/chrome/tools/build/win/win-syzyasan-filter.txt', 50 '<(PRODUCT_DIR)/<(dll_name).dll', 51 ], 52 'outputs': [ 53 '<(dest_dir)/<(dll_name).dll', 54 '<(dest_dir)/<(dll_name).dll.pdb', 55 '<(dest_dir)/win-syzyasan-filter-<(dll_name).txt.json', 56 ], 57 'action': [ 58 'python', 59 '<(DEPTH)/chrome/tools/build/win/syzygy_instrument.py', 60 '--mode', 'asan', 61 '--input_executable', '<(PRODUCT_DIR)/<(dll_name).dll', 62 '--input_symbol', '<(PRODUCT_DIR)/<(dll_name).dll.pdb', 63 '--filter', 64 '<(DEPTH)/chrome/tools/build/win/win-syzyasan-filter.txt', 65 '--output-filter-file', 66 '<(dest_dir)/win-syzyasan-filter-<(dll_name).txt.json', 67 '--destination_dir', '<(dest_dir)', 68 ], 69 }, 70 ], 71 'dependencies': [ 72 'copy_syzyasan_binaries', 73 ], 74 }], 75 ], 76 } 77