From 5708c5b04f09f49a99c2c9d7a1894d24bce6a3e7 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Tue, 9 Aug 2022 10:56:55 +0300 Subject: [PATCH] package/nodejs: fix 'Duplicate v8 target errors when cross-compiling' error Reported also via: https://github.com/nodejs/node/issues/37441 Patched in: https://github.com/minrk/node/commit/5e533cb943eef68b270f55f0cba02c0ec67c699d The error is: ``` ninja: Entering directory `out/Release' ninja: error: obj.host/tools/v8_gypfiles/run_torque.ninja:1356: multiple rules generate gen/torque-generated/bit-fields.h [-w dupbuild=err] make[2]: *** [Makefile:127: node] Error 1 make[1]: *** [package/pkg-generic.mk:293: /output/build/nodejs-16.15.0/.stamp_built] Error 2 make: *** [Makefile:84: _all] Error 2 ``` Fixes: http://autobuild.buildroot.net/results/7fe9132236ee8e3a86dd97fe96ffee42990c2d19/ Signed-off-by: Alexandru Ardelean [Thomas: - regenerate patch as a git formatted patch, add a link to the original location, add my own SoB to it - improve commit log] Signed-off-by: Thomas Petazzoni --- ...lude-obj-name-in-shared-intermediate.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 package/nodejs/0003-include-obj-name-in-shared-intermediate.patch diff --git a/package/nodejs/0003-include-obj-name-in-shared-intermediate.patch b/package/nodejs/0003-include-obj-name-in-shared-intermediate.patch new file mode 100644 index 0000000000..b439c66a0c --- /dev/null +++ b/package/nodejs/0003-include-obj-name-in-shared-intermediate.patch @@ -0,0 +1,42 @@ +From e6e691d093de440e0f408d48971e2b7332a07d58 Mon Sep 17 00:00:00 2001 +From: Min RK +Date: Fri, 19 Feb 2021 11:57:04 +0100 +Subject: [PATCH] include obj name in shared intermediate + +avoids duplicate ninja rules for v8 used in host and target + +From: https://github.com/minrk/node/commit/5e533cb943eef68b270f55f0cba02c0ec67c699d +Signed-off-by: Thomas Petazzoni +--- + tools/gyp/pylib/gyp/generator/ninja.py | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/tools/gyp/pylib/gyp/generator/ninja.py b/tools/gyp/pylib/gyp/generator/ninja.py +index d173bf2299..efaeee53ef 100644 +--- a/tools/gyp/pylib/gyp/generator/ninja.py ++++ b/tools/gyp/pylib/gyp/generator/ninja.py +@@ -42,7 +42,7 @@ generator_default_variables = { + # the start of a string, while $| is used for variables that can appear + # anywhere in a string. + "INTERMEDIATE_DIR": "$!INTERMEDIATE_DIR", +- "SHARED_INTERMEDIATE_DIR": "$!PRODUCT_DIR/gen", ++ "SHARED_INTERMEDIATE_DIR": "$!PRODUCT_DIR/$|OBJ/gen", + "PRODUCT_DIR": "$!PRODUCT_DIR", + "CONFIGURATION_NAME": "$|CONFIGURATION_NAME", + # Special variables that may be used by gyp 'rule' targets. +@@ -285,6 +285,12 @@ class NinjaWriter: + CONFIGURATION_NAME = "$|CONFIGURATION_NAME" + path = path.replace(CONFIGURATION_NAME, self.config_name) + ++ obj = "obj" ++ if self.toolset != "target": ++ obj += "." + self.toolset ++ ++ path = path.replace("$|OBJ", obj) ++ + return path + + def ExpandRuleVariables(self, path, root, dirname, source, ext, name): +-- +2.37.3 +