openbsd-ports/lang/ghc/patches/patch-rts_Linker_c
kili 3c468d6f7d Fix GHCi for amd64 (s/EM_X86_64/EM_AMD64/ noticed by Don Steward). Tested
on amd64 by ckuethe@ (thanks).
Add a man page.
2007-09-16 20:05:12 +00:00

34 lines
1.3 KiB
Plaintext

$OpenBSD: patch-rts_Linker_c,v 1.2 2007/09/16 20:05:12 kili Exp $
We don't have MAP_ANONYMOUS (which is the same as MAP_ANON on Linux,
but the latter has been deprecated). We also don't have that MAP_32BIT
Linux provides for amd64, so just zap that flag to 0. In addition
EM_X86_64 is called EM_AMD64 on OpenBSD, so just replace it to
reenable GHCi (noted by dons).
--- rts/Linker.c.orig Wed Apr 25 19:10:41 2007
+++ rts/Linker.c Sun Sep 16 12:27:02 2007
@@ -73,6 +73,11 @@
#endif
+#ifdef openbsd_HOST_OS
+# define MAP_ANONYMOUS MAP_ANON
+# define MAP_32BIT 0
+#endif
+
#if defined(linux_HOST_OS) || defined(solaris2_HOST_OS) || defined(freebsd_HOST_OS) || defined(netbsd_HOST_OS) || defined(openbsd_HOST_OS)
# define OBJFORMAT_ELF
#elif defined(cygwin32_HOST_OS) || defined (mingw32_HOST_OS)
@@ -2923,8 +2928,8 @@ ocVerifyImage_ELF ( ObjectCode* oc )
case EM_IA_64: IF_DEBUG(linker,debugBelch( "ia64" )); break;
#endif
case EM_PPC: IF_DEBUG(linker,debugBelch( "powerpc32" )); break;
-#ifdef EM_X86_64
- case EM_X86_64: IF_DEBUG(linker,debugBelch( "x86_64" )); break;
+#ifdef EM_AMD64
+ case EM_AMD64: IF_DEBUG(linker,debugBelch( "x86_64" )); break;
#endif
default: IF_DEBUG(linker,debugBelch( "unknown" ));
errorBelch("%s: unknown architecture", oc->fileName);