summary refs log tree commit diff
path: root/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix')
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix9
1 files changed, 9 insertions, 0 deletions
diff --git a/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix b/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
index 46e9e592ddc..e7aa47bdb6b 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
@@ -12,5 +12,14 @@ appleDerivation {
 
     cp -r dispatch/*.h $out/include/dispatch
     cp -r os/object*.h  $out/include/os
+
+    # gcc compatability. Source: https://stackoverflow.com/a/28014302/3714556
+    substituteInPlace $out/include/dispatch/object.h \
+      --replace 'typedef void (^dispatch_block_t)(void);' \
+                '#ifdef __clang__
+                 typedef void (^dispatch_block_t)(void);
+                 #else
+                 typedef void* dispatch_block_t;
+                 #endif'
   '';
 }