On 2026-08-25 11:07 a.m., Hakan Candar wrote:
Sergey,
Well, we generally try to stick close to the ABI that Linux uses
(calling convention-wise), because why wouldn't we. But it's not
automatic, the *-gnu target has to be defined in GCC & binutils, even
if it's defined similarly to the *-linux-gnu and the BSD targets. See
gcc:gcc/config/aarch64/aarch64-gnu.h for example. So we need to submit
our target upstream either way. (And there's no default Mach ABI, but
there are targets for GNU/Hurd systems on various architectures.)
Since GCC 16, there is actually a riscv64-gnu target upstream [1]. LLVM
also introduced a riscv64-gnu target not too later [2].
[1]:
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=869f2ab30ad53033ad6ac82569d74ce3a99fe510
[2]: https://github.com/llvm/llvm-project/pull/157212
Hakan
I added a baseline configuration for Hurd aarch64 and riscv64 to Clang. If
anything needs to be fixed or adjusted please file a PR or an issue. I also
only added riscv64 support. I don't know if there is 32-bit support. But
that's easy to add to what little is there.