From 9aa949a4b6cb3f0501458f82cc1a33dba0130a57 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Sat, 25 May 2013 16:56:22 +0200
Subject: [PATCH] gnu: libsigsegv: Fix mips64el-linux-gnu (cross-)builds.

* gnu/packages/libsigsegv.scm (libsigsegv): New `arguments' field.
---
 gnu/packages/libsigsegv.scm | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/gnu/packages/libsigsegv.scm b/gnu/packages/libsigsegv.scm
index 12cb4ba3b49..4689b3d8b5d 100644
--- a/gnu/packages/libsigsegv.scm
+++ b/gnu/packages/libsigsegv.scm
@@ -36,6 +36,23 @@ (define-public libsigsegv
    (build-system gnu-build-system)
    (home-page "http://www.gnu.org/software/libsigsegv/")
    (synopsis "Library for handling page faults")
+   (arguments
+    ;; On MIPS, work around this error:
+    ;;
+    ;; In file included from fault-linux-mips-old.h:18:0,
+    ;;    [...]
+    ;; linux-libre-headers-cross-mips64el-linux-gnu-3.3.8/include/asm/sigcontext.h:57:8: error: redefinition of 'struct sigcontext'
+    (if (string-contains (or (%current-target-system) (%current-system))
+                         "mips64el")
+        `(#:phases (alist-cons-before
+                    'configure 'patch-mips-old-h
+                    (lambda _
+                      (substitute* "src/fault-linux-mips-old.h"
+                        (("#include <asm/sigcontext\\.h>") "")))
+                    ,(if (%current-target-system)
+                         '%standard-cross-phases
+                         '%standard-phases)))
+        '()))
    (description
 "GNU libsigsegv is a library for handling page faults in user mode. A page
 fault occurs when a program tries to access to a region of memory that is
-- 
GitLab