Message ID | 20250621194009.350944-1-skandigraun@gmail.com |
---|---|
State | New |
Headers | show |
Series | [meta-oe] nodejs: ignore QEMU_OPTIONS for native signature generation | expand |
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_22.16.0.bb b/meta-oe/recipes-devtools/nodejs/nodejs_22.16.0.bb index 4bc829f140..bf2bae27f1 100644 --- a/meta-oe/recipes-devtools/nodejs/nodejs_22.16.0.bb +++ b/meta-oe/recipes-devtools/nodejs/nodejs_22.16.0.bb @@ -47,6 +47,10 @@ CVE_PRODUCT += "node.js" # v8 errors out if you have set CCACHE CCACHE = "" +# Changing qemu options can incorrectly invalidate sstate, even though it is not used. +# Exclude it from signature generation. +BB_HASHCONFIG_IGNORE_VARS:append:class-native = " QEMU_OPTIONS " + def map_nodejs_arch(a, d): import re
NodeJS recipe uses qemu to run some target binaries during compilation in qemu, in case the build machine's and the target machine's CPU bit-width are different. The task that generates some helper scripts (do_create_v8_qemu_wrapper) is executed before do_compile. In case the target machine changes, that also changes the value of QEMU_OPTIONS variable, since that is always derived from the target machine's properties, even when the current recipe is class-native. This also means that in case the target machine changes, that invalidates the do_create_v8_qemu_wrapper's sstate cache (along with the very costly do_compile), for both target and native builds. However for native builds qemu isn't used at all, since the target and build CPU are the same, their bit-width matches too. To avoid unnecessarily invalidating the sstate cache of nodejs-native when the target machine changes, add QEMU_OPTIONS to BB_HASHCONFIG_IGNORE_VARS in order to exclude it from the signature generation. Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> --- meta-oe/recipes-devtools/nodejs/nodejs_22.16.0.bb | 4 ++++ 1 file changed, 4 insertions(+)