Previously, setup_worktree_build.py only compared main_repo/DEPS with
worktree_dir/DEPS and assumed main_repo's dependencies were synced if
the two DEPS files matched. When main_repo had pulled or checked out a
new revision without running gclient sync, worktrees were symlinked to
unsynced dependencies in main_repo.
Check that ../.gclient_entries is at least as new as main_repo/DEPS
before symlinking directly to main_repo; otherwise fall back to
.deps_cache/<hash>.
TAG=agy
CONV=030aee38-e9f1-408a-9fca-9c36359b29d1
Change-Id: I1711292f6e1f6eee4873a48cb96ea2140072e73f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8691065
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#111407}
Skip worktree dependency symlink setup in `setup_worktree_build.py` when
`build` already exists as a real directory (not a symlink), which
indicates a pre-populated checkout such as a btrfs CoW snapshot rather
than a normal git worktree.
TAG=agy
CONV=ac1407cc-76ee-4bd6-888d-4b747c3582ce
Change-Id: I563ca80e9776d1dd4e1261d44cdefe82edb4cba8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8615041
Reviewed-by: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#111009}
Allocating the holes before WasmNull allows TheHoleValue's 4-byte map
header to fit at the end of the first 64 KiB OS page (0xfffd) instead
of wasting a 64 KiB filler page after WasmNull's page-aligned payload.
This places StaticReadOnlyRoot::kTheHoleValue at 0xfffd across all
static-roots configurations (so it fits in a 16-bit immediate on arm64)
and shrinks ReadOnlySpace by one V8 page. Also handle
V8_STATIC_ROOTS_GENERATION_BOOL in IsWasmNullNoSpaceCheck.
TAG=agy
CONV=5409847f-bf7f-48ca-b6b7-4128aed86b43
Change-Id: I03cbc6660b9f91cb4426d6cb286378351a2daa89
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8570844
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110850}
~1000 cpp build targets were previously blocked behind run_torque in the
build graph. This CL checks in widely-used generated files instead for
the most common build config. Instead of regenerating in each build, we
now fail the build when a mismatch is detected.
For now, only the common wasm-intl build uses checked-in headers (and
thus defines V8_USE_CHECKED_IN_GENERATED_HEADERS to swap the include).
The gen headers are written to src/gen/intl-wasm. static-roots.h
additionally supports nointl-wasm, intl-nowasm, and nointl-nowasm. Note
the gen headers rely on more config values than just intl and wasm; see
BUILD.gn.
Before this change, run_torque-blocked targets took 40s until they
started compiling on a cold build. Now they start immediately.
NO_IFTTT=some reason...
Bug: 531344950
Change-Id: I6d724d964b720b5d3a120e8855e930de2aa4d4e4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8352503
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110808}
On Linux corp machines (including Cog workspaces), Siso's built-in
remote execution uses build/config/siso/.sisoenv and does not require
download_remoteexec_cfg in .gclient. Teach detect_reclient() in gm.py to
check for .sisoenv and gcert on Linux so newly generated args.gn files
include use_remoteexec = true.
Change-Id: If23c232f1cf27e9d9539ec8cf1dc09aaa653169f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8572037
Reviewed-by: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110694}
When initializing a diverged DEPS cache entry, setup_worktree_build.py
previously copied ../.gclient verbatim. If ../.gclient contained extra
solutions (such as v8-perf), gclient sync would clone and sync those
into every .deps_cache/<hash> directory even though worktrees only ever
use the v8 solution.
Filter the solutions list when writing .deps_cache's .gclient so only
the v8 solution (and its custom_vars/custom_deps) is synced.
TAG=agy
R=jgruber@chromium.org
Change-Id: Idedf3d0a432df1fd1ab65dbe9d9ebb5cf14c8d91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8549214
Reviewed-by: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110646}
Quiet mode (added in https://crrev.com/c/6836375) is meant to only
print output on error and is used by default by coding agents. Skip
desktop and console notifications in `_notify()` when `quiet` is
specified to avoid distracting popups, especially when multiple agents
compile independently in parallel.
TAG=agy
R=jkummerow@chromium.org
Change-Id: I27634f4c956c89c5a456807fef16c479edb64ce1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8548557
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110580}
Follow up on https://crrev.com/c/8498180 to consolidate file_lock and
try_file_lock into a single context manager and replace per-entry
<hash>.lock files with a global .deps_cache/.lock.
Holding the global cache lock across cache usage/initialization and
prune_cache also closes a TOCTOU race where prune_cache could evict an
entry that a concurrent sync_dependencies started using after
get_referenced_cache_hashes completed.
TAG=agy
R=olivf@chromium.org
Bug: 569942997
Change-Id: Ic499c1970d34054c0d0ac68974622331849ea452
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8512342
Reviewed-by: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110351}
Use v8_use_metagen to toggle instance-type and object-layout generation
together in GN, Bazel, and developer tooling. The granular build flags
were only needed during development.
Bug: 531344950
Change-Id: I63343739ef340f9b208d931dee8a4be3dc479a53
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8524366
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110343}
When a git worktree's DEPS differs from the main repository,
setup_worktree_build.py creates a ~11 GB cached gclient sync directory
under worktrees/.deps_cache/<hash>. Previously, old cache entries were
never evicted automatically, accumulating hundreds of gigabytes over
time.
Automatically prune unreferenced .deps_cache entries at the end of
sync_dependencies (and via a new prune-cache subcommand), while
preserving all entries referenced by existing worktrees and at least
the 3 most recently used entries.
R=olivf@chromium.orgCC=jgruber@chromium.org
TAG=agy
CONV=11c837a1-6b3f-4ae6-891c-19a33dba6c13
Change-Id: I0c14c57b1d06cf8dabfa7ac1f5f558355bf4c1f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8498180
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110317}
This is a reland of commit 2d3fa0264a
The reland fixes v8_verify_torque_generation_invariance builds,
which shouldn't run metagen layout paths.
Original change's description:
> [torque][metagen] Make C++ the source of truth for object layouts
>
> V8_OBJECT class layouts are written twice today, as C++ members and
> again as @cppObjectLayoutDefinition field blocks in .tq. With this CL
> the metagen harvest exports every C++-authored layout into a JSON
> sidecar (schema: tools/metagen/layout_ir.py) and Torque builds its class
> fields from those records. The handwritten .tq field blocks become
> redundant and can be deleted once this has soaked.
>
> Facts that C++ does not encode (accessor constness and synchronization,
> custom weak marking, semantic types like SmiTagged<Flags>, tail
> identity) move into V8_TQ_* member annotations next to the fields they
> describe, visible only to the metagen parse.
>
> Source positions ship separately in layout-positions.json: the facts
> sidecar only changes when a layout actually changes, so unrelated header
> edits no longer re-run torque. The positions file maps every field to
> its C++ member.
>
> Bug: 531344950
> Change-Id: I12e17496b0838f6c55455347f585998ed301e20a
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8309056
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Jakob Linke <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#110140}
Bug: 531344950
Change-Id: I7770288ab0e27863e38f807f16d0b9eff886bd95
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8479172
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110147}
This reverts commit 2d3fa0264a.
Reason for revert: Failed V8 Clusterfuzz Linux64 - release builder
Failure Link: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Clusterfuzz%20Linux64%20-%20release%20builder/57805/overview
Original change's description:
> [torque][metagen] Make C++ the source of truth for object layouts
>
> V8_OBJECT class layouts are written twice today, as C++ members and
> again as @cppObjectLayoutDefinition field blocks in .tq. With this CL
> the metagen harvest exports every C++-authored layout into a JSON
> sidecar (schema: tools/metagen/layout_ir.py) and Torque builds its class
> fields from those records. The handwritten .tq field blocks become
> redundant and can be deleted once this has soaked.
>
> Facts that C++ does not encode (accessor constness and synchronization,
> custom weak marking, semantic types like SmiTagged<Flags>, tail
> identity) move into V8_TQ_* member annotations next to the fields they
> describe, visible only to the metagen parse.
>
> Source positions ship separately in layout-positions.json: the facts
> sidecar only changes when a layout actually changes, so unrelated header
> edits no longer re-run torque. The positions file maps every field to
> its C++ member.
>
> Bug: 531344950
> Change-Id: I12e17496b0838f6c55455347f585998ed301e20a
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8309056
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Jakob Linke <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#110140}
Bug: 531344950
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I2c06cef626715c44f767a7ef7c3bea6eb64cf644
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8478463
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Ryan Diaz <ryandiaz@chromium.org>
Auto-Submit: Ryan Diaz <ryandiaz@chromium.org>
Owners-Override: Ryan Diaz <ryandiaz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110141}
V8_OBJECT class layouts are written twice today, as C++ members and
again as @cppObjectLayoutDefinition field blocks in .tq. With this CL
the metagen harvest exports every C++-authored layout into a JSON
sidecar (schema: tools/metagen/layout_ir.py) and Torque builds its class
fields from those records. The handwritten .tq field blocks become
redundant and can be deleted once this has soaked.
Facts that C++ does not encode (accessor constness and synchronization,
custom weak marking, semantic types like SmiTagged<Flags>, tail
identity) move into V8_TQ_* member annotations next to the fields they
describe, visible only to the metagen parse.
Source positions ship separately in layout-positions.json: the facts
sidecar only changes when a layout actually changes, so unrelated header
edits no longer re-run torque. The positions file maps every field to
its C++ member.
Bug: 531344950
Change-Id: I12e17496b0838f6c55455347f585998ed301e20a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8309056
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110140}
To maintain the property that tools/dev/update-compile-commands.py
creates all files that an indexer (like clangd) needs, it should
invoke metagen to generate instance type header files.
Change-Id: I9a3342067ed630fcf10d4d922bba9e1ba115abf5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8336475
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#109631}
So far, v8_use_perfetto was disabled by default in a V8 checkout, and
enabled by default in a chrome checkout. Typically, such default values
should be set in `declare_args()` so that the value set in the gn args
overwrites the default value. However, in chrome checkouts, the default
value was set outside of `declare_args()` and thereby overwrote the
value that was set in the gn args.
This CL moves the default value of v8_use_perfetto into
`declare_args()`, so that it can be overwritten by gn args.
Additionally, in `gm xxx.debug` builds v8_use_perfetto is set to false,
as it causes linking issues in chrome checkouts otherwise.
Change-Id: I1e8017a0f36a6b6b402cae5739afef0c121ed291
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8191556
Auto-Submit: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#109034}
For exporting /docs to v8.dev we need to have better markdown
validation in the main v8 tree.
- Check that the markdown files have valid syntax
- Verify that relative / local links in markdown files exist
Change-Id: I7544c0146b45b7d7d2c6264dc8fedf3334876931
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8027158
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Marco Vitale <mrcvtl@chromium.org>
Cr-Commit-Position: refs/heads/main@{#108603}
setup_worktree_build.py's diverged-DEPS cache path copies every
shared_dir with shutil.copytree, which raises NotADirectoryError on a
regular file. The exception was swallowed, so GEMINI.md was never cached
and its symlink was skipped. copy2 files, copytree directories.
Introduced by c6ed55f9da ("[worktree] Link GEMINI.md and .agents in
new worktrees"), which added the GEMINI.md file to shared_dirs.
Change-Id: Idf56e6292dcdb98c241d74fb547d558a356465fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8037031
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#108442}
This CL performs a broad replacement of --experimental-wasm-* with --wasm-*
in all text files (tests, scripts, documentation, and error messages).
The flag definitions in src/flags/flag-definitions.h already use the new
naming convention for their primary names, and provide the old names
starting with --experimental- as aliases for backward compatibility.
This CL ensures that the codebase uses the new primary names.
TAG=agy
R=ecmziegler@chromium.org
Bug: 526972176
Change-Id: Ie756bfcb99122e90c16a7ef0355848ae4709991d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7993475
Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
SLSA-Policy-Verified: SLSA Policy Verification Service <devtools-gerritcodereview-exitgate@google.com>
Cr-Commit-Position: refs/heads/main@{#108400}
This modifies v8_root_dir() to check remote.origin.url for a local path,
enabling setup_worktree_build.py to run on git clones.
TAG=agy
CONV=f465d63d-d80b-497b-acee-5955e7734d08
Change-Id: I6d87832161f52787324b9a059e00d78b980cc402
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7956898
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#108058}
Add support for bypassing the worktree dependency symlink setup in
setup_worktree_build.py if the local git config 'v8.skip-worktree-deps'
is set to true.
This supports workflows where the worktree is pre-populated (e.g. via
Btrfs CoW snapshots) and we want to keep them isolated instead of
symlinking.
To enable this bypass, run the following command in your git repository:
git config v8.skip-worktree-deps true
Change-Id: I98a6ed34a6a52edbabb72a197b7fd66729f84247
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7950159
Auto-Submit: Darius Mercadier <dmercadier@chromium.org>
Reviewed-by: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#108038}
WebAssembly tests (wasm-js and wasm-spec-tests) are downloaded as
tarballs via gclient hooks. Since `gclient sync` is not run in
worktrees, these local test directories eventually drift out of sync.
This CL updates the `setup_worktree_build.py` script to turn these two
test directories into symlinks to the main repo.
TAG=agy
CONV=4b602eb2-fabf-4afc-b49a-de137a5762ee
Change-Id: I2ab250a7ac5147f92510143d4bd7784974793cca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7944423
Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#108009}
Incorporate a DEPS caching strategy into setup_worktree_build.py to
handle worktree builds where the dependencies in the worktree diverge
from the main repository. When DEPS diverges, a content-hash based
shared cache is initialized and updated via gclient sync.
This allows gm to just work and build a worktree at any branch base,
which can be handy for e.g., bisecting inside a worktree.
TAG=agy
CONV=87c789d2-e06c-4825-a6a1-dcd9d9e3302d
Change-Id: If12c0c86d43721894d3e0f113e9dce834edb5efd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7879825
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#107877}
Corrects path resolution in tools/dev/gm.py's git worktree detection.
V8_ROOT_DIR is designed to refer to the main repository for external
dependency symlinks (which is correct), but for querying the active
workspace branch, HEAD commit, and changed files/mtimes, V8_DIR (the
current worktree directory) must be used.
Previously, running gm.py in a worktree would run git diff and ls-files
inside the main repository, completely ignoring changes in the active
worktree.
TAG=agy
CONV=3ef94fb5-550d-473c-8054-493f7cd74fb5
No-try: true
Change-Id: Icf278516ca7c548642b21eb4ade3ca3d5276ffa9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7876390
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#107597}
In update-compile-commands.py, the order in which architectures are
processed determines which compilation flags are used for shared files
in compile_commands.json.
This change ensures that the default architecture (DEFAULT_ARCH)
is processed first, so its flags are preferred for shared files.
Change-Id: I441b48fc23aae9fd28687c4269e9f9bdec735361
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7822980
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Marco Vitale <mrcvtl@chromium.org>
Commit-Queue: Marco Vitale <mrcvtl@chromium.org>
Cr-Commit-Position: refs/heads/main@{#107104}
This patch fixes:
- rebuild the "main" branch after rebasing
- rebuild when adding/modifying C++ unit tests
- rebuild when non-d8 binaries are outdated
- re-run tests when switching from "check" to "checkall"
No-Try: true
Change-Id: If8851fbd6d0b32ca9b7f62c5c3c69ad993fee174
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7822240
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#107097}
gm.py uses git diff --name-only origin/main to find changed files.
This misses files that changed in origin/main and were brought in by a
rebase.
This CL fixes this by storing the HEAD commit hash to last_built_commit
in the build directory after a successful build.
On subsequent runs, it uses git diff --name-only <last_commit>..HEAD
to find changed files. It falls back to origin/main if needed.
TAG=agy
CONV=13dbf7dd-7179-45c5-a854-e05fff874a3c
Change-Id: Ic9bb7e047e4ecd86b028179aff46381634ef8ee7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7817341
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#107093}
This modifies gm.py and run-tests.py to support conditionally skipping
tests when the worktree is unmodified.
We use find to check for newer files in source directories rather
than git status, which allows us to ignore untracked scratch files.
The .last_test_run timestamp file is now stored in the specific
out/<config>/ directory to prevent config switching from
invalidating the state.
TAG=agy
CONV=aec474ae-adb5-482c-80d3-0a863c0c1466
Change-Id: Iac774c250b95c63dc7c7f99d70f95f8319a88432
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7796000
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#107033}
Agents seem to be happy modifying subprojects and breaking the builds
in subtle ways. Use all the force to sync.
Drive-by-fix:
- cleaner _parse_sync_arg handling
Change-Id: Ie09e1f3d7cc73902be92879b154ca97168141570
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7799294
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#106878}
In gm.py, it tries to detect the main repo by calling git.
This change modifies that logic to catch exceptions (like FileNotFoundError
if git is missing, or handle non-zero exit codes if not a git repo).
It falls back to the V8_DIR path if git fails or is missing.
TAG=agy
CONV=119526fa-5a97-4d6c-aa91-d67367f89a60
Change-Id: Id524358c1f024bba7abcd783e0d72aedf6608504
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7790316
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#106807}
* Reliably detect the relative root of a worktree and the actual root
of the repo.
* Setup symlinks for gclient managed dependencies into the worktree.
Change-Id: Ia25cf03eff23e93b75bbba3aa2ee7e55d431d0b0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7789890
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#106763}
Walk up the directory tree to find .gclient. If we are in a worktree, find the main repo and walk up from there as well.
TAG=agy
CONV=8d632dc8-38e8-422c-a6bf-c332b1747b44
Change-Id: Iad3c6f83bfdebc75a95c8cb784c66cf6625b484b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7784474
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#106714}
In chromium checkouts, the compilation commands can have different paths. This CL fixes two cases where the V8 path was used also for chromium checkouts.
Change-Id: I1d720264f78b046d256960952ba4189a5c23c66e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7778148
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#106602}
With this change, gm can also create out directories in a chromium checkout, which is useful in CiderG checkouts. Additionally, it finds the .gclient file, even in a chrome checkout, and uses either the V8 or the Chrome solution definition to find the correct reclient setup.
Change-Id: I17454b2d7d91d6c4bbea1fe11a1f8535e3326fad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7768436
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#106581}
gcertstatus produces no output in some cases on windows which was
not handled properly before.
Drive-by-fixes:
- Use Path.read_text and Path.write_text
- Use in-operator for checking custom_vars keys
Fixed: 446939468
Change-Id: I845b0c7e172d4c139ce9b20758ecccefd67d035f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6974146
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#102721}
This change detects if V8 is part of a Chromium checkout and adjusts the
default output directory (`OUTDIR`) accordingly. It also updates the
build directory parsing to correctly handle paths relative to the
Chromium root.
No-try: true
Change-Id: I65aa1a2e135fae13e9677ca9944298116fa1f46a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6906863
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#102214}
Quiet mode means we only print anything in case of error.
Can be enabled by passing "quiet" as a keyword, or by calling
gm.py via a symlink named "quietgm".
Bonus change: make gm.py robust to being called from any directory.
No-Try: true
Change-Id: Ica758098226e291a3d4d90a4da63b3901a5fb43e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6836375
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#101838}
Support non-wasm and non-i18n builds. This allows us to always enable
static roots when the minimal dependencies (ptr compression, external
code space) are satisfied.
Ensure the bazel build has the same defaults.
Drive-By: Fix remote exec of the static roots builds by using a
different output directory schema.
Bug: 429272280
Change-Id: Ib356b8eec35a857f0b346d1f44c98918b1a616a5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6695691
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#101219}