1# Copyright 2016 The V8 project 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{
6  # This is a map of buildbot master names -> buildbot builder names ->
7  # config names (where each config name is a key in the 'configs' dict,
8  # below). MB uses this dict to look up which config to use for a given bot.
9  # Bots are ordered by appearance on waterfall.
10  'masters': {
11    'developer_default': {
12      'arm.debug': 'default_debug_arm',
13      'arm.optdebug': 'default_optdebug_arm',
14      'arm.release': 'default_release_arm',
15      'arm64.debug': 'default_debug_arm64',
16      'arm64.optdebug': 'default_optdebug_arm64',
17      'arm64.release': 'default_release_arm64',
18      'ia32.debug': 'default_debug_x86',
19      'ia32.optdebug': 'default_optdebug_x86',
20      'ia32.release': 'default_release_x86',
21      'x64.debug': 'default_debug_x64',
22      'x64.optdebug': 'default_optdebug_x64',
23      'x64.release': 'default_release_x64',
24    },
25
26    'client.dart.fyi': {
27      'v8-linux-release': 'gyp_release_x86_disassembler',
28      'v8-win-release': 'gyp_release_x86_disassembler',
29      'v8-mac-release': 'gyp_release_x86_disassembler',
30    },
31    'client.dynamorio': {
32      'linux-v8-dr': 'gyp_release_x64',
33    },
34    'client.v8': {
35      # Linux.
36      'V8 Linux - builder': 'gn_release_x86_gcmole',
37      'V8 Linux - debug builder': 'gn_debug_x86',
38      'V8 Linux - nosnap builder': 'gn_release_x86_no_snap',
39      'V8 Linux - nosnap debug builder': 'gn_debug_x86_no_snap',
40      'V8 Linux - shared': 'gn_release_x86_shared_verify_heap',
41      'V8 Linux - noi18n - debug': 'gn_debug_x86_no_i18n',
42      # Linux64.
43      'V8 Linux64 - builder': 'gn_release_x64_valgrind',
44      'V8 Linux64 - debug builder': 'gn_debug_x64_valgrind',
45      'V8 Linux64 - custom snapshot - debug builder': 'gn_debug_x64_custom',
46      'V8 Linux64 - internal snapshot': 'gn_release_x64_internal',
47      'V8 Linux64 - gyp': 'gyp_release_x64',
48      # Windows.
49      'V8 Win32 - builder': 'gn_release_x86_minimal_symbols',
50      'V8 Win32 - debug builder': 'gn_debug_x86_minimal_symbols',
51      'V8 Win32 - nosnap - shared':
52        'gn_release_x86_no_snap_shared_minimal_symbols',
53      'V8 Win64': 'gn_release_x64_minimal_symbols',
54      'V8 Win64 - debug': 'gn_debug_x64_minimal_symbols',
55      # TODO(machenbach): Switch plugins on when errors are fixed.
56      'V8 Win64 - clang': 'gn_release_x64_clang',
57      # Mac.
58      'V8 Mac': 'gn_release_x86',
59      'V8 Mac - debug': 'gn_debug_x86',
60      'V8 Mac64': 'gn_release_x64',
61      'V8 Mac64 - debug': 'gn_debug_x64',
62      'V8 Mac GC Stress': 'gn_debug_x86',
63      'V8 Mac64 ASAN': 'gn_release_x64_asan_no_lsan',
64      # Sanitizers.
65      'V8 Linux64 ASAN': 'gn_release_x64_asan',
66      'V8 Linux64 TSAN': 'gn_release_x64_tsan',
67      'V8 Linux - arm64 - sim - MSAN': 'gn_release_simulate_arm64_msan',
68      # Clusterfuzz.
69      'V8 Linux64 ASAN no inline - release builder':
70          'gn_release_x64_asan_symbolized_edge_verify_heap',
71      'V8 Linux64 ASAN - debug builder': 'gn_debug_x64_asan_edge',
72      'V8 Linux64 ASAN arm64 - debug builder':
73          'gn_debug_simulate_arm64_asan_edge',
74      'V8 Linux ASAN arm - debug builder':
75          'gn_debug_simulate_arm_asan_edge',
76      'V8 Linux ASAN mipsel - debug builder':
77          'gn_debug_simulate_mipsel_asan_edge',
78      # Misc.
79      'V8 Linux gcc 4.8': 'gn_release_x86_gcc',
80      # FYI.
81      'V8 Linux - swarming staging': 'gn_release_x64',
82      # TODO(machenbach): Figure out if symbolized is still needed. The
83      # original config also specified -O1, which we dropped because chromium
84      # doesn't have it (anymore).
85      'V8 Linux64 - cfi': 'gyp_release_x64_cfi_symbolized',
86      'V8 Linux - vtunejit': 'gyp_debug_x86_vtunejit',
87      'V8 Linux64 - gcov coverage': 'gyp_release_x64_gcc_coverage',
88      'V8 Linux - predictable': 'gyp_release_x86_predictable',
89      'V8 Linux - full debug': 'gyp_full_debug_x86',
90      'V8 Linux - interpreted regexp': 'gyp_release_x86_interpreted_regexp',
91      'V8 Random Deopt Fuzzer - debug': 'gyp_debug_x86',
92    },
93
94    'client.v8.ports': {
95      # Arm.
96      'V8 Arm - builder': 'gn_release_arm',
97      'V8 Arm - debug builder': 'gn_debug_arm',
98      'V8 Android Arm - builder': 'gn_release_android_arm',
99      'V8 Linux - arm - sim': 'gn_release_simulate_arm',
100      'V8 Linux - arm - sim - debug': 'gn_debug_simulate_arm',
101      # Arm64.
102      'V8 Android Arm64 - builder': 'gn_release_android_arm64',
103      'V8 Linux - arm64 - sim': 'gn_release_simulate_arm64',
104      'V8 Linux - arm64 - sim - debug': 'gn_debug_simulate_arm64',
105      'V8 Linux - arm64 - sim - nosnap - debug':
106          'gn_debug_simulate_arm64_no_snap',
107      'V8 Linux - arm64 - sim - gc stress': 'gn_debug_simulate_arm64',
108      # Mips.
109      'V8 Mips - builder': 'gyp_release_mips_no_snap_no_i18n',
110      'V8 Linux - mipsel - sim - builder': 'gn_release_simulate_mipsel',
111      'V8 Linux - mips64el - sim - builder': 'gn_release_simulate_mips64el',
112      # PPC.
113      'V8 Linux - ppc - sim': 'gyp_release_simulate_ppc',
114      'V8 Linux - ppc64 - sim': 'gyp_release_simulate_ppc64',
115      # S390.
116      'V8 Linux - s390 - sim': 'gyp_release_simulate_s390',
117      'V8 Linux - s390x - sim': 'gyp_release_simulate_s390x',
118      # X87.
119      'V8 Linux - x87 - nosnap - debug builder':
120          'gyp_debug_simulate_x87_no_snap',
121    },
122    'client.v8.branches': {
123      'V8 Linux - beta branch': 'gn_release_x86',
124      'V8 Linux - beta branch - debug': 'gn_debug_x86',
125      'V8 Linux - stable branch': 'gn_release_x86',
126      'V8 Linux - stable branch - debug': 'gn_debug_x86',
127      'V8 Linux64 - beta branch': 'gn_release_x64',
128      'V8 Linux64 - beta branch - debug': 'gn_debug_x64',
129      'V8 Linux64 - stable branch': 'gn_release_x64',
130      'V8 Linux64 - stable branch - debug': 'gn_debug_x64',
131      'V8 arm - sim - beta branch': 'gn_release_simulate_arm',
132      'V8 arm - sim - beta branch - debug': 'gn_debug_simulate_arm',
133      'V8 arm - sim - stable branch': 'gn_release_simulate_arm',
134      'V8 arm - sim - stable branch - debug': 'gn_debug_simulate_arm',
135      'V8 mips64el - sim - beta branch': 'gn_release_simulate_mips64el',
136      'V8 mips64el - sim - stable branch': 'gn_release_simulate_mips64el',
137      'V8 mipsel - sim - beta branch': 'gn_release_simulate_mipsel',
138      'V8 mipsel - sim - stable branch': 'gn_release_simulate_mipsel',
139      'V8 ppc - sim - beta branch': 'gyp_release_simulate_ppc',
140      'V8 ppc - sim - stable branch': 'gyp_release_simulate_ppc',
141      'V8 ppc64 - sim - beta branch': 'gyp_release_simulate_ppc64',
142      'V8 ppc64 - sim - stable branch': 'gyp_release_simulate_ppc64',
143      'V8 s390 - sim - beta branch': 'gyp_release_simulate_s390',
144      'V8 s390 - sim - stable branch': 'gyp_release_simulate_s390',
145      'V8 s390x - sim - beta branch': 'gyp_release_simulate_s390x',
146      'V8 s390x - sim - stable branch': 'gyp_release_simulate_s390x',
147    },
148    'tryserver.v8': {
149      'v8_linux_rel_ng': 'gn_release_x86_gcmole_trybot',
150      'v8_linux_avx2_dbg': 'gn_debug_x86_trybot',
151      'v8_linux_nodcheck_rel_ng': 'gn_release_x86_minimal_symbols',
152      'v8_linux_dbg_ng': 'gn_debug_x86_trybot',
153      'v8_linux_noi18n_rel_ng': 'gn_release_x86_no_i18n_trybot',
154      'v8_linux_gc_stress_dbg': 'gn_debug_x86_trybot',
155      'v8_linux_nosnap_rel': 'gn_release_x86_no_snap_trybot',
156      'v8_linux_nosnap_dbg': 'gn_debug_x86_no_snap_trybot',
157      'v8_linux_gcc_compile_rel': 'gn_release_x86_gcc_minimal_symbols',
158      'v8_linux_gcc_rel': 'gn_release_x86_gcc_minimal_symbols',
159      'v8_linux64_rel_ng': 'gn_release_x64_valgrind_trybot',
160      'v8_linux64_gyp_rel_ng': 'gyp_release_x64',
161      'v8_linux64_avx2_rel_ng': 'gn_release_x64_trybot',
162      'v8_linux64_avx2_dbg': 'gn_debug_x64_trybot',
163      'v8_linux64_asan_rel_ng': 'gn_release_x64_asan_minimal_symbols',
164      'v8_linux64_msan_rel': 'gn_release_simulate_arm64_msan_minimal_symbols',
165      'v8_linux64_sanitizer_coverage_rel':
166          'gyp_release_x64_asan_minimal_symbols_coverage',
167      'v8_linux64_tsan_rel': 'gn_release_x64_tsan_minimal_symbols',
168      'v8_win_dbg': 'gn_debug_x86_trybot',
169      'v8_win_compile_dbg': 'gn_debug_x86_trybot',
170      'v8_win_rel_ng': 'gn_release_x86_trybot',
171      'v8_win_nosnap_shared_rel_ng':
172        'gn_release_x86_no_snap_shared_minimal_symbols',
173      'v8_win64_dbg': 'gn_debug_x64_minimal_symbols',
174      'v8_win64_rel_ng': 'gn_release_x64_trybot',
175      'v8_mac_rel_ng': 'gn_release_x86_trybot',
176      'v8_mac_dbg': 'gn_debug_x86_trybot',
177      'v8_mac_gc_stress_dbg': 'gn_debug_x86_trybot',
178      'v8_mac64_rel': 'gn_release_x64_trybot',
179      'v8_mac64_dbg': 'gn_debug_x64_minimal_symbols',
180      'v8_mac64_asan_rel': 'gn_release_x64_asan_no_lsan',
181      'v8_linux_arm_rel_ng': 'gn_release_simulate_arm_trybot',
182      'v8_linux_arm_dbg': 'gn_debug_simulate_arm',
183      'v8_linux_arm_armv8a_rel': 'gn_release_simulate_arm_trybot',
184      'v8_linux_arm_armv8a_dbg': 'gn_debug_simulate_arm',
185      'v8_linux_arm64_rel_ng': 'gn_release_simulate_arm64_trybot',
186      'v8_linux_arm64_dbg': 'gn_debug_simulate_arm64',
187      'v8_linux_arm64_gc_stress_dbg': 'gn_debug_simulate_arm64',
188      'v8_linux_mipsel_compile_rel': 'gn_release_simulate_mipsel',
189      'v8_linux_mips64el_compile_rel': 'gn_release_simulate_mips64el',
190      'v8_android_arm_compile_rel': 'gn_release_android_arm',
191    },
192  },
193
194
195  # To ease readability, config values are ordered by:
196  # gyp/gn, release/debug, arch type, other values alphabetically.
197  'configs': {
198    # Developer default configs.
199    'default_debug_arm': [
200      'gn', 'debug', 'simulate_arm', 'v8_enable_slow_dchecks',
201      'v8_full_debug'],
202    'default_optdebug_arm': [
203      'gn', 'debug', 'simulate_arm', 'v8_enable_slow_dchecks'],
204    'default_release_arm': [
205      'gn', 'release', 'simulate_arm'],
206    'default_debug_arm64': [
207      'gn', 'debug', 'simulate_arm64', 'v8_enable_slow_dchecks',
208      'v8_full_debug'],
209    'default_optdebug_arm64': [
210      'gn', 'debug', 'simulate_arm64', 'v8_enable_slow_dchecks'],
211    'default_release_arm64': [
212      'gn', 'release', 'simulate_arm64'],
213    'default_debug_x64': [
214      'gn', 'debug', 'x64', 'v8_enable_slow_dchecks', 'v8_full_debug'],
215    'default_optdebug_x64': [
216      'gn', 'debug', 'x64', 'v8_enable_slow_dchecks'],
217    'default_release_x64': [
218      'gn', 'release', 'x64'],
219    'default_debug_x86': [
220      'gn', 'debug', 'x86', 'v8_enable_slow_dchecks', 'v8_full_debug'],
221    'default_optdebug_x86': [
222      'gn', 'debug', 'x86', 'v8_enable_slow_dchecks'],
223    'default_release_x86': [
224      'gn', 'release', 'x86'],
225
226
227    # GN debug configs for simulators.
228    'gn_debug_simulate_arm': [
229      'gn', 'debug_bot', 'simulate_arm', 'swarming'],
230    'gn_debug_simulate_arm_asan_edge': [
231      'gn', 'debug_bot', 'simulate_arm', 'asan', 'edge'],
232    'gn_debug_simulate_arm64': [
233      'gn', 'debug_bot', 'simulate_arm64', 'swarming'],
234    'gn_debug_simulate_arm64_asan_edge': [
235      'gn', 'debug_bot', 'simulate_arm64', 'asan', 'lsan', 'edge'],
236    'gn_debug_simulate_arm64_no_snap': [
237      'gn', 'debug_bot', 'simulate_arm64', 'swarming', 'v8_snapshot_none'],
238    'gn_debug_simulate_mipsel_asan_edge': [
239      'gn', 'debug_bot', 'simulate_mipsel', 'asan', 'edge'],
240
241    # GN release configs for simulators.
242    'gn_release_simulate_arm': [
243      'gn', 'release_bot', 'simulate_arm', 'swarming'],
244    'gn_release_simulate_arm_trybot': [
245      'gn', 'release_trybot', 'simulate_arm', 'swarming'],
246    'gn_release_simulate_arm64': [
247      'gn', 'release_bot', 'simulate_arm64', 'swarming'],
248    'gn_release_simulate_arm64_msan': [
249      'gn', 'release_bot', 'simulate_arm64', 'msan', 'swarming'],
250    'gn_release_simulate_arm64_msan_minimal_symbols': [
251      'gn', 'release_bot', 'simulate_arm64', 'msan', 'minimal_symbols',
252      'swarming'],
253    'gn_release_simulate_arm64_trybot': [
254      'gn', 'release_trybot', 'simulate_arm64', 'swarming'],
255    'gn_release_simulate_mipsel': [
256      'gn', 'release_bot', 'simulate_mipsel', 'swarming'],
257    'gn_release_simulate_mips64el': [
258      'gn', 'release_bot', 'simulate_mips64el', 'swarming'],
259
260    # GN debug configs for arm.
261    'gn_debug_arm': [
262      'gn', 'debug_bot', 'arm', 'crosscompile', 'hard_float', 'swarming'],
263
264    # GN release configs for arm.
265    'gn_release_arm': [
266      'gn', 'release_bot', 'arm', 'crosscompile', 'hard_float', 'swarming'],
267    'gn_release_android_arm': [
268      'gn', 'release_bot', 'arm', 'android', 'crosscompile',
269      'minimal_symbols', 'swarming'],
270    'gn_release_android_arm64': [
271      'gn', 'release_bot', 'arm64', 'android', 'crosscompile',
272      'minimal_symbols', 'swarming'],
273
274    # GN release configs for x64.
275    'gn_release_x64': [
276      'gn', 'release_bot', 'x64', 'swarming'],
277    'gn_release_x64_asan': [
278      'gn', 'release_bot', 'x64', 'asan', 'lsan', 'swarming'],
279    'gn_release_x64_asan_minimal_symbols': [
280      'gn', 'release_bot', 'x64', 'asan', 'lsan', 'minimal_symbols',
281      'swarming'],
282    'gn_release_x64_asan_no_lsan': [
283      'gn', 'release_bot', 'x64', 'asan', 'swarming'],
284    'gn_release_x64_asan_symbolized_edge_verify_heap': [
285      'gn', 'release_bot', 'x64', 'asan', 'edge', 'lsan', 'symbolized',
286      'v8_verify_heap'],
287    'gn_release_x64_clang': [
288      'gn', 'release_bot', 'x64', 'clang', 'swarming'],
289    'gn_release_x64_internal': [
290      'gn', 'release_bot', 'x64', 'swarming', 'v8_snapshot_internal'],
291    'gn_release_x64_minimal_symbols': [
292      'gn', 'release_bot', 'x64', 'minimal_symbols', 'swarming'],
293    'gn_release_x64_trybot': [
294      'gn', 'release_trybot', 'x64', 'swarming'],
295    'gn_release_x64_tsan': [
296      'gn', 'release_bot', 'x64', 'tsan', 'swarming'],
297    'gn_release_x64_tsan_minimal_symbols': [
298      'gn', 'release_bot', 'x64', 'tsan', 'minimal_symbols', 'swarming'],
299    'gn_release_x64_valgrind': [
300      'gn', 'release_bot', 'x64', 'swarming', 'valgrind'],
301    'gn_release_x64_valgrind_trybot': [
302      'gn', 'release_trybot', 'x64', 'swarming', 'valgrind'],
303
304    # GN debug configs for x64.
305    'gn_debug_x64': [
306      'gn', 'debug_bot', 'x64', 'swarming'],
307    'gn_debug_x64_asan_edge': [
308      'gn', 'debug_bot', 'x64', 'asan', 'lsan', 'edge'],
309    'gn_debug_x64_custom': [
310      'gn', 'debug_bot', 'x64', 'swarming', 'v8_snapshot_custom'],
311    'gn_debug_x64_minimal_symbols': [
312      'gn', 'debug_bot', 'x64', 'minimal_symbols', 'swarming'],
313    'gn_debug_x64_trybot': [
314      'gn', 'debug_trybot', 'x64', 'swarming'],
315    'gn_debug_x64_valgrind': [
316      'gn', 'debug_bot', 'x64', 'swarming', 'valgrind'],
317
318    # GN debug configs for x86.
319    'gn_debug_x86': [
320      'gn', 'debug_bot', 'x86', 'swarming'],
321    'gn_debug_x86_minimal_symbols': [
322      'gn', 'debug_bot', 'x86', 'minimal_symbols', 'swarming'],
323    'gn_debug_x86_no_i18n': [
324      'gn', 'debug_bot', 'x86', 'swarming', 'v8_disable_inspector',
325      'v8_no_i18n'],
326    'gn_debug_x86_no_snap': [
327      'gn', 'debug_bot', 'x86', 'swarming', 'v8_snapshot_none'],
328    'gn_debug_x86_no_snap_trybot': [
329      'gn', 'debug_trybot', 'x86', 'swarming', 'v8_snapshot_none'],
330    'gn_debug_x86_trybot': [
331      'gn', 'debug_trybot', 'x86', 'swarming'],
332
333    # GN release configs for x86.
334    'gn_release_x86': [
335      'gn', 'release_bot', 'x86', 'swarming'],
336    'gn_release_x86_gcc': [
337      'gn', 'release_bot', 'x86', 'gcc'],
338    'gn_release_x86_gcc_minimal_symbols': [
339      'gn', 'release_bot', 'x86', 'gcc', 'minimal_symbols'],
340    'gn_release_x86_gcmole': [
341      'gn', 'release_bot', 'x86', 'gcmole', 'swarming'],
342    'gn_release_x86_gcmole_trybot': [
343      'gn', 'release_trybot', 'x86', 'gcmole', 'swarming'],
344    'gn_release_x86_minimal_symbols': [
345      'gn', 'release_bot', 'x86', 'minimal_symbols', 'swarming'],
346    'gn_release_x86_no_i18n_trybot': [
347      'gn', 'release_trybot', 'x86', 'swarming', 'v8_disable_inspector',
348      'v8_no_i18n'],
349    'gn_release_x86_no_snap': [
350      'gn', 'release_bot', 'x86', 'swarming', 'v8_snapshot_none'],
351    'gn_release_x86_no_snap_shared_minimal_symbols': [
352      'gn', 'release', 'x86', 'goma', 'minimal_symbols', 'shared', 'swarming',
353      'v8_snapshot_none'],
354    'gn_release_x86_no_snap_trybot': [
355      'gn', 'release_trybot', 'x86', 'swarming', 'v8_snapshot_none'],
356    'gn_release_x86_shared_verify_heap': [
357      'gn', 'release', 'x86', 'goma', 'shared', 'swarming', 'v8_verify_heap'],
358    'gn_release_x86_trybot': [
359      'gn', 'release_trybot', 'x86', 'swarming'],
360
361    # Gyp debug configs for simulators.
362    'gyp_debug_simulate_x87_no_snap': [
363      'gyp', 'debug_bot_static', 'simulate_x87', 'swarming',
364      'v8_snapshot_none'],
365
366    # Gyp debug configs for x86.
367    'gyp_debug_x86': [
368      'gyp', 'debug_bot', 'x86', 'swarming'],
369    'gyp_debug_x86_vtunejit': [
370      'gyp', 'debug_bot', 'x86', 'v8_enable_vtunejit'],
371    'gyp_full_debug_x86': [
372      'gyp', 'debug', 'x86', 'goma', 'static', 'v8_enable_slow_dchecks',
373      'v8_full_debug'],
374
375    # Gyp release configs for mips.
376    'gyp_release_mips_no_snap_no_i18n': [
377      'gyp', 'release', 'mips', 'crosscompile', 'static', 'v8_no_i18n',
378      'v8_snapshot_none'],
379
380    # Gyp release configs for simulators.
381    'gyp_release_simulate_ppc': [
382      'gyp', 'release_bot', 'simulate_ppc', 'swarming'],
383    'gyp_release_simulate_ppc64': [
384      'gyp', 'release_bot', 'simulate_ppc64', 'swarming'],
385    'gyp_release_simulate_s390': [
386      'gyp', 'release_bot', 'simulate_s390', 'swarming'],
387    'gyp_release_simulate_s390x': [
388      'gyp', 'release_bot', 'simulate_s390x', 'swarming'],
389
390    # Gyp release configs for x64.
391    'gyp_release_x64': [
392      'gyp', 'release_bot', 'x64', 'swarming'],
393    'gyp_release_x64_asan_minimal_symbols_coverage': [
394      'gyp', 'release_bot', 'x64', 'asan', 'bb', 'coverage', 'lsan',
395      'minimal_symbols', 'swarming'],
396    'gyp_release_x64_cfi_symbolized': [
397      'gyp', 'release_bot', 'x64', 'cfi', 'swarming', 'symbolized'],
398    'gyp_release_x64_gcc_coverage': [
399      'gyp', 'release_bot', 'x64', 'coverage', 'gcc'],
400
401    # Gyp release configs for x86.
402    'gyp_release_x86_disassembler': [
403      'gyp', 'release_bot', 'x86', 'v8_enable_disassembler'],
404    'gyp_release_x86_interpreted_regexp': [
405      'gyp', 'release_bot', 'x86', 'v8_interpreted_regexp'],
406    'gyp_release_x86_predictable': [
407      'gyp', 'release_bot', 'x86', 'v8_enable_verify_predictable'],
408  },
409
410  'mixins': {
411    'android': {
412      'gn_args': 'target_os="android" v8_android_log_stdout=true',
413      'gyp_defines': 'OS=android v8_android_log_stdout=1',
414    },
415
416    'arm': {
417      'gn_args': 'target_cpu="arm"',
418      'gyp_defines': 'target_arch=arm',
419    },
420
421    'arm64': {
422      'gn_args': 'target_cpu="arm64"',
423      'gyp_defines': 'target_arch=arm64',
424    },
425
426    'asan': {
427      'gn_args': 'is_asan=true',
428      'gyp_defines': 'clang=1 asan=1',
429    },
430
431    'bb': {
432      'gn_args': 'sanitizer_coverage_flags="bb"',
433      'gyp_defines': 'sanitizer_coverage=bb',
434    },
435
436    'cfi': {
437      'gn_args': 'is_cfi=true use_cfi_diag=true',
438      'gyp_defines': 'cfi_vptr=1 cfi_diag=1',
439    },
440
441    'clang': {
442      'gn_args': 'is_clang=true',
443      'gyp_defines': 'clang=1',
444    },
445
446    'coverage': {
447      # TODO(machenbach): Add this to gn.
448      'gyp_defines': 'coverage=1',
449    },
450
451    'crosscompile': {
452      'gyp_crosscompile': True,
453    },
454
455    'dcheck_always_on': {
456      'gn_args': 'dcheck_always_on=true',
457      'gyp_defines': 'dcheck_always_on=1',
458    },
459
460    'debug': {
461      'gn_args': 'is_debug=true v8_enable_backtrace=true',
462      'gyp_defines': 'v8_enable_backtrace=1',
463    },
464
465    'debug_bot': {
466      'mixins': [
467        'debug', 'shared', 'goma', 'v8_enable_slow_dchecks',
468        'v8_optimized_debug'],
469    },
470
471    'debug_bot_static': {
472      'mixins': [
473        'debug', 'static', 'goma', 'v8_enable_slow_dchecks',
474        'v8_optimized_debug'],
475    },
476
477    'debug_trybot': {
478      'mixins': ['debug_bot', 'minimal_symbols'],
479    },
480
481    'edge': {
482      'gn_args': 'sanitizer_coverage_flags="edge"',
483      'gyp_defines': 'sanitizer_coverage=edge',
484    },
485
486    'gcc': {
487      'gn_args': 'is_clang=false use_sysroot=false',
488      'gyp_defines': 'clang=0',
489    },
490
491    'gcmole': {
492      'gn_args': 'v8_gcmole=true',
493      'gyp_defines': 'gcmole=1',
494    },
495
496    'gn': {'type': 'gn'},
497
498    'goma': {
499      # The MB code will properly escape goma_dir if necessary in the GYP
500      # code path; the GN code path needs no escaping.
501      'gn_args': 'use_goma=true',
502      'gyp_defines': 'use_goma=1',
503    },
504
505    'gyp': {'type': 'gyp'},
506
507    'hard_float': {
508      'gn_args': 'arm_float_abi="hard"',
509      'gyp_defines': 'arm_float_abi=hard',
510    },
511
512    'lsan': {
513      'gn_args': 'is_lsan=true',
514      'gyp_defines': 'lsan=1',
515    },
516
517    'minimal_symbols': {
518      'gn_args': 'symbol_level=1',
519      'gyp_defines': 'fastbuild=1',
520    },
521
522    'mips': {
523      'gn_args': 'target_cpu="mips"',
524      'gyp_defines': 'target_arch=mips',
525    },
526
527    'msan': {
528      'gn_args': ('is_msan=true msan_track_origins=2 '
529                  'use_prebuilt_instrumented_libraries=true'),
530      'gyp_defines': ('clang=1 msan=1 msan_track_origins=2 '
531                      'use_prebuilt_instrumented_libraries=1'),
532    },
533
534    'release': {
535      'gn_args': 'is_debug=false',
536    },
537
538    'release_bot': {
539      'mixins': ['release', 'static', 'goma'],
540    },
541
542    'release_trybot': {
543      'mixins': ['release_bot', 'minimal_symbols', 'dcheck_always_on'],
544    },
545
546    'shared': {
547      'gn_args': 'is_component_build=true',
548      'gyp_defines': 'component=shared_library',
549    },
550
551    'simulate_arm': {
552      'gn_args': 'target_cpu="x86" v8_target_cpu="arm"',
553      'gyp_defines': 'target_arch=ia32 v8_target_arch=arm',
554    },
555
556    'simulate_arm64': {
557      'gn_args': 'target_cpu="x64" v8_target_cpu="arm64"',
558      'gyp_defines': 'target_arch=x64 v8_target_arch=arm64',
559    },
560
561    'simulate_mipsel': {
562      'gn_args':
563          'target_cpu="x86" v8_target_cpu="mipsel" mips_arch_variant="r2"',
564      'gyp_defines': 'target_arch=ia32 v8_target_arch=mipsel',
565    },
566
567    'simulate_mips64el': {
568      'gn_args': 'target_cpu="x64" v8_target_cpu="mips64el"',
569      'gyp_defines': 'target_arch=x64 v8_target_arch=mips64el',
570    },
571
572    'simulate_ppc': {
573      'gn_args': 'target_cpu="x86" v8_target_cpu="ppc"',
574      'gyp_defines': 'target_arch=ia32 v8_target_arch=ppc',
575    },
576
577    'simulate_ppc64': {
578      'gn_args': 'target_cpu="x64" v8_target_cpu="ppc64"',
579      'gyp_defines': 'target_arch=x64 v8_target_arch=ppc64',
580    },
581
582    'simulate_s390': {
583      'gn_args': 'target_cpu="x86" v8_target_cpu="s390"',
584      'gyp_defines': 'target_arch=ia32 v8_target_arch=s390',
585    },
586
587    'simulate_s390x': {
588      'gn_args': 'target_cpu="x64" v8_target_cpu="s390x"',
589      'gyp_defines': 'target_arch=x64 v8_target_arch=s390x',
590    },
591
592    'simulate_x87': {
593      'gn_args': 'target_cpu="x86" v8_target_cpu="x87"',
594      'gyp_defines': 'target_arch=ia32 v8_target_arch=x87',
595    },
596
597    'static': {
598      'gn_args': 'is_component_build=false',
599      'gyp_defines': 'component=static_library',
600    },
601
602    'swarming': {
603      'gn_args': 'v8_test_isolation_mode="prepare"',
604      'gyp_defines': 'test_isolation_mode=prepare',
605    },
606
607    # TODO(machenbach): Remove the symbolized config after the bots are gone.
608    'symbolized': {
609      'gn_args': 'v8_no_inline=true',
610      'gyp_defines':
611        'release_extra_cflags="-fno-inline-functions -fno-inline"',
612    },
613
614    'tsan': {
615      'gn_args': 'is_tsan=true',
616      'gyp_defines': 'clang=1 tsan=1',
617    },
618
619    'valgrind': {
620      'gn_args': 'v8_has_valgrind=true',
621      'gyp_defines': 'has_valgrind=1',
622    },
623
624    'v8_no_i18n': {
625      'gn_args': 'v8_enable_i18n_support=false icu_use_data_file=false',
626      'gyp_defines': 'v8_enable_i18n_support=0 icu_use_data_file_flag=0',
627    },
628
629    'v8_disable_inspector': {
630      'gn_args': 'v8_enable_inspector=false',
631      'gyp_defines': 'v8_enable_inspector=0 ',
632    },
633
634    'v8_enable_disassembler': {
635      'gn_args': 'v8_enable_disassembler=true',
636      'gyp_defines': 'v8_enable_disassembler=1',
637    },
638
639    'v8_enable_slow_dchecks': {
640      'gn_args': 'v8_enable_slow_dchecks=true',
641      'gyp_defines': 'v8_enable_slow_dchecks=1',
642    },
643
644    'v8_enable_verify_predictable': {
645      'gn_args': 'v8_enable_verify_predictable=true',
646      'gyp_defines': 'v8_enable_verify_predictable=1',
647    },
648
649    'v8_enable_vtunejit': {
650      'gn_args': 'v8_enable_vtunejit=true',
651      'gyp_defines': 'v8_enable_vtunejit=1',
652    },
653
654    'v8_full_debug': {
655      'gn_args': 'v8_optimized_debug=false',
656      'gyp_defines': 'v8_optimized_debug=0',
657    },
658
659    'v8_interpreted_regexp': {
660      'gn_args': 'v8_interpreted_regexp=true',
661      'gyp_defines': 'v8_interpreted_regexp=1',
662    },
663
664    'v8_optimized_debug': {
665      # This is the default in gn for debug.
666      'gyp_defines': 'v8_optimized_debug=1',
667    },
668
669    'v8_snapshot_custom': {
670      # GN path is relative to project root.
671      'gn_args': 'v8_embed_script="test/mjsunit/mjsunit.js"',
672
673      # Gyp path is relative to src/v8.gyp.
674      'gyp_defines': 'embed_script=../test/mjsunit/mjsunit.js',
675    },
676
677    'v8_snapshot_internal': {
678      'gn_args': 'v8_use_external_startup_data=false',
679      'gyp_defines': 'v8_use_external_startup_data=0',
680    },
681
682    'v8_snapshot_none': {
683      'gn_args': 'v8_use_snapshot=false',
684      'gyp_defines': 'v8_use_snapshot=false',
685    },
686
687    'v8_verify_heap': {
688      'gn_args': 'v8_enable_verify_heap=true',
689      'gyp_defines': 'v8_enable_verify_heap=1',
690    },
691
692    'x64': {
693      'gn_args': 'target_cpu="x64"',
694      'gyp_defines': 'target_arch=x64',
695    },
696
697    'x86': {
698      'gn_args': 'target_cpu="x86"',
699      'gyp_defines': 'target_arch=ia32',
700    },
701  },
702}
703