xref: /OK3568_Linux_fs/buildroot/package/nodejs/0001-add-qemu-wrapper-support.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom fa09fa3ad6a21ae0b35fb860f76d1762e5f29972 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Adam Duskett <aduskett@gmail.com>
3*4882a593SmuzhiyunDate: Mon, 27 Sep 2021 12:55:09 -0700
4*4882a593SmuzhiyunSubject: [PATCH] add qemu-wrapper support
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunV8's JIT infrastructure requires binaries such as mksnapshot and mkpeephole to
7*4882a593Smuzhiyunbe run in the host during the build. However, these binaries must have the
8*4882a593Smuzhiyunsame bit-width as the target (e.g. a x86_64 host targeting ARMv6 needs to
9*4882a593Smuzhiyunproduce a 32-bit binary). To work around this issue, cross-compile the
10*4882a593Smuzhiyunbinaries for the target and run them on the host with QEMU, much like
11*4882a593Smuzhiyungobject-introspection.
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunHowever, for the host-variant we do not want to use a
14*4882a593Smuzhiyunqemu-wrapper, so add @MAYBE_WRAPPER@ to the needed files and sed the path to
15*4882a593Smuzhiyunthe qemu-wrapper on target builds, and remove @MAYBE_WRAPPER@ entirely on
16*4882a593Smuzhiyunhost-builds.
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunSigned-off-by: Adam Duskett <aduskett@gmail.com>
19*4882a593Smuzhiyun---
20*4882a593Smuzhiyun node.gyp                 | 4 ++--
21*4882a593Smuzhiyun tools/v8_gypfiles/v8.gyp | 8 ++++----
22*4882a593Smuzhiyun 2 files changed, 6 insertions(+), 6 deletions(-)
23*4882a593Smuzhiyun
24*4882a593Smuzhiyundiff --git a/node.gyp b/node.gyp
25*4882a593Smuzhiyunindex 8ba0dfeb..c77f6f7d 100644
26*4882a593Smuzhiyun--- a/node.gyp
27*4882a593Smuzhiyun+++ b/node.gyp
28*4882a593Smuzhiyun@@ -491,7 +491,7 @@
29*4882a593Smuzhiyun               'action_name': 'run_mkcodecache',
30*4882a593Smuzhiyun               'process_outputs_as_sources': 1,
31*4882a593Smuzhiyun               'inputs': [
32*4882a593Smuzhiyun-                '<(mkcodecache_exec)',
33*4882a593Smuzhiyun+                @MAYBE_WRAPPER@ '<(mkcodecache_exec)',
34*4882a593Smuzhiyun               ],
35*4882a593Smuzhiyun               'outputs': [
36*4882a593Smuzhiyun                 '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc',
37*4882a593Smuzhiyun@@ -516,7 +516,7 @@
38*4882a593Smuzhiyun               'action_name': 'node_mksnapshot',
39*4882a593Smuzhiyun               'process_outputs_as_sources': 1,
40*4882a593Smuzhiyun               'inputs': [
41*4882a593Smuzhiyun-                '<(node_mksnapshot_exec)',
42*4882a593Smuzhiyun+                @MAYBE_WRAPPER@ '<(node_mksnapshot_exec)',
43*4882a593Smuzhiyun               ],
44*4882a593Smuzhiyun               'outputs': [
45*4882a593Smuzhiyun                 '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
46*4882a593Smuzhiyundiff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
47*4882a593Smuzhiyunindex 48ec392b..f9bb0fbe 100644
48*4882a593Smuzhiyun--- a/tools/v8_gypfiles/v8.gyp
49*4882a593Smuzhiyun+++ b/tools/v8_gypfiles/v8.gyp
50*4882a593Smuzhiyun@@ -220,7 +220,7 @@
51*4882a593Smuzhiyun         {
52*4882a593Smuzhiyun           'action_name': 'run_torque_action',
53*4882a593Smuzhiyun           'inputs': [  # Order matters.
54*4882a593Smuzhiyun-            '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
55*4882a593Smuzhiyun+            @MAYBE_WRAPPER@ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
56*4882a593Smuzhiyun             '<@(torque_files)',
57*4882a593Smuzhiyun           ],
58*4882a593Smuzhiyun           'outputs': [
59*4882a593Smuzhiyun@@ -351,7 +351,7 @@
60*4882a593Smuzhiyun         {
61*4882a593Smuzhiyun           'action_name': 'generate_bytecode_builtins_list_action',
62*4882a593Smuzhiyun           'inputs': [
63*4882a593Smuzhiyun-            '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)',
64*4882a593Smuzhiyun+            @MAYBE_WRAPPER@ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)',
65*4882a593Smuzhiyun           ],
66*4882a593Smuzhiyun           'outputs': [
67*4882a593Smuzhiyun             '<(generate_bytecode_builtins_list_output)',
68*4882a593Smuzhiyun@@ -533,7 +533,7 @@
69*4882a593Smuzhiyun             ],
70*4882a593Smuzhiyun           },
71*4882a593Smuzhiyun           'inputs': [
72*4882a593Smuzhiyun-            '<(mksnapshot_exec)',
73*4882a593Smuzhiyun+            @MAYBE_WRAPPER@ '<(mksnapshot_exec)',
74*4882a593Smuzhiyun           ],
75*4882a593Smuzhiyun           'outputs': [
76*4882a593Smuzhiyun             '<(INTERMEDIATE_DIR)/snapshot.cc',
77*4882a593Smuzhiyun@@ -1448,7 +1448,7 @@
78*4882a593Smuzhiyun         {
79*4882a593Smuzhiyun           'action_name': 'run_gen-regexp-special-case_action',
80*4882a593Smuzhiyun           'inputs': [
81*4882a593Smuzhiyun-            '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)',
82*4882a593Smuzhiyun+            @MAYBE_WRAPPER@ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)',
83*4882a593Smuzhiyun           ],
84*4882a593Smuzhiyun           'outputs': [
85*4882a593Smuzhiyun             '<(SHARED_INTERMEDIATE_DIR)/src/regexp/special-case.cc',
86*4882a593Smuzhiyun--
87*4882a593Smuzhiyun2.31.1
88*4882a593Smuzhiyun
89