V8 (branches 9.5 and 9.6) build fails on multiple platforms

72 views
Skip to first unread message

Angelo Dell'Aera

unread,
Oct 8, 2021, 4:24:47 AM10/8/21
to v8-dev

Hi all,
just to want to report an issue I am experiencing in branches 9.5 and 9.6. The 
build fails on multiple platforms (tested on Ubuntu 18.04, Ubuntu 20.04, Gentoo
Linux and MacOS ). The error I get is the same on all the platforms and is reported 
below for convenience. This does not happen with branches <= 9.4


FAILED: obj/v8_base_without_compiler/heap.o
1481../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/v8_base_without_compiler/heap.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DUSE_X11=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-14-init-4918-ge787678c-1\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DCR_SYSROOT_HASH=95051d95804a77144986255f534acb920cee375b -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -DENABLE_GDB_JIT_INTERFACE -DENABLE_MINOR_MC -DV8_INTL_SUPPORT -DV8_ATOMIC_OBJECT_FIELD_WRITES -DV8_ATOMIC_MARKING_STATE -DV8_ENABLE_LAZY_SOURCE_POSITIONS -DV8_SHARED_RO_HEAP -DV8_WIN64_UNWINDING_INFO -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH -DV8_SNAPSHOT_COMPRESSION -DV8_ENABLE_WEBASSEMBLY -DV8_ALLOCATION_FOLDING -DV8_ALLOCATION_SITE_TRACKING -DV8_ADVANCED_BIGINT_ALGORITHMS -DV8_INCLUDE_RECEIVER_IN_ARGC -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS -DCPPGC_CAGED_HEAP -DV8_TARGET_ARCH_X64 -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_LINUX -DV8_RUNTIME_CALL_STATS -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen -I../../include -Igen/include -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/zlib -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -m64 -march=x86-64 -msse3 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -ffile-compilation-dir=. -no-canonical-prefixes -Wall -Werror -Wextra -Wimplicit-fallthrough -Wunreachable-code-aggressive -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-ignored-pragma-optimize -Wno-builtin-assume-aligned-alignment -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wmax-tokens -fno-omit-frame-pointer -g0 -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wmissing-field-initializers -Wno-shadow -Wunreachable-code -Wshorten-64-to-32 -O3 -fdata-sections -ffunction-sections -fno-unique-section-names -fvisibility=default -Wexit-time-destructors -std=c++14 -fno-trigraphs -Wno-trigraphs -fno-exceptions -fno-rtti --sysroot=../../build/linux/debian_sid_amd64-sysroot -c ../../src/heap/heap.cc -o obj/v8_base_without_compiler/heap.o
1482In file included from ../../src/heap/heap.cc:5:
1483../../src/heap/heap.h:1751:22: error: definition of implicit copy constructor for 'GCCallbackTuple' is deprecated because it has a user-provided copy assignment operator [-Werror,-Wdeprecated-copy-with-user-provided-copy]
1484 GCCallbackTuple& operator=(const GCCallbackTuple& other) V8_NOEXCEPT;
1485 ^
1486../../build/linux/debian_sid_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ext/new_allocator.h:150:23: note: in implicit copy constructor for 'v8::internal::Heap::GCCallbackTuple' first required here
1487 { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
1488 ^
1489../../build/linux/debian_sid_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/alloc_traits.h:512:8: note: in instantiation of function template specialization '__gnu_cxx::new_allocator<v8::internal::Heap::GCCallbackTuple>::construct<v8::internal::Heap::GCCallbackTuple, v8::internal::Heap::GCCallbackTuple>' requested here
1490 __a.construct(__p, std::forward<_Args>(__args)...);
1491 ^
1492../../build/linux/debian_sid_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_uninitialized.h:976:17: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<v8::internal::Heap::GCCallbackTuple>>::construct<v8::internal::Heap::GCCallbackTuple, v8::internal::Heap::GCCallbackTuple>' requested here
1493 __traits::construct(__alloc, __dest, std::move(*__orig));
1494 ^
1495../../build/linux/debian_sid_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_uninitialized.h:1014:7: note: in instantiation of function template specialization 'std::__relocate_object_a<v8::internal::Heap::GCCallbackTuple, v8::internal::Heap::GCCallbackTuple, std::allocator<v8::internal::Heap::GCCallbackTuple>>' requested here
1496 std::__relocate_object_a(std::__addressof(*__cur),
1497 ^
1498../../build/linux/debian_sid_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_uninitialized.h:1028:14: note: in instantiation of function template specialization 'std::__relocate_a_1<v8::internal::Heap::GCCallbackTuple *, v8::internal::Heap::GCCallbackTuple *, std::allocator<v8::internal::Heap::GCCallbackTuple>>' requested here
1499 return __relocate_a_1(std::__niter_base(__first),
1500 ^
1501../../build/linux/debian_sid_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_vector.h:456:14: note: in instantiation of function template specialization 'std::__relocate_a<v8::internal::Heap::GCCallbackTuple *, v8::internal::Heap::GCCallbackTuple *, std::allocator<v8::internal::Heap::GCCallbackTuple>>' requested here
1502 return std::__relocate_a(__first, __last, __result, __alloc);
1503 ^
1504../../build/linux/debian_sid_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_vector.h:469:9: note: in instantiation of member function 'std::vector<v8::internal::Heap::GCCallbackTuple>::_S_do_relocate' requested here
1505 return _S_do_relocate(__first, __last, __result, __alloc, __do_it{});
1506 ^
1507../../build/linux/debian_sid_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/vector.tcc:461:23: note: in instantiation of member function 'std::vector<v8::internal::Heap::GCCallbackTuple>::_S_relocate' requested here
1508 __new_finish = _S_relocate(__old_start, __position.base(),
1509 ^
1510../../build/linux/debian_sid_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/vector.tcc:121:4: note: in instantiation of function template specialization 'std::vector<v8::internal::Heap::GCCallbackTuple>::_M_realloc_insert<void (*&)(v8::Isolate *, v8::GCType, v8::GCCallbackFlags, void *), v8::GCType &, void *&>' requested here
1511 _M_realloc_insert(end(), std::forward<_Args>(__args)...);
1512 ^
1513../../src/heap/heap.cc:6039:26: note: in instantiation of function template specialization 'std::vector<v8::internal::Heap::GCCallbackTuple>::emplace_back<void (*&)(v8::Isolate *, v8::GCType, v8::GCCallbackFlags, void *), v8::GCType &, void *&>' requested here
1514 gc_prologue_callbacks_.emplace_back(callback, gc_type, data);
1515 ^
15161 error generated.

Ciao,
Angelo

Jakob Kummerow

unread,
Oct 8, 2021, 4:19:38 PM10/8/21
to v8-dev
Have you run gclient sync after switching branches?

What are your GN args?


--
--
v8-dev mailing list
v8-...@googlegroups.com
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to v8-dev+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/d1777904-00b3-4b9a-ba58-c3aa2ab02061n%40googlegroups.com.

Angelo Dell'Aera

unread,
Oct 9, 2021, 4:38:59 AM10/9/21
to v8-dev

FYI I maintain a Python V8 wrapper (available at https://github.com/area1/stpyv8) and use 
Github Actions to automatically build new releases on multiple platforms and never experienced 
this issue since the first release (v7.9.317.31). 

To answer your questions, yes "gclient sync" is executed every time the workflow runs and these 
are the GN args I use

gn_args = {
  "v8_deprecation_warnings" : "true",
  "v8_imminent_deprecation_warnings" : "true",
  "v8_enable_disassembler" : "false",
  "v8_enable_i18n_support"  : "true",
  "is_component_build" : "false",
  "is_debug" : "true" if os.environ.get("STPYV8_DEBUG") else "false",
  "use_custom_libcxx" : "false",
  "v8_monolithic" : "true",
  "v8_use_external_startup_data" : "false",
  "v8_enable_pointer_compression" : "false",
  "v8_enable_31bit_smis_on_64bit_arch" : "false"
}

Regards,
Angelo

Jakob Kummerow

unread,
Oct 11, 2021, 1:04:12 PM10/11/21
to v8-dev
I'd try to use either both of:
is_clang = false
use_custom_libcxx = false
or neither of them. Looks like the bundled Clang isn't happy with the sysroot's libcxx.

A possible alternative solution for making things work with non-default toolchains is treat_warnings_as_errors = false (and possibly fatal_linker_warnings = false as well).

Angelo Dell'Aera

unread,
Oct 13, 2021, 6:20:43 AM10/13/21
to v8-dev
In the last couple of days I tried playing with the GN args as you suggested but no luck. 

Please note that I was able to successfully compile removing both of them as you suggested but I got the following error when I tried running the test suite

ImportError: /usr/lib/python3.9/site-packages/_STPyV8.cpython-39-x86_64-linux-gnu.so: undefined symbol: _ZNSt3__119__shared_weak_countD2Ev

Moreover please be aware that I was able to successfully compile V8 v9.4.146.21 today using the GN args I showed in my previous email and no issues at all with the test suite.

Regards,
Angelo

Angelo Dell'Aera

unread,
Oct 14, 2021, 2:51:47 AM10/14/21
to v8-dev
Just an update.

I figured out what the issue was and solved it. The error I got is actually a warning which was treated as 
an error until I added "treat_warnings_as_errors = false" to the GN args. This was enough to successfully
build V8 and the Python wrapper. At a first glance it seems to me the V8 libcxx was updated in branch 9.5+ 
and the updated version emits this warning now.

Thanks for the support and regards,
Angelo
Reply all
Reply to author
Forward
0 new messages