diff --git a/CMakeLists.txt b/CMakeLists.txt index dbd35922c8bad0c4e218a7d5593e30dcba8cb9a8..48878a454f61f24ab78f47c56974240cefc61b54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -601,6 +601,17 @@ elseif(ZIG_HOST_TARGET_IS_ANDROID) else() set(ZIG_HOST_TARGET_ABI "-android") endif() +else() + check_symbol_exists(__GLIBC__ "features.h" ZIG_HOST_TARGET_IS_GLIBC) + if(ZIG_HOST_TARGET_IS_GLIBC) + if(ZIG_HOST_TARGET_ARCH MATCHES "^arm(eb)?$" OR ZIG_HOST_TARGET_ARCH MATCHES "^thumb(eb)?$" OR ZIG_HOST_TARGET_ARCH MATCHES "^powerpc(le)?$") + set(ZIG_HOST_TARGET_ABI "-gnueabihf") + elseif(ZIG_HOST_TARGET_ARCH MATCHES "^mips(el)?$") + set(ZIG_HOST_TARGET_ABI "-gnueabi") + else() + set(ZIG_HOST_TARGET_ABI "-gnu") + endif() + endif() endif() set(ZIG_HOST_TARGET_TRIPLE "${ZIG_HOST_TARGET_ARCH}-${ZIG_HOST_TARGET_OS}${ZIG_HOST_TARGET_ABI}" CACHE STRING "Host zig target triple.") diff --git a/lib/std/Target.zig b/lib/std/Target.zig index a6e7b129dd5e78ba1e509f9a8a3f57a679a95def..1220f970d86d715f6d905c71830da876f9f73586 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -859,6 +859,8 @@ pub const Abi = enum { .armeb, .powerpc, .powerpcle, + .sh, + .sheb, .thumb, .thumbeb, => .musleabihf, @@ -873,21 +875,21 @@ pub const Abi = enum { .alpha, .arc, .arceb, - .or1k, + .loongarch32, .sparc, .sparc64, => .gnu, .csky, => .gnueabi, .hppa, - .sh, - .sheb, => .gnueabihf, // No glibc or musl support. .xtensa, .xtensaeb, => .none, + .hppa64, + => .eabihf, else => .musl, },