build: Enable arm embedded builtins (#15939)
* Revert "FIXME: disable v8 embedded builtins feature for arm flavor"
This reverts commit 8ec3bc0272
.
* build: don't enable embedded builtins for arm/arm64 native mksnapshot
This commit is contained in:
parent
d3c58ea48c
commit
77f73830e8
2 changed files with 14 additions and 27 deletions
|
@ -370,7 +370,7 @@ step-maybe-native-mksnapshot-gn-gen: &step-maybe-native-mksnapshot-gn-gen
|
||||||
command: |
|
command: |
|
||||||
if [ "$BUILD_NATIVE_MKSNAPSHOT" == "1" ]; then
|
if [ "$BUILD_NATIVE_MKSNAPSHOT" == "1" ]; then
|
||||||
cd src
|
cd src
|
||||||
gn gen out/native_mksnapshot --args='import("'$GN_CONFIG'") cc_wrapper="'"$SCCACHE_PATH"'" v8_snapshot_toolchain="'"$MKSNAPSHOT_TOOLCHAIN"'"'" $GN_EXTRA_ARGS"
|
gn gen out/native_mksnapshot --args='import("'$GN_CONFIG'") cc_wrapper="'"$SCCACHE_PATH"'" v8_snapshot_toolchain="'"$MKSNAPSHOT_TOOLCHAIN"'"'" $GN_EXTRA_ARGS v8_enable_embedded_builtins = false"
|
||||||
else
|
else
|
||||||
echo 'Skipping native mksnapshot GN gen for non arm build'
|
echo 'Skipping native mksnapshot GN gen for non arm build'
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -3,34 +3,17 @@ From: John Kleinschmidt <jkleinsc@github.com>
|
||||||
Date: Mon, 19 Nov 2018 18:33:56 -0500
|
Date: Mon, 19 Nov 2018 18:33:56 -0500
|
||||||
Subject: Do not run arm/arm64 mksnapshot binaries
|
Subject: Do not run arm/arm64 mksnapshot binaries
|
||||||
|
|
||||||
* For arm and arm64 target_arches, Chromium builds mksnapshot as an x64 binary
|
For arm and arm64 target_arches, Chromium builds mksnapshot as an x64 binary and
|
||||||
and as part of that build mksnapshot is executed to produce snapshot_blob.bin.
|
as part of that build mksnapshot is executed to produce snapshot_blob.bin.
|
||||||
Chromium does not build native arm and arm64 binaries of mksnapshot, but
|
Chromium does not build native arm and arm64 binaries of mksnapshot, but
|
||||||
Electron does, so this patch makes sure that the build doesn't try to run
|
Electron does, so this patch makes sure that the build doesn't try to run
|
||||||
the mksnapshot binary if it was built for arm or arm64.
|
the mksnapshot binary if it was built for arm or arm64.
|
||||||
* Disable embedded builtins feature for arm flavor, these are generated during
|
|
||||||
build and cannot be created without running the mksnapshot binaries.
|
|
||||||
https://bugs.chromium.org/p/v8/issues/detail?id=6666
|
|
||||||
|
|
||||||
diff --git a/BUILD.gn b/BUILD.gn
|
diff --git a/BUILD.gn b/BUILD.gn
|
||||||
index 22a465d7732ad9ec36e465bc87df79687a6f2425..a575495b80a9852ca25abcdc18ee3fc0f96005a2 100644
|
index b1194e4b828e66d8d09fac57481efe313031f3ac..c256945650c24324c28a2e17fb299a1d0c2dcd19 100644
|
||||||
--- a/BUILD.gn
|
--- a/BUILD.gn
|
||||||
+++ b/BUILD.gn
|
+++ b/BUILD.gn
|
||||||
@@ -73,8 +73,11 @@ declare_args() {
|
@@ -1247,9 +1247,19 @@ if (v8_use_snapshot && v8_use_external_startup_data) {
|
||||||
|
|
||||||
# Enable embedded builtins.
|
|
||||||
# TODO(jgruber,v8:6666): Support ia32 and maybe MSVC.
|
|
||||||
- v8_enable_embedded_builtins = v8_use_snapshot && v8_current_cpu != "x86" &&
|
|
||||||
- !is_aix && (!is_win || is_clang)
|
|
||||||
+ # FIXME: mksnapshot binaries must be run on arm hardware to support
|
|
||||||
+ # embedded builtins.
|
|
||||||
+ v8_enable_embedded_builtins =
|
|
||||||
+ v8_use_snapshot && v8_current_cpu != "x86" && v8_current_cpu != "arm64" &&
|
|
||||||
+ v8_current_cpu != "arm" && !is_aix && (!is_win || is_clang)
|
|
||||||
|
|
||||||
# Enable embedded bytecode handlers.
|
|
||||||
v8_enable_embedded_bytecode_handlers = false
|
|
||||||
@@ -1263,9 +1266,15 @@ if (v8_use_snapshot && v8_use_external_startup_data) {
|
|
||||||
]
|
]
|
||||||
public_deps = [
|
public_deps = [
|
||||||
":natives_blob",
|
":natives_blob",
|
||||||
|
@ -39,9 +22,13 @@ index 22a465d7732ad9ec36e465bc87df79687a6f2425..a575495b80a9852ca25abcdc18ee3fc0
|
||||||
|
|
||||||
+ if (v8_snapshot_toolchain == "//build/toolchain/linux:clang_arm" ||
|
+ if (v8_snapshot_toolchain == "//build/toolchain/linux:clang_arm" ||
|
||||||
+ v8_snapshot_toolchain == "//build/toolchain/linux:clang_arm64") {
|
+ v8_snapshot_toolchain == "//build/toolchain/linux:clang_arm64") {
|
||||||
+ public_deps += [ ":mksnapshot($v8_snapshot_toolchain)" ]
|
+ public_deps += [
|
||||||
|
+ ":mksnapshot($v8_snapshot_toolchain)",
|
||||||
|
+ ]
|
||||||
+ } else {
|
+ } else {
|
||||||
+ public_deps += [ ":run_mksnapshot_default" ]
|
+ public_deps += [
|
||||||
|
+ ":run_mksnapshot_default",
|
||||||
|
+ ]
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
if (v8_use_multi_snapshots) {
|
if (v8_use_multi_snapshots) {
|
||||||
|
|
Loading…
Reference in a new issue