is use_cxx11 supported in 9.6?

59 views
Skip to first unread message

Jason Wan

unread,
Dec 10, 2021, 5:10:00 PM12/10/21
to v8-users
Hello,

I have been experimenting with upgrading our embedded v8 engine to 9.6. 
OS: RHel 8 , GCC: 8.2.1
I used below build options:

is_debug = false
is_clang = false
is_component_build = true
target_cpu = "x64"
v8_target_cpu = "x64"
treat_warnings_as_errors = false
use_custom_libcxx = false
use_gold = false
v8_use_external_startup_data = false
use_cxx11 = true

Almost immediately after I start compilation, I saw errors like below examples: ../../src/heap/cppgc/marker.h:203:14: error: ‘make_unique’ is not a member of ‘std’
../../src/heap/cppgc/marking-state.h:445:33: error: ‘exchange’ is not a member of ‘std’
../../src/base/iterator.h:76:51: error: ‘rend’ is not a member of ‘std’
../../include/cppgc/type-traits.h:187:16: warning: variable templates only available with -std=c++14 or -std=gnu++14 constexpr bool IsGarbageCollectedMixinTypeV =
...
...
 which seems to depend on c++14. Is it still possible to compile with use_cxx11 for 9.6? 

Additionally, after I remove the use_cxx11=true, the compilation did proceed further but I got another error:

/usr/include/c++/8/bits/std_function.h:666:7: error: ‘std::function<_Res(_ArgTypes ...)>::function(_Functor) [with _Functor = v8::internal::CallOrConstructBuiltinsAssembler::CallReceiver(v8::internal::Builtin, v8::internal::TNode<v8::internal::Int32T>, v8::internal::TNode<v8::internal::UintPtrT>, v8::base::Optional<v8::internal::TNode<v8::internal::Object> >) [with Descriptor = v8::internal::CallTrampoline_BaselineDescriptor]::<lambda()>; <template-parameter-2-2> = void; <template-parameter-2-3> = void; _Res = v8::internal::TNode<v8::internal::Object>; _ArgTypes = {}]’, declared using local type ‘v8::internal::CallOrConstructBuiltinsAssembler::CallReceiver(v8::internal::Builtin, v8::internal::TNode<v8::internal::Int32T>, v8::internal::TNode<v8::internal::UintPtrT>, v8::base::Optional<v8::internal::TNode<v8::internal::Object> >) [with Descriptor = v8::internal::CallTrampoline_BaselineDescriptor]::<lambda()>’, is used but never defined [-fpermissive]

       function<_Res(_ArgTypes...)>::

       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

/usr/include/c++/8/bits/std_function.h:666:7: error: ‘std::function<_Res(_ArgTypes ...)>::function(_Functor) [with _Functor = v8::internal::CallOrConstructBuiltinsAssembler::CallReceiver(v8::internal::Builtin, v8::internal::TNode<v8::internal::Int32T>, v8::internal::TNode<v8::internal::UintPtrT>, v8::base::Optional<v8::internal::TNode<v8::internal::Object> >) [with Descriptor = v8::internal::CallTrampoline_Baseline_CompactDescriptor]::<lambda()>; <template-parameter-2-2> = void; <template-parameter-2-3> = void; _Res = v8::internal::TNode<v8::internal::Object>; _ArgTypes = {}]’, declared using local type ‘v8::internal::CallOrConstructBuiltinsAssembler::CallReceiver(v8::internal::Builtin, v8::internal::TNode<v8::internal::Int32T>, v8::internal::TNode<v8::internal::UintPtrT>, v8::base::Optional<v8::internal::TNode<v8::internal::Object> >) [with Descriptor = v8::internal::CallTrampoline_Baseline_CompactDescriptor]::<lambda()>’, is used but never defined [-fpermissive]

[2404/3065] CXX obj/v8_initializers/builtins-iterator-gen.o

ninja: build stopped: subcommand failed.

Any idea how to solve this error?

Thank you!
Reply all
Reply to author
Forward
0 new messages