yvt/openspades

Tracking Issue: Support for Apple Silicon

yvt opened this issue · 4 comments

yvt commented

This issue tracks OpenSpades' support for Apple Silicon Macs (AArch64).

  • Rosetta 2 (x86_64 emulation): 0.1.3 is fully functional and reasonably fast (screenshots)
  • Building on an Apple Silicon Mac: Successfully done in #924
  • Native builds
    • Universal binaries of dependencies (e.g., libopusfile)
    • Universal binary of the main application
    • Blocked by #906 #981
  • Build in CI
  • arm64e support? This is beneficial from a security point of view, and that's important because OpenSpades is a network application

We have previously tried to make openspades work on aarch64 but angeloscript was just far too old for it to work properly and just failed build. Updating angeloscript didn't yield anything useful. More issues only.

yvt commented

Builds successfully with master + #1005 + *:arm64-osx vcpkg packages. It however fails at runtime:

2022/06/20 00:52:30 [ScriptManager.cpp:44]  (0, 0) : ERR  : Failed in call to function 'RegisterObjectBehaviour' with 'AudioChunk' and 'void f()' (Code: -7)

2022/06/20 00:52:30 [Main.cpp:650] [!] Terminating due to the fatal error: Not supported
at ../Sources/ScriptBindings/ScriptManager.cpp:190
static void spades::ScriptManager::CheckError(int) at ScriptManager.cpp:189
spades::ScriptManager::ScriptManager() at ScriptManager.cpp:77
int main(int, char **) at Main.cpp:320

Builds successfully with master + #1005 + *:arm64-osx vcpkg packages. It however fails at runtime:

2022/06/20 00:52:30 [ScriptManager.cpp:44]  (0, 0) : ERR  : Failed in call to function 'RegisterObjectBehaviour' with 'AudioChunk' and 'void f()' (Code: -7)

2022/06/20 00:52:30 [Main.cpp:650] [!] Terminating due to the fatal error: Not supported
at ../Sources/ScriptBindings/ScriptManager.cpp:190
static void spades::ScriptManager::CheckError(int) at ScriptManager.cpp:189
spades::ScriptManager::ScriptManager() at ScriptManager.cpp:77
int main(int, char **) at Main.cpp:320

You need to update the angelscript files as is.