diff options
author | Oliver Braun <obraun@FreeBSD.org> | 2008-07-18 20:05:17 +0000 |
---|---|---|
committer | Oliver Braun <obraun@FreeBSD.org> | 2008-07-18 20:05:17 +0000 |
commit | f5d876d7f61e1f4eef9a90ff37bf526f1e0abf49 (patch) | |
tree | 860c4fa4084e1f9caab1b9cf2f29f2a127094ec9 /lang/ghc/files | |
parent | 1ff262e9107cbe7853ba39cf03522713fa651cf2 (diff) |
Notes
Diffstat (limited to 'lang/ghc/files')
-rw-r--r-- | lang/ghc/files/extra-patch-driver-mangler-ghc-asm.lprl | 11 | ||||
-rw-r--r-- | lang/ghc/files/extra-patch-rts-Linker.c | 118 | ||||
-rw-r--r-- | lang/ghc/files/patch-ghc-rts-package.conf.in | 16 | ||||
-rw-r--r-- | lang/ghc/files/patch-libraries-Cabal-Distribution-Simple-Haddock.hs | 11 | ||||
-rw-r--r-- | lang/ghc/files/patch-utils-hsc2hs-Makefile | 20 |
5 files changed, 4 insertions, 172 deletions
diff --git a/lang/ghc/files/extra-patch-driver-mangler-ghc-asm.lprl b/lang/ghc/files/extra-patch-driver-mangler-ghc-asm.lprl deleted file mode 100644 index e723882ebbfa..000000000000 --- a/lang/ghc/files/extra-patch-driver-mangler-ghc-asm.lprl +++ /dev/null @@ -1,11 +0,0 @@ ---- driver/mangler/ghc-asm.lprl.orig 2007-12-10 19:11:31.000000000 +0100 -+++ driver/mangler/ghc-asm.lprl 2008-03-02 14:26:51.000000000 +0100 -@@ -216,7 +216,7 @@ - $T_HDR_vector = "\.text\n\t\.align 8\n"; - - #--------------------------------------------------------# -- } elsif ( $TargetPlatform =~ /^x86_64-.*-(linux|openbsd)$/m ) { -+ } elsif ( $TargetPlatform =~ /^x86_64-.*-(linux|openbsd|freebsd)$/m ) { - - $T_STABBY = 0; # 1 iff .stab things (usually if a.out format) - $T_US = ''; # _ if symbols have an underscore on the front diff --git a/lang/ghc/files/extra-patch-rts-Linker.c b/lang/ghc/files/extra-patch-rts-Linker.c deleted file mode 100644 index 9aee62ebab8b..000000000000 --- a/lang/ghc/files/extra-patch-rts-Linker.c +++ /dev/null @@ -1,118 +0,0 @@ ---- rts/Linker.c.orig 2007-12-10 19:11:32.000000000 +0100 -+++ rts/Linker.c 2008-01-09 22:17:46.459941137 +0100 -@@ -59,12 +59,12 @@ - #include <sys/wait.h> - #endif - --#if defined(ia64_HOST_ARCH) || defined(openbsd_HOST_OS) || defined(linux_HOST_OS) || defined(freebsd_HOST_OS) -+#if defined(ia64_HOST_ARCH) || defined(linux_HOST_OS) || defined(freebsd_HOST_OS) || defined(netbsd_HOST_OS) || defined(openbsd_HOST_OS) - #define USE_MMAP - #include <fcntl.h> - #include <sys/mman.h> - --#if defined(openbsd_HOST_OS) || defined(linux_HOST_OS) || defined(freebsd_HOST_OS) -+#if defined(linux_HOST_OS) || defined(freebsd_HOST_OS) || defined(netbsd_HOST_OS) || defined(openbsd_HOST_OS) - #ifdef HAVE_UNISTD_H - #include <unistd.h> - #endif -@@ -1199,8 +1199,10 @@ - struct stat st; - int r, n; - #ifdef USE_MMAP -+ /* In the absence of a MAP_32BIT flag to mmap() we map objects one -+ * after the other starting from a fixed location in memory. */ - int fd, pagesize; -- void *map_addr = NULL; -+ static void *map_addr = (void *)0x40000000L; - #else - FILE *f; - #endif -@@ -1262,6 +1264,7 @@ - - #ifdef USE_MMAP - #define ROUND_UP(x,size) ((x + size - 1) & ~(size - 1)) -+#define ROUND_DOWN(x,size) (x & ~(size - 1)) - - /* On many architectures malloc'd memory isn't executable, so we need to use mmap. */ - -@@ -1278,7 +1281,7 @@ - #ifdef ia64_HOST_ARCH - /* The PLT needs to be right before the object */ - n = ROUND_UP(PLTSize(), pagesize); -- oc->plt = mmap(NULL, n, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); -+ oc->plt = mmap(map_addr, n, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); - if (oc->plt == MAP_FAILED) - barf("loadObj: can't allocate PLT"); - -@@ -1297,7 +1300,7 @@ - #if defined(x86_64_HOST_ARCH) && defined(MAP_32BIT) - #define EXTRA_MAP_FLAGS MAP_32BIT - #else --#define EXTRA_MAP_FLAGS 0 -+#define EXTRA_MAP_FLAGS MAP_FIXED - #endif - - /* MAP_ANONYMOUS is MAP_ANON on some systems, e.g. OpenBSD */ -@@ -1309,6 +1312,7 @@ - MAP_PRIVATE|EXTRA_MAP_FLAGS, fd, 0); - if (oc->image == MAP_FAILED) - barf("loadObj: can't map `%s'", path); -+ map_addr += n; - - close(fd); - -@@ -2596,10 +2600,12 @@ - #define Elf_Sym Elf64_Sym - #define Elf_Rel Elf64_Rel - #define Elf_Rela Elf64_Rela -+#if !defined(freebsd_HOST_OS) - #define ELF_ST_TYPE ELF64_ST_TYPE - #define ELF_ST_BIND ELF64_ST_BIND - #define ELF_R_TYPE ELF64_R_TYPE - #define ELF_R_SYM ELF64_R_SYM -+#endif - #else - #define ELFCLASS ELFCLASS32 - #define Elf_Addr Elf32_Addr -@@ -2772,15 +2778,35 @@ - x86_64_high_symbol( char *lbl, void *addr ) - { - x86_64_bounce *bounce; -+ int pagesize; -+ -+ pagesize = getpagesize(); - -- if ( x86_64_bounce_buffer == NULL || -+ if ( x86_64_bounce_buffer == NULL || - x86_64_bb_next_off >= X86_64_BB_SIZE ) { -- x86_64_bounce_buffer = -- mmap(NULL, X86_64_BB_SIZE * sizeof(x86_64_bounce), -- PROT_EXEC|PROT_READ|PROT_WRITE, -- MAP_PRIVATE|EXTRA_MAP_FLAGS|MAP_ANONYMOUS, -1, 0); -+#ifdef MAP_32BIT -+ x86_64_bounce_buffer = -+ mmap(NULL, X86_64_BB_SIZE * sizeof(x86_64_bounce), -+ PROT_EXEC|PROT_READ|PROT_WRITE, -+ MAP_PRIVATE|EXTRA_MAP_FLAGS|MAP_ANONYMOUS, -1, 0); -+#else -+#define X86_64_BOUNCE_BUFFER_TOP 0x80000000L; -+ x86_64_bounce *map_addr; -+ -+ x86_64_bounce_buffer = x86_64_bounce_buffer ? -+ x86_64_bounce_buffer : (x86_64_bounce *)X86_64_BOUNCE_BUFFER_TOP; -+ map_addr = x86_64_bounce_buffer - X86_64_BB_SIZE; -+ map_addr = ROUND_DOWN((int)map_addr, pagesize); -+ /* In the absence of MAP_32BIT we allocate the bounce -+ * buffers at a fixed address, one after the other, -+ * starting from the top and growing downwards. */ -+ x86_64_bounce_buffer = -+ mmap(map_addr, X86_64_BB_SIZE * sizeof(x86_64_bounce), -+ PROT_EXEC|PROT_READ|PROT_WRITE, -+ MAP_PRIVATE|EXTRA_MAP_FLAGS|MAP_ANONYMOUS, -1, 0); -+#endif - if (x86_64_bounce_buffer == MAP_FAILED) { -- barf("x86_64_high_symbol: mmap failed"); -+ barf("x86_64_high_symbol: mmap failed at %p", x86_64_bounce_buffer); - } - x86_64_bb_next_off = 0; - } diff --git a/lang/ghc/files/patch-ghc-rts-package.conf.in b/lang/ghc/files/patch-ghc-rts-package.conf.in index 0a67acf915c4..2c5509016e2c 100644 --- a/lang/ghc/files/patch-ghc-rts-package.conf.in +++ b/lang/ghc/files/patch-ghc-rts-package.conf.in @@ -1,18 +1,10 @@ ---- rts/package.conf.in.orig 2007-12-10 19:11:32.000000000 +0100 -+++ rts/package.conf.in 2007-12-31 08:32:19.000000000 +0100 -@@ -66,6 +66,7 @@ - include-dirs: FPTOOLS_TOP_ABS"/includes" - FPTOOLS_TOP_ABS"/rts" - FPTOOLS_TOP_ABS"/gmp/gmpbuild" -+ GMP_INCLUDE_DIRS - #endif - - includes: Stg.h -@@ -143,6 +144,7 @@ +--- rts/package.conf.in.orig 2008-06-16 19:27:16.000000000 +0200 ++++ rts/package.conf.in 2008-06-21 21:46:49.000000000 +0200 +@@ -144,6 +144,7 @@ , "-u", "base_GHCziIOBase_NestedAtomically_closure" , "-u", "base_GHCziWeak_runFinalizzerBatch_closure" #endif -+ , "-L/usr/local/lib" ++ , "-L/usr/local/lib" #ifdef LEADING_UNDERSCORE , "-u", "_base_GHCziConc_ensureIOManagerIsRunning_closure" diff --git a/lang/ghc/files/patch-libraries-Cabal-Distribution-Simple-Haddock.hs b/lang/ghc/files/patch-libraries-Cabal-Distribution-Simple-Haddock.hs deleted file mode 100644 index aa304b8d5292..000000000000 --- a/lang/ghc/files/patch-libraries-Cabal-Distribution-Simple-Haddock.hs +++ /dev/null @@ -1,11 +0,0 @@ ---- libraries/Cabal/Distribution/Simple/Haddock.hs.orig 2007-12-10 18:18:23.000000000 +0000 -+++ libraries/Cabal/Distribution/Simple/Haddock.hs 2008-02-20 15:02:53.000000000 +0000 -@@ -122,7 +122,7 @@ - then "--hoogle" - else "--html" - let Just version = programVersion confHaddock -- let have_src_hyperlink_flags = version >= Version [0,8] [] && version < Version [2,0] [] -+ let have_src_hyperlink_flags = version >= Version [0,8] [] - isVersion2 = version >= Version [2,0] [] - - let mockFlags diff --git a/lang/ghc/files/patch-utils-hsc2hs-Makefile b/lang/ghc/files/patch-utils-hsc2hs-Makefile deleted file mode 100644 index a9cfdf7a5879..000000000000 --- a/lang/ghc/files/patch-utils-hsc2hs-Makefile +++ /dev/null @@ -1,20 +0,0 @@ -diff -rNup ./utils/hsc2hs/Makefile.orig ./utils/hsc2hs/Makefile ---- ./utils/hsc2hs/Makefile.orig Mon Dec 10 19:11:32 2007 -+++ ./utils/hsc2hs/Makefile Sun Dec 30 21:53:09 2007 -@@ -39,9 +39,15 @@ else - extra_flags= - endif - -+ifneq "$(GMP_INCLUDE_DIRS)" "" -+gmp_includes=-I$(GMP_INCLUDE_DIRS) -+else -+gmp_includes= -+endif -+ - $(INPLACE_HS): Makefile $(FPTOOLS_TOP)/mk/config.mk - echo "import System.Cmd; import System.Environment; import System.Exit" > $@ -- echo "main = do args <- getArgs; rawSystem \"$(FPTOOLS_TOP_ABS)/$(GHC_HSC2HS_DIR_REL)/$(HS_PROG)\" (\"--template=$(FPTOOLS_TOP_ABS)/$(GHC_HSC2HS_DIR_REL)/template-hsc.h\":\"--cc=$(CC)\":\"--ld=$(CC)\"$(patsubst %,:\"%\",$(extra_flags)):\"--cflag=-D__GLASGOW_HASKELL__=$(ProjectVersionInt)\":\"-I$(FPTOOLS_TOP_ABS)/$(GHC_INCLUDE_DIR_REL)\":\"-I$(FPTOOLS_TOP_ABS)/gmp/gmpbuild\":args) >>= exitWith" >> $@ -+ echo "main = do args <- getArgs; rawSystem \"$(FPTOOLS_TOP_ABS)/$(GHC_HSC2HS_DIR_REL)/$(HS_PROG)\" (\"--template=$(FPTOOLS_TOP_ABS)/$(GHC_HSC2HS_DIR_REL)/template-hsc.h\":\"--cc=$(CC)\":\"--ld=$(CC)\"$(patsubst %,:\"%\",$(extra_flags)):\"--cflag=-D__GLASGOW_HASKELL__=$(ProjectVersionInt)\":\"-I$(FPTOOLS_TOP_ABS)/$(GHC_INCLUDE_DIR_REL)\":\"-I$(FPTOOLS_TOP_ABS)/gmp/gmpbuild\":\"$(gmp_includes)\":args) >>= exitWith" >> $@ - - $(INPLACE_PROG): $(INPLACE_HS) - $(HC) --make $< -o $@ |