File: fix-mmap.patch

package info (click to toggle)
haskell-hashable 1.2.4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 220 kB
  • ctags: 43
  • sloc: haskell: 1,114; ansic: 462; makefile: 6
file content (77 lines) | stat: -rw-r--r-- 2,959 bytes parent folder | download
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Description: Call mmap through a C helper
 This fixes problems with the type of the offset argument on some
 architectures.
Author: Colin Watson <cjwatson@debian.org>
Forwarded: https://github.com/tibbe/hashable/pull/96
Last-Update: 2015-05-09

Index: b/cbits/mmap.c
===================================================================
--- /dev/null
+++ b/cbits/mmap.c
@@ -0,0 +1,40 @@
+/*
+Copyright Colin Watson 2015
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Colin Watson nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <sys/mman.h>
+
+void *hashable_mmap(void *addr, size_t length, int prot, int flags,
+		    int fd, off_t offset)
+{
+  return mmap(addr, length, prot, flags, fd, offset);
+}
Index: b/hashable.cabal
===================================================================
--- a/hashable.cabal
+++ b/hashable.cabal
@@ -82,6 +82,7 @@
   if !os(windows)
     Build-depends:   unix
     CPP-options:     -DHAVE_MMAP
+    C-sources:       cbits/mmap.c
     Other-modules:   Regress.Mmap

   Ghc-options:       -Wall -fno-warn-orphans
Index: b/tests/Regress/Mmap.hsc
===================================================================
--- a/tests/Regress/Mmap.hsc
+++ b/tests/Regress/Mmap.hsc
@@ -60,7 +60,7 @@
 mprotect addr len prot =
     throwErrnoIfMinus1_ "mprotect" $ c_mprotect addr len prot

-foreign import ccall unsafe "sys/mman.h mmap"
+foreign import ccall unsafe "hashable_mmap"
     c_mmap :: Ptr a -> CSize -> CInt -> CInt -> CInt -> COff -> IO (Ptr a)

 foreign import ccall unsafe "sys/mman.h munmap"