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

Side by Side Diff: tools/gn.py

Issue 2392403002: Enable GN ASAN builds for Linux (Closed)
Patch Set: Fix mac compile Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « runtime/BUILD.gn ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2016 The Dart project authors. All rights reserved. 2 # Copyright 2016 The Dart project authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import argparse 6 import argparse
7 import multiprocessing 7 import multiprocessing
8 import os 8 import os
9 import subprocess 9 import subprocess
10 import sys 10 import sys
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 pub = pub + ".bat" 80 pub = pub + ".bat"
81 gn_args['dart_host_pub_exe'] = os.path.join( 81 gn_args['dart_host_pub_exe'] = os.path.join(
82 DART_ROOT, 'tools', 'sdks', host_os, 'dart-sdk', 'bin', pub) 82 DART_ROOT, 'tools', 'sdks', host_os, 'dart-sdk', 'bin', pub)
83 83
84 # For Fuchsia support, the default is to not compile in the root 84 # For Fuchsia support, the default is to not compile in the root
85 # certificates. 85 # certificates.
86 gn_args['dart_use_fallback_root_certificates'] = True 86 gn_args['dart_use_fallback_root_certificates'] = True
87 87
88 gn_args['dart_zlib_path'] = "//runtime/bin/zlib" 88 gn_args['dart_zlib_path'] = "//runtime/bin/zlib"
89 89
90 gn_args['dart_use_tcmalloc'] = gn_args['target_os'] == 'linux' 90 # Use tcmalloc only when targeting Linux and when not using ASAN.
91 gn_args['dart_use_tcmalloc'] = (gn_args['target_os'] == 'linux'
92 and not args.asan)
91 93
92 gn_args['is_debug'] = mode == 'debug' 94 gn_args['is_debug'] = mode == 'debug'
93 gn_args['is_release'] = mode == 'release' 95 gn_args['is_release'] = mode == 'release'
94 gn_args['is_product'] = mode == 'product' 96 gn_args['is_product'] = mode == 'product'
95 gn_args['dart_debug'] = mode == 'debug' 97 gn_args['dart_debug'] = mode == 'debug'
96 98
97 # This setting is only meaningful for Flutter. Standalone builds of the VM 99 # This setting is only meaningful for Flutter. Standalone builds of the VM
98 # should leave this set to 'develop', which causes the build to defer to 100 # should leave this set to 'develop', which causes the build to defer to
99 # 'is_debug', 'is_release' and 'is_product'. 101 # 'is_debug', 'is_release' and 'is_product'.
100 gn_args['dart_runtime_mode'] = 'develop' 102 gn_args['dart_runtime_mode'] = 'develop'
101 103
102 # TODO(zra): Investigate using clang with these configurations. 104 # TODO(zra): Investigate using clang with these configurations.
103 has_clang = (host_os != 'win' 105 has_clang = (host_os != 'win'
104 and args.os not in ['android'] 106 and args.os not in ['android']
105 and not gn_args['target_cpu'].startswith('arm') 107 and not gn_args['target_cpu'].startswith('arm')
106 and not gn_args['target_cpu'].startswith('mips')) 108 and not gn_args['target_cpu'].startswith('mips'))
107 gn_args['is_clang'] = args.clang and has_clang 109 gn_args['is_clang'] = args.clang and has_clang
108 110
111 gn_args['is_asan'] = args.asan and gn_args['is_clang']
112
109 if args.target_sysroot: 113 if args.target_sysroot:
110 gn_args['target_sysroot'] = args.target_sysroot 114 gn_args['target_sysroot'] = args.target_sysroot
111 115
112 if args.toolchain_prefix: 116 if args.toolchain_prefix:
113 gn_args['toolchain_prefix'] = args.toolchain_prefix 117 gn_args['toolchain_prefix'] = args.toolchain_prefix
114 118
115 goma_dir = os.environ.get('GOMA_DIR') 119 goma_dir = os.environ.get('GOMA_DIR')
116 goma_home_dir = os.path.join(os.getenv('HOME', ''), 'goma') 120 goma_home_dir = os.path.join(os.getenv('HOME', ''), 'goma')
117 if args.goma and goma_dir: 121 if args.goma and goma_dir:
118 gn_args['use_goma'] = True 122 gn_args['use_goma'] = True
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 type=str, 195 type=str,
192 help='Target OSs (comma-separated).', 196 help='Target OSs (comma-separated).',
193 metavar='[all,host,android]', 197 metavar='[all,host,android]',
194 default='host') 198 default='host')
195 parser.add_argument('--arch', '-a', 199 parser.add_argument('--arch', '-a',
196 type=str, 200 type=str,
197 help='Target architectures (comma-separated).', 201 help='Target architectures (comma-separated).',
198 metavar='[all,ia32,x64,simarm,arm,simarmv6,armv6,simarmv5te,armv5te,' 202 metavar='[all,ia32,x64,simarm,arm,simarmv6,armv6,simarmv5te,armv5te,'
199 'simmips,mips,simarm64,arm64,simdbc,armsimdbc]', 203 'simmips,mips,simarm64,arm64,simdbc,armsimdbc]',
200 default='x64') 204 default='x64')
205 parser.add_argument('--asan',
206 help='Build with ASAN',
207 default=False,
208 action='store_true')
201 parser.add_argument('--goma', 209 parser.add_argument('--goma',
202 help='Use goma', 210 help='Use goma',
203 default=True, 211 default=True,
204 action='store_true') 212 action='store_true')
205 parser.add_argument('--no-goma', 213 parser.add_argument('--no-goma',
206 help='Disable goma', 214 help='Disable goma',
207 dest='goma', 215 dest='goma',
208 action='store_false') 216 action='store_false')
209 parser.add_argument('--clang', 217 parser.add_argument('--clang',
210 help='Use Clang', 218 help='Use Clang',
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 return 1 290 return 1
283 291
284 endtime = time.time() 292 endtime = time.time()
285 if args.verbose: 293 if args.verbose:
286 print ("GN Time: %.3f seconds" % (endtime - starttime)) 294 print ("GN Time: %.3f seconds" % (endtime - starttime))
287 return 0 295 return 0
288 296
289 297
290 if __name__ == '__main__': 298 if __name__ == '__main__':
291 sys.exit(main(sys.argv)) 299 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « runtime/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698