https://github.com/libffi/libffi/commit/e169ba2b83c780058fe626856cfdb5903a85cb97.patch https://bugs.gentoo.org/694916 From e169ba2b83c780058fe626856cfdb5903a85cb97 Mon Sep 17 00:00:00 2001 From: Kylie McClain Date: Fri, 29 Apr 2016 21:04:07 -0400 Subject: [PATCH] Fix usage on musl libc A gcc compiled on musl does not define __gnu_linux__, it defines __linux__. Only on glibc does __gnu_linux__ get defined, but both define __linux__, so we should check for that instead. With this patch, libffi works perfectly, and passes its testsuite entirely on musl libc systems. --- src/closures.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/closures.c b/src/closures.c index 3dec0e31..05849e06 100644 --- a/src/closures.c +++ b/src/closures.c @@ -35,7 +35,7 @@ #include #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE -# if __gnu_linux__ && !defined(__ANDROID__) +# if __linux__ && !defined(__ANDROID__) /* This macro indicates it may be forbidden to map anonymous memory with both write and execute permission. Code compiled when this option is defined will attempt to map such pages once, but if it