Message ID | 20230724122227.1267568-1-Martin.Jansa@gmail.com |
---|---|
State | New |
Headers | show |
Series | [meta-oe,dunfell] nodejs-14: add -fpermissive BUILD_CXXFLAGS to fix build with gcc-13 on host | expand |
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
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<v8::internal::Cell, v8::internal::Object>’: ../deps/v8/src/codegen/tnode.h:262:72: required from ‘const bool v8::internal::is_subtype<v8::internal::Cell, v8::internal::Cell>::value’ ../deps/v8/src/codegen/tnode.h:346:75: required by substitution of ‘template<class U, typename std::enable_if<v8::internal::is_subtype<U, v8::internal::Cell>::value, int>::type <anonymous> > v8::internal::TNode<v8::internal::Cell>::TNode(const v8::internal::TNode<T>&) [with U = v8::internal::Cell; typename std::enable_if<v8::internal::is_subtype<U, v8::internal::Cell>::value, int>::type <anonymous> = <missing>]’ ../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<v8::internal::Cell, v8::internal::Cell>::value’: ../deps/v8/src/codegen/tnode.h:346:75: required by substitution of ‘template<class U, typename std::enable_if<v8::internal::is_subtype<U, v8::internal::Cell>::value, int>::type <anonymous> > v8::internal::TNode<v8::internal::Cell>::TNode(const v8::internal::TNode<T>&) [with U = v8::internal::Cell; typename std::enable_if<v8::internal::is_subtype<U, v8::internal::Cell>::value, int>::type <anonymous> = <missing>]’ ../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<v8::internal::Cell, v8::internal::Object>’ 262 | std::is_convertible<T, Object>::value); | ^~~~~ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- meta-oe/recipes-devtools/nodejs/nodejs_14.18.1.bb | 3 +++ 1 file changed, 3 insertions(+)