Constellation / iv

ECMAScript Lexer / Parser / Interpreter / VM / method JIT written in C++
BSD 2-Clause "Simplified" License
417 stars 33 forks source link

gc: backport basic arm64 support for Darwin #109

Open barracuda156 opened 8 months ago

barracuda156 commented 8 months ago

https://github.com/ivmai/bdwgc/commit/d5d091accae6046d2a5dadb283e110b31f4684bd https://github.com/ivmai/bdwgc/commit/0a8d46700a9d633ab8167c7781f314742630d186

See: https://github.com/Constellation/iv/issues/107

barracuda156 commented 8 months ago

P. S. Perhaps a better way would be to link against external boehmgc, however I tried that, and as of now it fails:

[ 99%] Linking CXX executable lv5
cd /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_devel_iv/iv/work/build/iv/lv5 && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/lv5.dir/link.txt --verbose=ON
/opt/local/bin/clang++-mp-16 -pipe -Os -DNDEBUG -I/opt/local/include -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -std=c++11 -stdlib=libc++ -fno-operator-names -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk CMakeFiles/lv5.dir/main.cc.o -o lv5   -L/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_devel_iv/iv/work/iv-64c3a9c7c517063f29d90d449180ea8f6f4d946f/iv/lv5/third_party/netlib_dtoa  -L/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_devel_iv/iv/work/iv-64c3a9c7c517063f29d90d449180ea8f6f4d946f/iv/lv5/third_party/v8_dtoa  -Wl,-rpath,/opt/local/lib liblv5.a -lgc third_party/v8_dtoa/libv8_dtoa.a third_party/netlib_dtoa/libnetlib_dtoa.a /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/lib/libm.tbd /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/lib/libc++.tbd 
ld: Undefined symbols:
  GC_throw_bad_alloc(), referenced from:
      iv::lv5::railgun::Context::Context() in main.cc.o
      iv::lv5::JSEvalError::New(iv::lv5::Context*, iv::lv5::JSString*) in main.cc.o
      iv::lv5::JSRangeError::New(iv::lv5::Context*, iv::lv5::JSString*) in main.cc.o
      iv::lv5::JSReferenceError::New(iv::lv5::Context*, iv::lv5::JSString*) in main.cc.o
      iv::lv5::JSSyntaxError::New(iv::lv5::Context*, iv::lv5::JSString*) in main.cc.o
      iv::lv5::JSTypeError::New(iv::lv5::Context*, iv::lv5::JSString*) in main.cc.o
      iv::lv5::JSURIError::New(iv::lv5::Context*, iv::lv5::JSString*) in main.cc.o
      ...
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [iv/lv5/lv5] Error 1