Define MAP_ANONYMOUS on systems that only provide MAP_ANON
authorGracjan Polak <gracjanpolak@gmail.com>
Fri, 23 Dec 2016 19:37:08 +0000 (14:37 -0500)
committerBen Gamari <ben@smart-cactus.org>
Fri, 23 Dec 2016 21:44:48 +0000 (16:44 -0500)
Reviewers: simonmar, erikd, austin, bgamari

Reviewed By: bgamari

Subscribers: gracjan, rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D2881

GHC Trac Issues: #13005

rts/LinkerInternals.h
rts/linker/M32Alloc.h

index a09d079..76497df 100644 (file)
 #include "Rts.h"
 #include "Hash.h"
 
+#if RTS_LINKER_USE_MMAP
+#include <sys/mman.h>
+#endif
+
 #include "BeginPrivate.h"
 
 typedef void SymbolAddr;
@@ -288,6 +292,12 @@ char *cstring_from_section_name(
     unsigned char* strtab);
 #endif /* mingw32_HOST_OS */
 
+/* MAP_ANONYMOUS is MAP_ANON on some systems,
+   e.g. OS X (before Sierra), OpenBSD etc */
+#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON)
+#define MAP_ANONYMOUS MAP_ANON
+#endif
+
 /* Which object file format are we targetting? */
 #if defined(linux_HOST_OS) || defined(solaris2_HOST_OS) || defined(freebsd_HOST_OS) || defined(kfreebsdgnu_HOST_OS) || defined(dragonfly_HOST_OS) || defined(netbsd_HOST_OS) || defined(openbsd_HOST_OS) || defined(gnu_HOST_OS)
 #  define OBJFORMAT_ELF
index db3d8c0..8ec49ca 100644 (file)
 
 #endif
 
-/* MAP_ANONYMOUS is MAP_ANON on some systems, e.g. OS X, OpenBSD etc */
-#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON)
-#define MAP_ANONYMOUS MAP_ANON
-#endif
-
 #include "BeginPrivate.h"
 
 #if RTS_LINKER_USE_MMAP