-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathargs.gn
More file actions
79 lines (69 loc) · 3.48 KB
/
Copy pathargs.gn
File metadata and controls
79 lines (69 loc) · 3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# V8 build args for a minimal embeddable monolith.
#
# Produces out/rel/obj/libv8_monolith.a containing V8 + the built-in snapshot.
# Verify against `gn args out/rel --list` after any V8 version bump; args get
# renamed and removed upstream without ceremony.
# --- toolchain -------------------------------------------------------------
# is_clang=true is the ONLY configuration upstream tests. Do not set false.
is_clang = true
# Both of these are set to false ON PURPOSE. V8's bundled libc++ and bundled
# Debian sysroot are fine for building V8 itself, but v8.h exposes std::unique_ptr,
# std::shared_ptr and std::vector in its public API. If the monolith is built
# against V8's libc++ and the embedder against the system's, you get an ABI
# mismatch that shows up as corruption, not a link error. Using the system
# headers on both sides removes the whole class of problem.
use_custom_libcxx = false
use_sysroot = false
treat_warnings_as_errors = false
# --- release / size --------------------------------------------------------
is_debug = false
is_official_build = true
is_component_build = false
dcheck_always_on = false
# jsvm is a static embedder whose supported extension path installs callbacks
# from the final executable (for example V8's public dynamic-code-generation
# callback). Official-build indirect-call CFI otherwise admits only targets
# linked into libv8_monolith and traps before an embedder-owned callback runs.
# Keep the monolith compatible with V8's public embedder callback APIs.
is_cfi = false
use_cfi_icall = false
# MANDATORY alongside is_official_build in a STANDALONE V8 checkout.
# build/config/compiler/pgo/pgo.gni flips chrome_pgo_phase to 2 whenever
# (is_official_build && is_linux && !dcheck_always_on), which then runs
# //tools/update_pgo_profiles.py -- a Chromium tool that does not exist here.
# gn gen dies with "can't open file tools/update_pgo_profiles.py".
chrome_pgo_phase = 0
symbol_level = 0
strip_debug_info = true
exclude_unwind_tables = true
target_cpu = "x64"
v8_target_cpu = "x64"
# --- monolith --------------------------------------------------------------
v8_monolithic = true
v8_static_library = true
v8_use_external_startup_data = false # snapshot lands inside the .a
# --- feature strip ---------------------------------------------------------
v8_enable_i18n_support = false # -8MB code, and no icudtl.dat to ship
icu_use_data_file = false
v8_enable_temporal_support = false # MANDATORY: see README, link breaks otherwise
# REQUIRED for the target collector: jbFdNf is a WASM export return value that
# it hashes. Without WASM the probe emits its -1 sentinel and DataDome rejects
# the payload (bisected: browser value 2/4, sentinel 0/4). Costs about 6 MB.
v8_enable_webassembly = true
v8_enable_gdbjit = false
v8_enable_test_features = false
v8_deprecation_warnings = false
v8_imminent_deprecation_warnings = false
enable_rust = false
use_glib = false
use_udev = false
# --- performance -----------------------------------------------------------
# false, not true: with v8_enable_webassembly the optimised-builtins path wants
# tools/builtins-pgo/profiles/x64.profile, which this checkout does not ship
# (ninja: 'missing and no known rule to make it').
v8_enable_builtins_optimization = false
# ABI-AFFECTING. These two change struct layouts. The embedder must compile
# with the matching -D defines or you get silent heap corruption, not a link
# error. The Makefile extracts them via `gn desc` rather than hardcoding.
v8_enable_pointer_compression = true
v8_enable_sandbox = true