From fa09fa3ad6a21ae0b35fb860f76d1762e5f29972 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Mon, 27 Sep 2021 12:55:09 -0700 Subject: [PATCH] add qemu-wrapper support V8's JIT infrastructure requires binaries such as mksnapshot and mkpeephole to be run in the host during the build. However, these binaries must have the same bit-width as the target (e.g. a x86_64 host targeting ARMv6 needs to produce a 32-bit binary). To work around this issue, cross-compile the binaries for the target and run them on the host with QEMU, much like gobject-introspection. However, for the host-variant we do not want to use a qemu-wrapper, so add @MAYBE_WRAPPER@ to the needed files and sed the path to the qemu-wrapper on target builds, and remove @MAYBE_WRAPPER@ entirely on host-builds. Signed-off-by: Adam Duskett --- node.gyp | 4 ++-- tools/v8_gypfiles/v8.gyp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/node.gyp b/node.gyp index 8ba0dfeb..c77f6f7d 100644 --- a/node.gyp +++ b/node.gyp @@ -491,7 +491,7 @@ 'action_name': 'run_mkcodecache', 'process_outputs_as_sources': 1, 'inputs': [ - '<(mkcodecache_exec)', + @MAYBE_WRAPPER@ '<(mkcodecache_exec)', ], 'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc', @@ -516,7 +516,7 @@ 'action_name': 'node_mksnapshot', 'process_outputs_as_sources': 1, 'inputs': [ - '<(node_mksnapshot_exec)', + @MAYBE_WRAPPER@ '<(node_mksnapshot_exec)', ], 'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc', diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp index 48ec392b..f9bb0fbe 100644 --- a/tools/v8_gypfiles/v8.gyp +++ b/tools/v8_gypfiles/v8.gyp @@ -220,7 +220,7 @@ { 'action_name': 'run_torque_action', 'inputs': [ # Order matters. - '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', + @MAYBE_WRAPPER@ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', '<@(torque_files)', ], 'outputs': [ @@ -351,7 +351,7 @@ { 'action_name': 'generate_bytecode_builtins_list_action', 'inputs': [ - '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)', + @MAYBE_WRAPPER@ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)', ], 'outputs': [ '<(generate_bytecode_builtins_list_output)', @@ -533,7 +533,7 @@ ], }, 'inputs': [ - '<(mksnapshot_exec)', + @MAYBE_WRAPPER@ '<(mksnapshot_exec)', ], 'outputs': [ '<(INTERMEDIATE_DIR)/snapshot.cc', @@ -1448,7 +1448,7 @@ { 'action_name': 'run_gen-regexp-special-case_action', 'inputs': [ - '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)', + @MAYBE_WRAPPER@ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)', ], 'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/src/regexp/special-case.cc', -- 2.31.1