Fix usage on musl libc
authorKylie McClain <somasis@exherbo.org>
Sat, 30 Apr 2016 01:04:07 +0000 (21:04 -0400)
committerKylie McClain <somasis@exherbo.org>
Sat, 30 Apr 2016 01:31:59 +0000 (21:31 -0400)
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

index 3dec0e3..05849e0 100644 (file)
@@ -35,7 +35,7 @@
 #include <ffi_common.h>
 
 #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