On Mon, Oct 12, 2020 at 2:38 AM Cameron Caturria <surviving.deceptive.wo...@gmail.com> wrote: > > Hi, > I have been trying for some time to build a working V8 static library > under Mac OS with limited success. I can get it to build, but the > result is unstable. > I have successfully setup depot-tools, added it to my $PATH, fetched > V8 and checked out the desired version (I selected version 8.1.307, > since this is the version that ships with the latest stable Node.js). > If I use the one step build process after gclient sync: > Tools/dev/gm.py x64.release > The result is a build that doesn’t work at all (v8::V8::Initialize() > never returns, program hangs). > If I add use_custom_libcxx to build arguments as suggested by this > related Stack Overflow question: > https://stackoverflow.com/questions/62250913/cross-compiling-v8-for-arm-hello-world-hangs-during-initialize > I get a somewhat usable build with some stability issues. > Specifically, it will crash inside of all error object constructors > (v8::Exception::RangeError, v8::Exception::TypeError etc). > The v8_shell sample application that builds alongside V8 works as it > should, but if I build it myself it crashes after evaluating every > line. > I am new to V8, and the documentation is anything but beginner > friendly. In addition to the embedding guide, I am mostly relying on > the API reference made available by nodesource.com. > I am using the following build args: > > is_component_build = false > is_debug = false > target_cpu = "x64" > use_goma = false > goma_dir = "None" > v8_enable_backtrace = true > v8_enable_disassembler = true > v8_enable_object_print = true > v8_enable_verify_heap = true > use_custom_libcxx=false > I am using the default Clang which ships with Xcode: > > Apple clang version 11.0.0 (clang-1100.0.33.12) > Target: x86_64-apple-darwin19.6.0 > Thread model: posix > InstalledDir: > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin > > I am using the following compiler and linker flags to build the > shell.cc example: > g++ -O3 -std=c++0x ./shell.cc -I/usr/local/include/v8 -lwee8 > -lv8_libbase -lv8_libplatform -pthreads -o v8_shell > > A nudge in the right direction would be greatly appreciated. > Thanks in advance.
There are a couple of preprocessor flags (the -DV8_OPTION_NAME flags you see in the build output) that affect V8's ABI, notably V8_COMPRESS_POINTERS and V8_31BIT_SMIS_ON_64BIT_ARCH, and perhaps V8_ENABLE_CHECKS too. Compiling the shell should be done with the exact same flags as the V8 build. -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/CAHQurc_jNB%2BD%3Dnku7AMBNt9TX79_m2u-fq8HDkhxAbte658BXQ%40mail.gmail.com.