Hi all, We are experimenting with building v8 for embedding within our c++ application.
Following the guidance - https://v8.dev/docs/embed, it seems the doc is for 13.1. When I try to builder newer code using the *x64.release.sample* config, the build fails very quickly: ../../src/base/vector.h:296:32: error: no member named 'make_unique_for_overwrite' in namespace 'std' I then discovered this issue - https://issues.chromium.org/issues/377222400 which speaks to the fact the doc might be out of date. Using the suggested config from the linked issue above: target_cpu = "x64" target_os = "linux" is_debug = true is_component_build = false v8_monolithic = true v8_static_library = false v8_use_external_startup_data = false use_custom_libcxx = false is_clang = false treat_warnings_as_errors = false $ ninja -v -C out.gn/x64.release v8_monolith $ g++ -I. -Iinclude samples/hello-world.cc -o hello_world -fno-rtti -fuse-ld=lld -lv8_monolith -lv8_libbase -lv8_libplatform -Lout.gn/x64.release/obj/ -pthread -std=c++20 -DV8_COMPRESS_POINTERS -DV8_ENABLE_SANDBOX I was able to compile 13.7 (13.7.152.8) on ubuntu 24.04 and link the hello world example to the v8 static libs however I noticed the hello_world executable (which did run successfully) was a whopping 3.3 GB? Trying to build 13.8 (13.8.258.2) using the same config fails to build successfully: FAILED: mksnapshot "python3" "../../build/toolchain/gcc_link_wrapper.py" --output="./mksnapshot" -- g++ -pie -Wl,--fatal-warnings -Wl,--build-id -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -m64 -Wl,-z,defs -Wl,--as-needed --sysroot=../../build/linux/debian_bullseye_amd64-sysroot -rdynamic -pie -Wl,--disable-new-dtags -Wl,--gc-sections -o "./mksnapshot" -Wl,--start-group @"./mksnapshot.rsp" -Wl,--end-group -latomic -ldl -lpthread -lrt -Wl,--start-group <<<truncated for brevity>>> /usr/bin/ld: obj/build/rust/allocator/libbuild_srust_sallocator_callocator.rlib(libbuild_srust_sallocator_callocator.build_srust_sallocator_callocator.ff715ce24295f21e-cgu.0.rcgu.o): in function `__rustc::__rust_alloc_error_handler': ./../../build/rust/allocator/lib.rs:106:(.text._RNvCsiiodXzYB6cW_7___rustc26___rust_alloc_error_handler+0x10): undefined reference to `rust_allocator_internal::alloc_error_handler_impl()' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Currently some of the gn config args used that enables v8 (v13.7) to build and link the example successfully are doc'd as deprecated: use_custom_libcxx = false is_clang = false I've read other posts that mention clang is the only compiler supported moving forward which furthers my belief I'm using an incorrect build configuration. My question is what is the correct gn config one should use to build the latest (13.8) v8 code and be able to link the hello world example successfully? Thanks in advance for any suggestions/guidance! -- -- v8-dev mailing list [email protected] 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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/v8-dev/ed71a168-fcd1-4bd1-a504-ba55c40691d5n%40googlegroups.com.
