• Matheus Marchini's avatar
    snapshot: add size info for builtins on Posix · 48d964af
    Matheus Marchini authored
    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: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#64824}
    48d964af
Name
Last commit
Last update
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.flake8 Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
COMMON_OWNERS Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...