From 172fc48573ab66732ed193f00a49e1159727b402 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Mon, 24 Jul 2023 14:22:27 +0200 Subject: nodejs-14: add -fpermissive BUILD_CXXFLAGS to fix build with gcc-13 on host MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes nodejs-native build with gcc-13 on host: http://errors.yoctoproject.org/Errors/Details/728221/ nodejs-12 doesn't need it yet and nodejs-16 doesn't need it as well '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_EMBEDDER_STRING="-node.84"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_CONCURRENT_MARKING' '-DV8_ARRAY_BUFFER_EXTENSION' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' -ITOPDIR/tmp-glibc/work/x86_64-linux/nodejs-native/14.18.1-r0/recipe-sysroot-native/usr/include -I../deps/v8 -I../deps/v8/include -I.//Release/obj/gen/torque-output-root -I.//Release/obj/gen/generate-bytecode-output-root -pthread -Wno-unused-parameter -m64 -Wno-return-type -fno-strict-aliasing -m64 -O3 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++1y -MMD -MF .//Release/.deps/Release/obj.host/v8_initializers/gen/torque-output-root/torque-generated/../../deps/v8/src/builtins/array-find-tq-csa.o.d.raw -isystemTOPDIR/tmp-glibc/work/x86_64-linux/nodejs-native/14.18.1-r0/recipe-sysroot-native/usr/include -isystemTOPDIR/tmp-glibc/work/x86_64-linux/nodejs-native/14.18.1-r0/recipe-sysroot-native/usr/include -O2 -pipe -c In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/move.h:37, from /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/stl_function.h:60, from /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/functional:49, from ../deps/v8/src/codegen/code-stub-assembler.h:8, from ../deps/v8/src/builtins/builtins-promise-gen.h:8, from ../deps/v8/src/builtins/builtins-async-gen.h:8, from ../deps/v8/src/builtins/builtins-async-function-gen.cc:5: /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/type_traits: In instantiation of ‘struct std::is_convertible’: ../deps/v8/src/codegen/tnode.h:262:72: required from ‘const bool v8::internal::is_subtype::value’ ../deps/v8/src/codegen/tnode.h:346:75: required by substitution of ‘template::value, int>::type > v8::internal::TNode::TNode(const v8::internal::TNode&) [with U = v8::internal::Cell; typename std::enable_if::value, int>::type = ]’ ../deps/v8/src/codegen/code-stub-assembler.h:1868:33: required from here /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/type_traits:1417:30: error: invalid use of incomplete type ‘class v8::internal::Cell’ [-fpermissive] 1417 | : public __bool_constant<__is_convertible(_From, _To)> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../deps/v8/src/objects/objects.h:26, from ../deps/v8/src/objects/fixed-array.h:10, from ../deps/v8/src/objects/contexts.h:8, from ../deps/v8/src/execution/thread-local-top.h:10, from ../deps/v8/src/execution/isolate-data.h:12, from ../deps/v8/src/execution/isolate.h:24, from ../deps/v8/src/codegen/interface-descriptors.h:14, from ../deps/v8/src/codegen/callable.h:8, from ../deps/v8/src/codegen/code-factory.h:8, from ../deps/v8/src/compiler/code-assembler.h:17, from ../deps/v8/src/codegen/code-stub-assembler.h:15: ../deps/v8/src/objects/object-list-macros.h:19:7: note: forward declaration of ‘class v8::internal::Cell’ 19 | class Cell; | ^~~~ In file included from ../deps/v8/src/codegen/interface-descriptors.h:12: ../deps/v8/src/codegen/tnode.h: In instantiation of ‘const bool v8::internal::is_subtype::value’: ../deps/v8/src/codegen/tnode.h:346:75: required by substitution of ‘template::value, int>::type > v8::internal::TNode::TNode(const v8::internal::TNode&) [with U = v8::internal::Cell; typename std::enable_if::value, int>::type = ]’ ../deps/v8/src/codegen/code-stub-assembler.h:1868:33: required from here ../deps/v8/src/codegen/tnode.h:262:72: error: ‘value’ is not a member of ‘std::is_convertible’ 262 | std::is_convertible::value); | ^~~~~ Signed-off-by: Martin Jansa Signed-off-by: Armin Kuster --- meta-oe/recipes-devtools/nodejs/nodejs_14.18.1.bb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_14.18.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_14.18.1.bb index 882d3f6573..1d95e369da 100644 --- a/meta-oe/recipes-devtools/nodejs/nodejs_14.18.1.bb +++ b/meta-oe/recipes-devtools/nodejs/nodejs_14.18.1.bb @@ -135,6 +135,9 @@ python do_create_v8_qemu_wrapper () { do_create_v8_qemu_wrapper[dirs] = "${B}" addtask create_v8_qemu_wrapper after do_configure before do_compile +# Work around compatibility issues with gcc-13 on host +BUILD_CXXFLAGS += "-fpermissive" + LDFLAGS:append:x86 = " -latomic" # Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi -- cgit v1.2.3-54-g00ecf