ARM64/AArch8 support
Aegisub should provide builds for Windows on ARM64 (Microsoft naming) and macOS on AArch8 (LLVM naming). This requires changes in the installers, Meson, and CI.
I don't know if the codebase is ready. Some Linux systems have builds for architectures other than x64, but I haven't heard about people actually using them. Compiling Aegisub and seeing what blows up is one way to find out.
In theory, the sources of errors I know can happen are:
- Preprocessor/build system conditionals that target x64 and error on ARM.
- Signedness of char (typically signed on x64, typically unsigned on ARM).
- Unaligned accesses.
I have an ISC-licensed project written in C, Meson, and InnoSetup with ARM64 support and working Github Actions CI. The code can be reused:
- Meson cross files.
- InnoSetup (yes, you only need to conditionally set the installer's allowed architectures).
- Github Actions.
I don't have anything for macOS.
I'm not convinced that Windows ARM is worth worrying about. I'd like to do MacOS ARM builds on CI, but there was some issue that came up when bumping the MacOS containers if I recall correctly? There are definitely people compiling and using it on ARM, so it's possible. I'd also like to avoid worrying about cross builds if possible.
Oh, and ARM is also going to run into the code signing issues I complained about in the 3.4.0 release post. So 'proper' MacOS support can't happen until Apple decides they want to let me sign up for the developer program.
I did a Windows ARM build way back and don't recall it needed special treatment. (libass required a patch to disable x86 ASM but that is now unnecessary)
https://github.com/driver1998/Aegisub