jmpews / Dobby

a lightweight, multi-platform, multi-architecture hook framework.
Apache License 2.0
3.89k stars 796 forks source link

Compilation failure on AArch64 Darwin #192

Open Naville opened 1 year ago

Naville commented 1 year ago
cmake ~/Development/Dobby -DCMAKE_BUILD_TYPE=Release -DDOBBY_GENERATE_SHARED=OFF -DDynamicBinaryInstrument=ON -DFullFloatingPointRegisterPack=ON
duplicate symbol 'shared_cache_get_load_addr()' in:
    libsupervisor_call_monitor.a(supervisor_call_monitor.cc.o)
    ../../libdobby.a(dyld_shared_cache_symbol_table_iterator.cc.o)
ld: 1 duplicate symbol for architecture arm64

Changing DynamicBinaryInstrument to OFF

Undefined symbols for architecture arm64:
  "_DobbyInstrument", referenced from:
      ctor() in darwin_common_api.cc.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [example/darwin_example] Error 1
make[1]: *** [example/CMakeFiles/darwin_example.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Undefined symbols for architecture arm64:
  "_DobbyInstrument", referenced from:
      supervisor_call_monitor_register_svc(unsigned long) in libsupervisor_call_monitor.a(supervisor_call_monitor.cc.o)
  "_intercept_routing_common_bridge_handler", referenced from:
     -exported_symbol[s_list] command line option
ld: symbol(s) not found for architecture arm64