Generalize Linux check to `__linux__` to support non-glibc systems (like musl).
Also, return `false` on unknown/untested OS.
Without this commit, the code compiles (with warnings) but fails:
register_backend: registered backend CPU (1 devices)
register_device: registered device CPU (Intel(R) Xeon(R) Platinum 8488C)
build: 6487 (
51c4cac6) with x86_64-linux-musl-gcc (GCC) 15.1.0 for x86_64-linux-musl (debug)
system info: n_threads = 8, n_threads_batch = 8, total_threads = 16
....
print_info: n_ctx_orig_yarn = 262144
print_info: rope_finetuned = unknown
print_info: model type = 4B
Illegal instruction (core dumped)
Signed-off-by: Adrien Gallouët <redacted>
#include "ggml-cpu.h"
#include "traits.h"
-#if defined(__gnu_linux__)
+#if defined(__linux__)
#include <sys/syscall.h>
#include <unistd.h>
#endif
#define XFEATURE_XTILEDATA 18
static bool ggml_amx_init() {
-#if defined(__gnu_linux__)
+#if defined(__linux__)
if (syscall(SYS_arch_prctl, ARCH_REQ_XCOMP_PERM, XFEATURE_XTILEDATA)) {
fprintf(stderr, "AMX is not ready to be used!\n");
return false;
return true;
#elif defined(_WIN32)
return true;
+#else
+ return false;
#endif
}