Since gcc defaults to cdecl, we use -mabi=ms on x86_64, and I think ARM has an identical ABI across machines, I think we just want to omit the decorations, rather than explicitly writing __cdecl?
No, we want explicit decorations on all functions. There's no guarantee that the Unix default is compatible with the Windows one across all platforms and architectures.
That makes sense to me, but then I'm confused, why do we use -mabi=ms in that case?