48d964af83
Lack of size information can cause debugging and observability tools to misbehave or to fail. We can see the size for all builtins is zero with objdump: $ objdump -t d8 | grep Builtins_ArgumentsAdaptorTrampoline 0000000001084a00 l F .text 0000000000000000 Builtins_ArgumentsAdaptorTrampoline ^ Size is zero Tools like bpftrace rely on the function size to guarantee a tracepoint is added within function boundaries. Without size information, those tools can't guarantee a tracepoint will be added safely. Add .size directive for each builtin function, as described in https://sourceware.org/binutils/docs-2.24/as/Size.html#Size, to fix this issue. We can see with objdump that the size is properly set: $ objdump -t d8 | grep Builtins_ArgumentsAdaptorTrampoline 00000000010bf820 l F .text 0000000000000140 Builtins_ArgumentsAdaptorTrampoline R=bmeurer@chromium.org, hpayer@chromium.org, verwaest@chromium.org, yangguo@chromium.org Change-Id: I4cd2b0a12b629498dd9d7465cc1002dda37028c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1898807 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64824} |
||
---|---|---|
build_overrides | ||
custom_deps | ||
docs | ||
gni | ||
include | ||
infra | ||
samples | ||
src | ||
test | ||
testing | ||
third_party | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.editorconfig | ||
.flake8 | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.gn | ||
.vpython | ||
.ycm_extra_conf.py | ||
AUTHORS | ||
BUILD.gn | ||
ChangeLog | ||
CODE_OF_CONDUCT.md | ||
codereview.settings | ||
COMMON_OWNERS | ||
DEPS | ||
ENG_REVIEW_OWNERS | ||
INFRA_OWNERS | ||
INTL_OWNERS | ||
LICENSE | ||
LICENSE.fdlibm | ||
LICENSE.strongtalk | ||
LICENSE.v8 | ||
LICENSE.valgrind | ||
MIPS_OWNERS | ||
OWNERS | ||
PPC_OWNERS | ||
PRESUBMIT.py | ||
README.md | ||
S390_OWNERS | ||
WATCHLISTS |
V8 JavaScript Engine
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://v8.dev/docs
Getting the Code
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8
and fetch all of its dependencies.
To stay up to date, run
git pull origin
gclient sync
For fetching all branches, add the following into your remote
configuration in .git/config
:
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
fetch = +refs/tags/*:refs/tags/*
Contributing
Please follow the instructions mentioned at v8.dev/docs/contribute.