summaryrefslogtreecommitdiff
path: root/dev-libs/libffi/files/libffi-3.2.1-musl-emutramp.patch
blob: 7c011d2b6d07c775bdb5a168f3a14af431c28bae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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 <somasis@exherbo.org>
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 <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