diff options
author | Jens Petersen <petersen@redhat.com> | 2014-02-11 22:06:01 +0900 |
---|---|---|
committer | Jens Petersen <petersen@redhat.com> | 2014-02-11 22:06:01 +0900 |
commit | 3f80e38a43b3cfb328490259c15418ab51c774c1 (patch) | |
tree | 083d6cb556f41b64308d1b4a9a1f904590af8302 /tools/ghc | |
parent | 02714f7f0c6fc2abc45fa4332c69f0645e327502 (diff) | |
download | pandoc-standalone-3f80e38a43b3cfb328490259c15418ab51c774c1.tar.gz pandoc-standalone-3f80e38a43b3cfb328490259c15418ab51c774c1.tar.xz pandoc-standalone-3f80e38a43b3cfb328490259c15418ab51c774c1.zip |
tools: import spec files of all packages needed to build pandoc
Diffstat (limited to 'tools/ghc')
-rw-r--r-- | tools/ghc/Cabal-fix-dynamic-exec-for-TH.patch | 33 | ||||
-rw-r--r-- | tools/ghc/ghc-6.12.1-gen_contents_index-haddock-path.patch | 12 | ||||
-rw-r--r-- | tools/ghc/ghc-7.4-add-support-for-ARM-hard-float-ABI-fixes-5914.patch | 1274 | ||||
-rw-r--r-- | tools/ghc/ghc-7.4-silence-gen_contents_index.patch | 11 | ||||
-rw-r--r-- | tools/ghc/ghc-7.4.2-Cabal-disable-ghci-libs.patch | 13 | ||||
-rwxr-xr-x | tools/ghc/ghc-doc-index | 38 | ||||
-rwxr-xr-x | tools/ghc/ghc-doc-index.cron | 9 | ||||
-rw-r--r-- | tools/ghc/ghc-gen_contents_index-type-level.patch | 12 | ||||
-rw-r--r-- | tools/ghc/ghc-llvmCodeGen-empty-array.patch | 44 | ||||
-rw-r--r-- | tools/ghc/ghc-powerpc-linker-mmap.patch | 34 | ||||
-rw-r--r-- | tools/ghc/ghc-powerpc-pthread.patch | 18 | ||||
-rw-r--r-- | tools/ghc/ghc-use-system-libffi.patch | 83 | ||||
-rw-r--r-- | tools/ghc/ghc-wrapper-libffi-include.patch | 6 | ||||
-rw-r--r-- | tools/ghc/ghc.spec | 1269 |
14 files changed, 2856 insertions, 0 deletions
diff --git a/tools/ghc/Cabal-fix-dynamic-exec-for-TH.patch b/tools/ghc/Cabal-fix-dynamic-exec-for-TH.patch new file mode 100644 index 0000000..5384ea7 --- /dev/null +++ b/tools/ghc/Cabal-fix-dynamic-exec-for-TH.patch @@ -0,0 +1,33 @@ +diff -u ghc-7.2.0.20110728/libraries/Cabal/cabal/Distribution/Simple/GHC.hs.orig ghc-7.2.0.20110728/libraries/Cabal/cabal/Distribution/Simple/GHC.hs +--- ghc-7.2.0.20110728/libraries/Cabal/Cabal/Distribution/Simple/GHC.hs.orig 2011-07-29 02:12:09.000000000 +0900 ++++ ghc-7.2.0.20110728/libraries/Cabal/Cabal/Distribution/Simple/GHC.hs 2011-08-05 18:08:05.192042529 +0900 +@@ -778,7 +778,10 @@ + ++ ["-L"++libDir | libDir <- extraLibDirs exeBi] + ++ concat [["-framework", f] | f <- PD.frameworks exeBi] + ++ if dynExe +- then ["-dynamic"] ++ then ["-dynamic", ++ "-hisuf", "dyn_hi", ++ "-osuf", "dyn_o" ++ ] + else [] + ++ if profExe + then ["-prof", +@@ -787,13 +790,14 @@ + ] ++ ghcProfOptions exeBi + else [] + +- -- For building exe's for profiling that use TH we actually ++ -- For building exe's for profiling or dynamic that use TH we actually + -- have to build twice, once without profiling and the again + -- with profiling. This is because the code that TH needs to + -- run at compile time needs to be the vanilla ABI so it can + -- be loaded up and run by the compiler. +- when (withProfExe lbi && EnableExtension TemplateHaskell `elem` allExtensions exeBi) +- (runGhcProg (binArgs False (withDynExe lbi) False)) ++ when ((withProfExe lbi || withDynExe lbi) && ++ EnableExtension TemplateHaskell `elem` allExtensions exeBi) ++ (runGhcProg (binArgs False False False)) + + runGhcProg (binArgs True (withDynExe lbi) (withProfExe lbi)) + diff --git a/tools/ghc/ghc-6.12.1-gen_contents_index-haddock-path.patch b/tools/ghc/ghc-6.12.1-gen_contents_index-haddock-path.patch new file mode 100644 index 0000000..d1034eb --- /dev/null +++ b/tools/ghc/ghc-6.12.1-gen_contents_index-haddock-path.patch @@ -0,0 +1,12 @@ +diff -u ghc-6.12.1/libraries/gen_contents_index\~ ghc-6.12.1/libraries/gen_contents_index +--- ghc-6.12.1/libraries/gen_contents_index~ 2009-12-11 04:11:33.000000000 +1000 ++++ ghc-6.12.1/libraries/gen_contents_index 2009-12-12 21:08:02.000000000 +1000 +@@ -20,7 +20,7 @@ + done + ;; + *) +- HADDOCK=../../../../../bin/haddock ++ HADDOCK=/usr/bin/haddock + # We don't want the GHC API to swamp the index + HADDOCK_FILES=`ls -1 */*.haddock | grep -v '/ghc\.haddock' | sort` + for HADDOCK_FILE in $HADDOCK_FILES diff --git a/tools/ghc/ghc-7.4-add-support-for-ARM-hard-float-ABI-fixes-5914.patch b/tools/ghc/ghc-7.4-add-support-for-ARM-hard-float-ABI-fixes-5914.patch new file mode 100644 index 0000000..a9b897b --- /dev/null +++ b/tools/ghc/ghc-7.4-add-support-for-ARM-hard-float-ABI-fixes-5914.patch @@ -0,0 +1,1274 @@ +From 83195ff5ba73779514e3d06b1457d45f849c7fc2 Mon Sep 17 00:00:00 2001 +From: Karel Gardas <karel.gardas@centrum.cz> +Date: Wed, 25 Apr 2012 09:04:50 +0200 +Subject: [PATCH] add support for ARM hard-float ABI (fixes #5914) + +This patch enhances Platform's ArchARM to include ARM ABI value. It also +tweaks configure machinery to detect hard-float ABI and to set it wherever +needed. Finally when hard-float ABI is in use, pass appropriate compiler +option to the LLVM's llc. Fixes #5914. +--- + aclocal.m4 | 2 +- + compiler/main/DriverPipeline.hs | 16 +- + compiler/nativeGen/AsmCodeGen.lhs | 2 +- + compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs | 56 ++-- + compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs | 14 +- + compiler/nativeGen/RegAlloc/Linear/Main.hs | 14 +- + compiler/nativeGen/TargetReg.hs | 70 ++-- + compiler/utils/Platform.hs | 12 +- + config.guess | 482 ++++++++++---------- + configure.ac | 14 + + 10 files changed, 345 insertions(+), 337 deletions(-) + +diff --git a/aclocal.m4 b/aclocal.m4 +index 5652185..c196bdf 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -171,7 +171,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS], + ;; + arm) + GET_ARM_ISA() +- test -z "[$]2" || eval "[$]2=\"ArchARM {armISA = \$ARM_ISA, armISAExt = \$ARM_ISA_EXT}\"" ++ test -z "[$]2" || eval "[$]2=\"ArchARM {armISA = \$ARM_ISA, armISAExt = \$ARM_ISA_EXT, armABI = \$ARM_ABI}\"" + ;; + alpha|mips|mipseb|mipsel|hppa|hppa1_1|ia64|m68k|rs6000|s390|s390x|sparc64|vax) + test -z "[$]2" || eval "[$]2=ArchUnknown" +diff -u ghc-7.4.1.20120508/compiler/main/DriverPipeline.hs.arm ghc-7.4.1.20120508/compiler/main/DriverPipeline.hs +--- ghc-7.4.1.20120508/compiler/main/DriverPipeline.hs.arm 2012-05-15 02:10:41.000000000 +0900 ++++ ghc-7.4.1.20120508/compiler/main/DriverPipeline.hs 2012-05-18 12:19:22.779955285 +0900 +@@ -1366,7 +1366,8 @@ + SysTools.FileOption "" input_fn, + SysTools.Option "-o", SysTools.FileOption "" output_fn] + ++ map SysTools.Option lc_opts +- ++ map SysTools.Option fpOpts) ++ ++ map SysTools.Option fpOpts ++ ++ map SysTools.Option abiOpts) + + return (next_phase, output_fn) + where +@@ -1378,12 +1379,19 @@ + -- while compiling GHC source code. It's probably due to fact that it + -- does not enable VFP by default. Let's do this manually here + fpOpts = case platformArch (targetPlatform dflags) of +- ArchARM ARMv7 ext -> if (elem VFPv3 ext) ++ ArchARM ARMv7 ext _ -> if (elem VFPv3 ext) + then ["-mattr=+v7,+vfp3"] + else if (elem VFPv3D16 ext) + then ["-mattr=+v7,+vfp3,+d16"] + else [] + _ -> [] ++ -- On Ubuntu/Debian with ARM hard float ABI, LLVM's llc still ++ -- compiles into soft-float ABI. We need to explicitly set abi ++ -- to hard ++ abiOpts = case platformArch (targetPlatform dflags) of ++ ArchARM ARMv7 _ HARD -> ["-float-abi=hard"] ++ ArchARM ARMv7 _ _ -> [] ++ _ -> [] + + ----------------------------------------------------------------------------- + -- LlvmMangle phase +@@ -1532,8 +1540,8 @@ + + elfSectionNote :: String + elfSectionNote = case platformArch (targetPlatform dflags) of +- ArchARM _ _ -> "%note" +- _ -> "@note" ++ ArchARM _ _ _ -> "%note" ++ _ -> "@note" + + -- The "link info" is a string representing the parameters of the + -- link. We save this information in the binary, and the next time we +diff --git a/compiler/nativeGen/AsmCodeGen.lhs b/compiler/nativeGen/AsmCodeGen.lhs +index 1ad1242..e976e58 100644 +--- a/compiler/nativeGen/AsmCodeGen.lhs ++++ b/compiler/nativeGen/AsmCodeGen.lhs +@@ -200,7 +200,7 @@ nativeCodeGen dflags h us cmms + ,ncgExpandTop = map SPARC.CodeGen.Expand.expandTop + ,ncgMakeFarBranches = id + } +- ArchARM _ _ -> ++ ArchARM _ _ _ -> + panic "nativeCodeGen: No NCG for ARM" + ArchPPC_64 -> + panic "nativeCodeGen: No NCG for PPC 64" +diff --git a/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs b/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs +index 6067f23..6cd3f00 100644 +--- a/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs ++++ b/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs +@@ -107,13 +107,13 @@ trivColorable + trivColorable platform virtualRegSqueeze realRegSqueeze RcInteger conflicts exclusions + | let !cALLOCATABLE_REGS_INTEGER + = iUnbox (case platformArch platform of +- ArchX86 -> 3 +- ArchX86_64 -> 5 +- ArchPPC -> 16 +- ArchSPARC -> 14 +- ArchPPC_64 -> panic "trivColorable ArchPPC_64" +- ArchARM _ _ -> panic "trivColorable ArchARM" +- ArchUnknown -> panic "trivColorable ArchUnknown") ++ ArchX86 -> 3 ++ ArchX86_64 -> 5 ++ ArchPPC -> 16 ++ ArchSPARC -> 14 ++ ArchPPC_64 -> panic "trivColorable ArchPPC_64" ++ ArchARM _ _ _ -> panic "trivColorable ArchARM" ++ ArchUnknown -> panic "trivColorable ArchUnknown") + , count2 <- accSqueeze (_ILIT(0)) cALLOCATABLE_REGS_INTEGER + (virtualRegSqueeze RcInteger) + conflicts +@@ -127,13 +127,13 @@ trivColorable platform virtualRegSqueeze realRegSqueeze RcInteger conflicts excl + trivColorable platform virtualRegSqueeze realRegSqueeze RcFloat conflicts exclusions + | let !cALLOCATABLE_REGS_FLOAT + = iUnbox (case platformArch platform of +- ArchX86 -> 0 +- ArchX86_64 -> 0 +- ArchPPC -> 0 +- ArchSPARC -> 22 +- ArchPPC_64 -> panic "trivColorable ArchPPC_64" +- ArchARM _ _ -> panic "trivColorable ArchARM" +- ArchUnknown -> panic "trivColorable ArchUnknown") ++ ArchX86 -> 0 ++ ArchX86_64 -> 0 ++ ArchPPC -> 0 ++ ArchSPARC -> 22 ++ ArchPPC_64 -> panic "trivColorable ArchPPC_64" ++ ArchARM _ _ _ -> panic "trivColorable ArchARM" ++ ArchUnknown -> panic "trivColorable ArchUnknown") + , count2 <- accSqueeze (_ILIT(0)) cALLOCATABLE_REGS_FLOAT + (virtualRegSqueeze RcFloat) + conflicts +@@ -147,13 +147,13 @@ trivColorable platform virtualRegSqueeze realRegSqueeze RcFloat conflicts exclus + trivColorable platform virtualRegSqueeze realRegSqueeze RcDouble conflicts exclusions + | let !cALLOCATABLE_REGS_DOUBLE + = iUnbox (case platformArch platform of +- ArchX86 -> 6 +- ArchX86_64 -> 0 +- ArchPPC -> 26 +- ArchSPARC -> 11 +- ArchPPC_64 -> panic "trivColorable ArchPPC_64" +- ArchARM _ _ -> panic "trivColorable ArchARM" +- ArchUnknown -> panic "trivColorable ArchUnknown") ++ ArchX86 -> 6 ++ ArchX86_64 -> 0 ++ ArchPPC -> 26 ++ ArchSPARC -> 11 ++ ArchPPC_64 -> panic "trivColorable ArchPPC_64" ++ ArchARM _ _ _ -> panic "trivColorable ArchARM" ++ ArchUnknown -> panic "trivColorable ArchUnknown") + , count2 <- accSqueeze (_ILIT(0)) cALLOCATABLE_REGS_DOUBLE + (virtualRegSqueeze RcDouble) + conflicts +@@ -167,13 +167,13 @@ trivColorable platform virtualRegSqueeze realRegSqueeze RcDouble conflicts exclu + trivColorable platform virtualRegSqueeze realRegSqueeze RcDoubleSSE conflicts exclusions + | let !cALLOCATABLE_REGS_SSE + = iUnbox (case platformArch platform of +- ArchX86 -> 8 +- ArchX86_64 -> 10 +- ArchPPC -> 0 +- ArchSPARC -> 0 +- ArchPPC_64 -> panic "trivColorable ArchPPC_64" +- ArchARM _ _ -> panic "trivColorable ArchARM" +- ArchUnknown -> panic "trivColorable ArchUnknown") ++ ArchX86 -> 8 ++ ArchX86_64 -> 10 ++ ArchPPC -> 0 ++ ArchSPARC -> 0 ++ ArchPPC_64 -> panic "trivColorable ArchPPC_64" ++ ArchARM _ _ _ -> panic "trivColorable ArchARM" ++ ArchUnknown -> panic "trivColorable ArchUnknown") + , count2 <- accSqueeze (_ILIT(0)) cALLOCATABLE_REGS_SSE + (virtualRegSqueeze RcDoubleSSE) + conflicts +diff --git a/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs b/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs +index 6fbbd04..fd1fd27 100644 +--- a/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs ++++ b/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs +@@ -68,11 +68,11 @@ instance FR SPARC.FreeRegs where + maxSpillSlots :: Platform -> Int + maxSpillSlots platform + = case platformArch platform of +- ArchX86 -> X86.Instr.maxSpillSlots True -- 32bit +- ArchX86_64 -> X86.Instr.maxSpillSlots False -- not 32bit +- ArchPPC -> PPC.Instr.maxSpillSlots +- ArchSPARC -> SPARC.Instr.maxSpillSlots +- ArchARM _ _ -> panic "maxSpillSlots ArchARM" +- ArchPPC_64 -> panic "maxSpillSlots ArchPPC_64" +- ArchUnknown -> panic "maxSpillSlots ArchUnknown" ++ ArchX86 -> X86.Instr.maxSpillSlots True -- 32bit ++ ArchX86_64 -> X86.Instr.maxSpillSlots False -- not 32bit ++ ArchPPC -> PPC.Instr.maxSpillSlots ++ ArchSPARC -> SPARC.Instr.maxSpillSlots ++ ArchARM _ _ _ -> panic "maxSpillSlots ArchARM" ++ ArchPPC_64 -> panic "maxSpillSlots ArchPPC_64" ++ ArchUnknown -> panic "maxSpillSlots ArchUnknown" + +diff --git a/compiler/nativeGen/RegAlloc/Linear/Main.hs b/compiler/nativeGen/RegAlloc/Linear/Main.hs +index fc0bde4..64b0f68 100644 +--- a/compiler/nativeGen/RegAlloc/Linear/Main.hs ++++ b/compiler/nativeGen/RegAlloc/Linear/Main.hs +@@ -180,13 +180,13 @@ linearRegAlloc + linearRegAlloc dflags first_id block_live sccs + = let platform = targetPlatform dflags + in case platformArch platform of +- ArchX86 -> linearRegAlloc' platform (frInitFreeRegs :: X86.FreeRegs) first_id block_live sccs +- ArchX86_64 -> linearRegAlloc' platform (frInitFreeRegs :: X86.FreeRegs) first_id block_live sccs +- ArchSPARC -> linearRegAlloc' platform (frInitFreeRegs :: SPARC.FreeRegs) first_id block_live sccs +- ArchPPC -> linearRegAlloc' platform (frInitFreeRegs :: PPC.FreeRegs) first_id block_live sccs +- ArchARM _ _ -> panic "linearRegAlloc ArchARM" +- ArchPPC_64 -> panic "linearRegAlloc ArchPPC_64" +- ArchUnknown -> panic "linearRegAlloc ArchUnknown" ++ ArchX86 -> linearRegAlloc' platform (frInitFreeRegs :: X86.FreeRegs) first_id block_live sccs ++ ArchX86_64 -> linearRegAlloc' platform (frInitFreeRegs :: X86.FreeRegs) first_id block_live sccs ++ ArchSPARC -> linearRegAlloc' platform (frInitFreeRegs :: SPARC.FreeRegs) first_id block_live sccs ++ ArchPPC -> linearRegAlloc' platform (frInitFreeRegs :: PPC.FreeRegs) first_id block_live sccs ++ ArchARM _ _ _ -> panic "linearRegAlloc ArchARM" ++ ArchPPC_64 -> panic "linearRegAlloc ArchPPC_64" ++ ArchUnknown -> panic "linearRegAlloc ArchUnknown" + + linearRegAlloc' + :: (FR freeRegs, PlatformOutputable instr, Instruction instr) +diff --git a/compiler/nativeGen/TargetReg.hs b/compiler/nativeGen/TargetReg.hs +index cbc4c17..13293de 100644 +--- a/compiler/nativeGen/TargetReg.hs ++++ b/compiler/nativeGen/TargetReg.hs +@@ -50,35 +50,35 @@ import qualified SPARC.Regs as SPARC + targetVirtualRegSqueeze :: Platform -> RegClass -> VirtualReg -> FastInt + targetVirtualRegSqueeze platform + = case platformArch platform of +- ArchX86 -> X86.virtualRegSqueeze +- ArchX86_64 -> X86.virtualRegSqueeze +- ArchPPC -> PPC.virtualRegSqueeze +- ArchSPARC -> SPARC.virtualRegSqueeze +- ArchPPC_64 -> panic "targetVirtualRegSqueeze ArchPPC_64" +- ArchARM _ _ -> panic "targetVirtualRegSqueeze ArchARM" +- ArchUnknown -> panic "targetVirtualRegSqueeze ArchUnknown" ++ ArchX86 -> X86.virtualRegSqueeze ++ ArchX86_64 -> X86.virtualRegSqueeze ++ ArchPPC -> PPC.virtualRegSqueeze ++ ArchSPARC -> SPARC.virtualRegSqueeze ++ ArchPPC_64 -> panic "targetVirtualRegSqueeze ArchPPC_64" ++ ArchARM _ _ _ -> panic "targetVirtualRegSqueeze ArchARM" ++ ArchUnknown -> panic "targetVirtualRegSqueeze ArchUnknown" + + targetRealRegSqueeze :: Platform -> RegClass -> RealReg -> FastInt + targetRealRegSqueeze platform + = case platformArch platform of +- ArchX86 -> X86.realRegSqueeze +- ArchX86_64 -> X86.realRegSqueeze +- ArchPPC -> PPC.realRegSqueeze +- ArchSPARC -> SPARC.realRegSqueeze +- ArchPPC_64 -> panic "targetRealRegSqueeze ArchPPC_64" +- ArchARM _ _ -> panic "targetRealRegSqueeze ArchARM" +- ArchUnknown -> panic "targetRealRegSqueeze ArchUnknown" ++ ArchX86 -> X86.realRegSqueeze ++ ArchX86_64 -> X86.realRegSqueeze ++ ArchPPC -> PPC.realRegSqueeze ++ ArchSPARC -> SPARC.realRegSqueeze ++ ArchPPC_64 -> panic "targetRealRegSqueeze ArchPPC_64" ++ ArchARM _ _ _ -> panic "targetRealRegSqueeze ArchARM" ++ ArchUnknown -> panic "targetRealRegSqueeze ArchUnknown" + + targetClassOfRealReg :: Platform -> RealReg -> RegClass + targetClassOfRealReg platform + = case platformArch platform of +- ArchX86 -> X86.classOfRealReg +- ArchX86_64 -> X86.classOfRealReg +- ArchPPC -> PPC.classOfRealReg +- ArchSPARC -> SPARC.classOfRealReg +- ArchPPC_64 -> panic "targetClassOfRealReg ArchPPC_64" +- ArchARM _ _ -> panic "targetClassOfRealReg ArchARM" +- ArchUnknown -> panic "targetClassOfRealReg ArchUnknown" ++ ArchX86 -> X86.classOfRealReg ++ ArchX86_64 -> X86.classOfRealReg ++ ArchPPC -> PPC.classOfRealReg ++ ArchSPARC -> SPARC.classOfRealReg ++ ArchPPC_64 -> panic "targetClassOfRealReg ArchPPC_64" ++ ArchARM _ _ _ -> panic "targetClassOfRealReg ArchARM" ++ ArchUnknown -> panic "targetClassOfRealReg ArchUnknown" + + -- TODO: This should look at targetPlatform too + targetWordSize :: Size +@@ -87,24 +87,24 @@ targetWordSize = intSize wordWidth + targetMkVirtualReg :: Platform -> Unique -> Size -> VirtualReg + targetMkVirtualReg platform + = case platformArch platform of +- ArchX86 -> X86.mkVirtualReg +- ArchX86_64 -> X86.mkVirtualReg +- ArchPPC -> PPC.mkVirtualReg +- ArchSPARC -> SPARC.mkVirtualReg +- ArchPPC_64 -> panic "targetMkVirtualReg ArchPPC_64" +- ArchARM _ _ -> panic "targetMkVirtualReg ArchARM" +- ArchUnknown -> panic "targetMkVirtualReg ArchUnknown" ++ ArchX86 -> X86.mkVirtualReg ++ ArchX86_64 -> X86.mkVirtualReg ++ ArchPPC -> PPC.mkVirtualReg ++ ArchSPARC -> SPARC.mkVirtualReg ++ ArchPPC_64 -> panic "targetMkVirtualReg ArchPPC_64" ++ ArchARM _ _ _ -> panic "targetMkVirtualReg ArchARM" ++ ArchUnknown -> panic "targetMkVirtualReg ArchUnknown" + + targetRegDotColor :: Platform -> RealReg -> SDoc + targetRegDotColor platform + = case platformArch platform of +- ArchX86 -> X86.regDotColor platform +- ArchX86_64 -> X86.regDotColor platform +- ArchPPC -> PPC.regDotColor +- ArchSPARC -> SPARC.regDotColor +- ArchPPC_64 -> panic "targetRegDotColor ArchPPC_64" +- ArchARM _ _ -> panic "targetRegDotColor ArchARM" +- ArchUnknown -> panic "targetRegDotColor ArchUnknown" ++ ArchX86 -> X86.regDotColor platform ++ ArchX86_64 -> X86.regDotColor platform ++ ArchPPC -> PPC.regDotColor ++ ArchSPARC -> SPARC.regDotColor ++ ArchPPC_64 -> panic "targetRegDotColor ArchPPC_64" ++ ArchARM _ _ _ -> panic "targetRegDotColor ArchARM" ++ ArchUnknown -> panic "targetRegDotColor ArchUnknown" + + + targetClassOfReg :: Platform -> Reg -> RegClass +diff --git a/compiler/utils/Platform.hs b/compiler/utils/Platform.hs +index 47dd779..8252621 100644 +--- a/compiler/utils/Platform.hs ++++ b/compiler/utils/Platform.hs +@@ -7,6 +7,7 @@ module Platform ( + OS(..), + ArmISA(..), + ArmISAExt(..), ++ ArmABI(..), + + target32Bit, + osElfTarget +@@ -41,7 +42,9 @@ data Arch + | ArchSPARC + | ArchARM + { armISA :: ArmISA +- , armISAExt :: [ArmISAExt] } ++ , armISAExt :: [ArmISAExt] ++ , armABI :: ArmABI ++ } + deriving (Read, Show, Eq) + + +@@ -61,7 +64,7 @@ data OS + | OSHaiku + deriving (Read, Show, Eq) + +--- | ARM Instruction Set Architecture and Extensions ++-- | ARM Instruction Set Architecture, Extensions and ABI + -- + data ArmISA + = ARMv5 +@@ -77,6 +80,11 @@ data ArmISAExt + | IWMMX2 + deriving (Read, Show, Eq) + ++data ArmABI ++ = SOFT ++ | SOFTFP ++ | HARD ++ deriving (Read, Show, Eq) + + target32Bit :: Platform -> Bool + target32Bit p = platformWordSize p == 4 +diff --git a/config.guess b/config.guess +index 463a03a..d622a44 100644 +--- a/config.guess ++++ b/config.guess +@@ -1,10 +1,10 @@ + #! /bin/sh + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +-# Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, ++# 2011, 2012 Free Software Foundation, Inc. + +-timestamp='2008-11-15' ++timestamp='2012-02-10' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +@@ -17,9 +17,7 @@ timestamp='2008-11-15' + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see <http://www.gnu.org/licenses/>. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -27,16 +25,16 @@ timestamp='2008-11-15' + # the same distribution terms that you use for the rest of that program. + + +-# Originally written by Per Bothner <per@bothner.com>. +-# Please send patches to <config-patches@gnu.org>. Submit a context +-# diff and a properly formatted ChangeLog entry. ++# Originally written by Per Bothner. Please send patches (context ++# diff format) to <config-patches@gnu.org> and include a ChangeLog ++# entry. + # + # This script attempts to guess a canonical system name similar to + # config.sub. If it succeeds, it prints the system name on stdout, and + # exits with 0. Otherwise, it exits with 1. + # +-# The plan is that this can be called by configure scripts if you +-# don't specify an explicit build system type. ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + + me=`echo "$0" | sed -e 's,.*/,,'` + +@@ -56,8 +54,9 @@ version="\ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 ++Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -144,7 +143,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or +- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward +@@ -170,7 +169,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ +- | grep __ELF__ >/dev/null ++ | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? +@@ -180,7 +179,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + fi + ;; + *) +- os=netbsd ++ os=netbsd + ;; + esac + # The OS release +@@ -223,7 +222,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) +- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on +@@ -269,7 +268,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit ;; ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=$? ++ trap '' 0 ++ exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead +@@ -295,7 +297,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) +- echo powerpc-ibm-os400 ++ echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} +@@ -324,12 +326,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; ++ s390x:SunOS:*:*) ++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; ++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) ++ echo i386-pc-auroraux${UNAME_RELEASE} ++ exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" +@@ -337,17 +345,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then +- # bash is not able to generate correct code here +- # i.e. it leaves \ns there +- # so we need to use /usr/bin/echo to get what we want +- # note that if config.guess is run by /bin/sh then +- # this works as expected even without /usr/bin/echo +- # but the problem is that configure is clever enough +- # to find bash installed and then runs config.guess +- # by bash instead of by /bin/sh +- # It seems that using /usr/bin/echo here is the most +- # portable Solaris fix +- if /usr/bin/echo '\n#ifdef __amd64\nIS_64BIT_ARCH\n#endif' | \ ++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then +@@ -398,23 +396,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit ;; ++ exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) +- echo m68k-milan-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) +- echo m68k-hades-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) +- echo m68k-unknown-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; +@@ -484,8 +482,8 @@ EOF + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) +- # DG/UX returns AViiON for all architectures +- UNAME_PROCESSOR=`/usr/bin/uname -p` ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ +@@ -498,7 +496,7 @@ EOF + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; +@@ -555,7 +553,7 @@ EOF + echo rs6000-ibm-aix3.2 + fi + exit ;; +- *:AIX:*:[456]) ++ *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 +@@ -598,52 +596,52 @@ EOF + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` +- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` +- case "${sc_cpu_version}" in +- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 +- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 +- 532) # CPU_PA_RISC2_0 +- case "${sc_kernel_bits}" in +- 32) HP_ARCH="hppa2.0n" ;; +- 64) HP_ARCH="hppa2.0w" ;; ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 +- esac ;; +- esac ++ esac ;; ++ esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c ++ sed 's/^ //' << EOF >$dummy.c + +- #define _HPUX_SOURCE +- #include <stdlib.h> +- #include <unistd.h> ++ #define _HPUX_SOURCE ++ #include <stdlib.h> ++ #include <unistd.h> + +- int main () +- { +- #if defined(_SC_KERNEL_BITS) +- long bits = sysconf(_SC_KERNEL_BITS); +- #endif +- long cpu = sysconf (_SC_CPU_VERSION); ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); + +- switch (cpu) +- { +- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +- case CPU_PA_RISC2_0: +- #if defined(_SC_KERNEL_BITS) +- switch (bits) +- { +- case 64: puts ("hppa2.0w"); break; +- case 32: puts ("hppa2.0n"); break; +- default: puts ("hppa2.0"); break; +- } break; +- #else /* !defined(_SC_KERNEL_BITS) */ +- puts ("hppa2.0"); break; +- #endif +- default: puts ("hppa1.0"); break; +- } +- exit (0); +- } ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } + EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa +@@ -663,7 +661,7 @@ EOF + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | +- grep __LP64__ >/dev/null ++ grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else +@@ -734,22 +732,22 @@ EOF + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd +- exit ;; ++ exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit ;; ++ exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd +- exit ;; ++ exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd +- exit ;; ++ exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd +- exit ;; ++ exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; +@@ -773,14 +771,14 @@ EOF + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit ;; ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; + 5000:UNIX_System_V:4.*:*) +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` +- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +@@ -792,13 +790,12 @@ EOF + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) +- case ${UNAME_MACHINE} in +- pc98) +- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) +- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) +@@ -807,19 +804,22 @@ EOF + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; ++ i*:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; + i*:windows32*:*) +- # uname -m includes "-pc" on this system. +- echo ${UNAME_MACHINE}-mingw32 ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; +- *:Interix*:[3456]*) +- case ${UNAME_MACHINE} in ++ *:Interix*:*) ++ case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; +- EM64T | authenticamd | genuineintel) ++ authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) +@@ -829,6 +829,9 @@ EOF + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; ++ 8664:Windows_NT:*) ++ echo x86_64-pc-mks ++ exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we +@@ -858,6 +861,27 @@ EOF + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ +@@ -865,20 +889,40 @@ EOF + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else +- echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf ++ fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) +- echo cris-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) +- echo crisv32-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + frv:Linux:*:*) +- echo frv-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ hexagon:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ i*86:Linux:*:*) ++ LIBC=gnu ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #ifdef __dietlibc__ ++ LIBC=dietlibc ++ #endif ++EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +@@ -889,78 +933,34 @@ EOF + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; +- mips:Linux:*:*) +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #undef CPU +- #undef mips +- #undef mipsel +- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) +- CPU=mipsel +- #else +- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) +- CPU=mips +- #else +- CPU= +- #endif +- #endif +-EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^CPU/{ +- s: ::g +- p +- }'`" +- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } +- ;; +- mips64:Linux:*:*) ++ mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU +- #undef mips64 +- #undef mips64el ++ #undef ${UNAME_MACHINE} ++ #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) +- CPU=mips64el ++ CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) +- CPU=mips64 ++ CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif + EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^CPU/{ +- s: ::g +- p +- }'`" ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) +- echo or32-unknown-linux-gnu +- exit ;; +- ppc:Linux:*:*) +- echo powerpc-unknown-linux-gnu +- exit ;; +- ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu +- exit ;; +- alpha:Linux:*:*) +- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +- EV5) UNAME_MACHINE=alphaev5 ;; +- EV56) UNAME_MACHINE=alphaev56 ;; +- PCA56) UNAME_MACHINE=alphapca56 ;; +- PCA57) UNAME_MACHINE=alphapca56 ;; +- EV6) UNAME_MACHINE=alphaev6 ;; +- EV67) UNAME_MACHINE=alphaev67 ;; +- EV68*) UNAME_MACHINE=alphaev68 ;; +- esac +- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null +- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu ++ exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +@@ -969,14 +969,17 @@ EOF + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; +- parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-gnu ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +@@ -984,75 +987,18 @@ EOF + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; ++ tile*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; +- i*86:Linux:*:*) +- # The BFD linker knows what the default object file format is, so +- # first see if it will tell us. cd to the root directory to prevent +- # problems with other programs or directories called `ld' in the path. +- # Set LC_ALL=C to ensure ld outputs messages in English. +- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ +- | sed -ne '/supported targets:/!d +- s/[ ][ ]*/ /g +- s/.*supported targets: *// +- s/ .*// +- p'` +- case "$ld_supported_targets" in +- elf32-i386) +- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" +- ;; +- a.out-i386-linux) +- echo "${UNAME_MACHINE}-pc-linux-gnuaout" +- exit ;; +- "") +- # Either a pre-BFD a.out linker (linux-gnuoldld) or +- # one that does not give us useful --help. +- echo "${UNAME_MACHINE}-pc-linux-gnuoldld" +- exit ;; +- esac +- # Determine whether the default compiler is a.out or elf +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #include <features.h> +- #ifdef __ELF__ +- # ifdef __GLIBC__ +- # if __GLIBC__ >= 2 +- LIBC=gnu +- # else +- LIBC=gnulibc1 +- # endif +- # else +- LIBC=gnulibc1 +- # endif +- #else +- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) +- LIBC=gnu +- #else +- LIBC=gnuaout +- #endif +- #endif +- #ifdef __dietlibc__ +- LIBC=dietlibc +- #endif +-EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^LIBC/{ +- s: ::g +- p +- }'`" +- test x"${LIBC}" != x && { +- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" +- exit +- } +- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } +- ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both +@@ -1060,11 +1006,11 @@ EOF + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) +- # Unixware is an offshoot of SVR4, but it has its own version +- # number series starting with 2... +- # I am not positive that other SVR4 systems won't match this, ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. +- # Use sysv4.2uw... so that sysv4* matches it. ++ # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) +@@ -1081,7 +1027,7 @@ EOF + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; +- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) +@@ -1096,7 +1042,7 @@ EOF + fi + exit ;; + i*86:*:5:[678]*) +- # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; +@@ -1124,10 +1070,13 @@ EOF + exit ;; + pc:*:*:*) + # Left here for compatibility: +- # uname -m prints for DJGPP always 'pc', but it prints nothing about +- # the processor, so we play safe by assuming i386. +- echo i386-pc-msdosdjgpp +- exit ;; ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i586. ++ # Note: whatever this is, it MUST be the same as what config.sub ++ # prints for the "djgpp" host, or else GDB configury will decide that ++ # this is a cross-build. ++ echo i586-pc-msdosdjgpp ++ exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; +@@ -1162,8 +1111,18 @@ EOF + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) +- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && { echo i486-ncr-sysv4; exit; } ;; ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; ++ NCR*:*:4.2:* | MPRAS*:*:4.2:*) ++ OS_REL='.3' ++ test -r /etc/.relid \ ++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; +@@ -1176,7 +1135,7 @@ EOF + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; +- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) +@@ -1196,10 +1155,10 @@ EOF + echo ns32k-sni-sysv + fi + exit ;; +- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says <Richard.M.Bartel@ccMail.Census.GOV> +- echo i586-unisys-sysv4 +- exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says <Richard.M.Bartel@ccMail.Census.GOV> ++ echo i586-unisys-sysv4 ++ exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm +@@ -1225,11 +1184,11 @@ EOF + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then +- echo mips-nec-sysv${UNAME_RELEASE} ++ echo mips-nec-sysv${UNAME_RELEASE} + else +- echo mips-unknown-sysv${UNAME_RELEASE} ++ echo mips-unknown-sysv${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; +@@ -1269,6 +1228,16 @@ EOF + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in ++ i386) ++ eval $set_cc_for_build ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ UNAME_PROCESSOR="x86_64" ++ fi ++ fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} +@@ -1284,6 +1253,9 @@ EOF + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; ++ NEO-?:NONSTOP_KERNEL:*:*) ++ echo neo-tandem-nsk${UNAME_RELEASE} ++ exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; +@@ -1329,13 +1301,13 @@ EOF + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) +- echo mips-sei-seiux${UNAME_RELEASE} ++ echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) +- UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; +@@ -1350,6 +1322,12 @@ EOF + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; ++ i*86:AROS:*:*) ++ echo ${UNAME_MACHINE}-pc-aros ++ exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 +@@ -1372,11 +1350,11 @@ main () + #include <sys/param.h> + printf ("m68k-sony-newsos%s\n", + #ifdef NEWSOS4 +- "4" ++ "4" + #else +- "" ++ "" + #endif +- ); exit (0); ++ ); exit (0); + #endif + #endif + +diff --git a/configure.ac b/configure.ac +index 9237c77..8e3d9d2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -210,6 +210,20 @@ AC_CANONICAL_BUILD + AC_CANONICAL_HOST + AC_CANONICAL_TARGET + ++# Testing ARM ABI ++# required for code generation (LLVM options) ++ARM_ABI=SOFT ++echo HOST: $host ++ ++case $host in ++ arm*-*-linux-gnueabihf) ++ ARM_ABI=HARD ++ ;; ++ arm*-*-linux-gnueabi) ++ ARM_ABI=SOFTFP ++ ;; ++esac ++ + FPTOOLS_SET_PLATFORM_VARS + + # Verify that the installed (bootstrap) GHC is capable of generating +-- +1.7.4.3 + diff --git a/tools/ghc/ghc-7.4-silence-gen_contents_index.patch b/tools/ghc/ghc-7.4-silence-gen_contents_index.patch new file mode 100644 index 0000000..d000b8b --- /dev/null +++ b/tools/ghc/ghc-7.4-silence-gen_contents_index.patch @@ -0,0 +1,11 @@ +--- ghc-7.4.1/libraries/gen_contents_index~ 2012-09-30 16:14:39.368295240 +0900 ++++ ghc-7.4.1/libraries/gen_contents_index 2012-10-30 19:12:10.017398594 +0900 +@@ -50,7 +50,7 @@ + esac + + # Now create the combined contents and index pages +-echo $HADDOCK_ARGS ++#echo $HADDOCK_ARGS + $HADDOCK --gen-index --gen-contents -o . \ + -t "Haskell Hierarchical Libraries" \ + -p "prologue.txt" \ diff --git a/tools/ghc/ghc-7.4.2-Cabal-disable-ghci-libs.patch b/tools/ghc/ghc-7.4.2-Cabal-disable-ghci-libs.patch new file mode 100644 index 0000000..cdefe0d --- /dev/null +++ b/tools/ghc/ghc-7.4.2-Cabal-disable-ghci-libs.patch @@ -0,0 +1,13 @@ +--- ghc-7.4.2/libraries/Cabal/Cabal/Distribution/Simple/Setup.hs~ 2012-06-07 02:10:40.000000000 +0900 ++++ ghc-7.4.2/libraries/Cabal/Cabal/Distribution/Simple/Setup.hs 2012-08-24 20:33:00.032123967 +0900 +@@ -313,7 +313,7 @@ + configDistPref = Flag defaultDistPref, + configVerbosity = Flag normal, + configUserInstall = Flag False, --TODO: reverse this +- configGHCiLib = Flag True, ++ configGHCiLib = Flag False, + configSplitObjs = Flag False, -- takes longer, so turn off by default + configStripExes = Flag True, + configTests = Flag False, + +Diff finished. Fri Aug 24 20:33:10 2012 diff --git a/tools/ghc/ghc-doc-index b/tools/ghc/ghc-doc-index new file mode 100755 index 0000000..6105d7e --- /dev/null +++ b/tools/ghc/ghc-doc-index @@ -0,0 +1,38 @@ +#!/bin/sh + +LOCKFILE=/var/lock/ghc-doc-index.lock + +# the lockfile is not meant to be perfect, it's just in case +# two cron scripts get run close to each other to keep +# them from stepping on each other's toes. +if [ -f $LOCKFILE ]; then + echo "Locked with $LOCKFILE" + exit 0 +fi + +if [ "$(id -u)" != "0" ]; then + echo Need to be root! + exit 1 +fi + +trap "{ rm -f $LOCKFILE ; exit 255; }" EXIT +touch $LOCKFILE + +PKGDIRCACHE=/var/lib/ghc/pkg-dir.cache +LISTING="env LANG=C ls -dl" + +# only re-index ghc docs when there are changes +cd /usr/share/doc/ghc/html/libraries +if [ -r "$PKGDIRCACHE" ]; then + $LISTING */ > $PKGDIRCACHE.new + DIR_DIFF=$(diff $PKGDIRCACHE $PKGDIRCACHE.new) +else + $LISTING */ > $PKGDIRCACHE +fi +if [ -x "gen_contents_index" -a ! -r "$PKGDIRCACHE.new" -o -n "$DIR_DIFF" ]; then + ./gen_contents_index +fi + +if [ -f $PKGDIRCACHE.new ]; then + mv -f $PKGDIRCACHE{.new,} +fi diff --git a/tools/ghc/ghc-doc-index.cron b/tools/ghc/ghc-doc-index.cron new file mode 100755 index 0000000..4efe2ff --- /dev/null +++ b/tools/ghc/ghc-doc-index.cron @@ -0,0 +1,9 @@ +#! /bin/bash +# updates the library documentation index after updates + +# This can be disabled by uninstalling ghc-doc-index +# or adding ghc-doc-index to "./jobs-deny". + +/usr/bin/ghc-doc-index + +exit 0 diff --git a/tools/ghc/ghc-gen_contents_index-type-level.patch b/tools/ghc/ghc-gen_contents_index-type-level.patch new file mode 100644 index 0000000..05a9e42 --- /dev/null +++ b/tools/ghc/ghc-gen_contents_index-type-level.patch @@ -0,0 +1,12 @@ +diff -u ghc-6.12.3/libraries/gen_contents_index\~ ghc-6.12.3/libraries/gen_contents_index +--- ghc-6.12.3/libraries/gen_contents_index~ 2010-09-14 13:03:12.000000000 +1000 ++++ ghc-6.12.3/libraries/gen_contents_index 2010-11-04 16:41:32.000000000 +1000 +@@ -24,7 +24,7 @@ + *) + HADDOCK=/usr/bin/haddock + # We don't want the GHC API to swamp the index +- HADDOCK_FILES=`ls -1 */*.haddock | grep -v '/ghc\.haddock' | sort` ++ HADDOCK_FILES=`ls -1 */*.haddock | grep -v '/ghc\.haddock' | grep -v '/type-level\.haddock' | sort` + for HADDOCK_FILE in $HADDOCK_FILES + do + NAME_VERSION=`echo "$HADDOCK_FILE" | sed 's#/.*##'` diff --git a/tools/ghc/ghc-llvmCodeGen-empty-array.patch b/tools/ghc/ghc-llvmCodeGen-empty-array.patch new file mode 100644 index 0000000..2129e52 --- /dev/null +++ b/tools/ghc/ghc-llvmCodeGen-empty-array.patch @@ -0,0 +1,44 @@ +commit db9b63105a541e4ad3f9c55e2cfadf716445ab87 +Author: Geoffrey Mainland <gmainlan@microsoft.com> +Date: Wed Jun 12 14:31:49 2013 +0100 + + Avoid generating empty llvm.used definitions. + + LLVM 3.3rc3 complains when the llvm.used global is an empty array, so don't + define llvm.used at all when it would be empty. + + Modified compiler/llvmGen/LlvmCodeGen.hs +diff --git a/compiler/llvmGen/LlvmCodeGen.hs b/compiler/llvmGen/LlvmCodeGen.hs +index a157a25..4f2bded 100644 +--- a/compiler/llvmGen/LlvmCodeGen.hs ++++ b/compiler/llvmGen/LlvmCodeGen.hs +@@ -117,18 +117,18 @@ cmmProcLlvmGens :: DynFlags -> BufHandle -> UniqSupply -> LlvmEnv -> [RawCmmDecl + -> [[LlvmVar]] -- ^ info tables that need to be marked as 'used' + -> IO () + +-cmmProcLlvmGens _ _ _ _ [] _ [] +- = return () +- + cmmProcLlvmGens _ h _ _ [] _ ivars +- = let ivars' = concat ivars +- cast x = LMBitc (LMStaticPointer (pVarLift x)) i8Ptr +- ty = (LMArray (length ivars') i8Ptr) +- usedArray = LMStaticArray (map cast ivars') ty +- lmUsed = (LMGlobalVar (fsLit "llvm.used") ty Appending +- (Just $ fsLit "llvm.metadata") Nothing False, Just usedArray) +- in Prt.bufLeftRender h $ {-# SCC "llvm_used_ppr" #-} +- pprLlvmData ([lmUsed], []) ++ | null ivars' = return () ++ | otherwise = Prt.bufLeftRender h $ ++ {-# SCC "llvm_used_ppr" #-} ++ pprLlvmData ([lmUsed], []) ++ where ++ ivars' = concat ivars ++ cast x = LMBitc (LMStaticPointer (pVarLift x)) i8Ptr ++ ty = (LMArray (length ivars') i8Ptr) ++ usedArray = LMStaticArray (map cast ivars') ty ++ lmUsed = (LMGlobalVar (fsLit "llvm.used") ty Appending ++ (Just $ fsLit "llvm.metadata") Nothing False, Just usedArray) + + cmmProcLlvmGens dflags h us env ((CmmData _ _) : cmms) count ivars + = cmmProcLlvmGens dflags h us env cmms count ivars diff --git a/tools/ghc/ghc-powerpc-linker-mmap.patch b/tools/ghc/ghc-powerpc-linker-mmap.patch new file mode 100644 index 0000000..df0d5ff --- /dev/null +++ b/tools/ghc/ghc-powerpc-linker-mmap.patch @@ -0,0 +1,34 @@ +diff -up ghc-7.0.2/rts/Linker.c.fix-powerpc ghc-7.0.2/rts/Linker.c
+--- ghc-7.0.2/rts/Linker.c.fix-powerpc 2011-02-28 19:10:08.000000000 +0100
++++ ghc-7.0.2/rts/Linker.c 2011-04-25 22:20:10.781092305 +0200
+@@ -70,11 +70,12 @@
+ #include <sys/wait.h>
+ #endif
+
+-#if defined(linux_HOST_OS ) || defined(freebsd_HOST_OS) || \
+- defined(dragonfly_HOST_OS) || defined(netbsd_HOST_OS ) || \
+- defined(openbsd_HOST_OS ) || \
+- ( defined(darwin_HOST_OS ) && !defined(powerpc_HOST_ARCH) )
+-/* Don't use mmap on powerpc-apple-darwin as mmap doesn't support
++#if !defined(powerpc_HOST_ARCH) && \
++ ( defined(linux_HOST_OS ) || defined(freebsd_HOST_OS) || \
++ defined(dragonfly_HOST_OS) || defined(netbsd_HOST_OS ) || \
++ defined(openbsd_HOST_OS ) || defined(darwin_HOST_OS ) || \
++ defined(kfreebsdgnu_HOST_OS) )
++/* Don't use mmap on powerpc_HOST_ARCH as mmap doesn't support
+ * reallocating but we need to allocate jump islands just after each
+ * object images. Otherwise relative branches to jump islands can fail
+ * due to 24-bits displacement overflow.
+@@ -2436,7 +2437,11 @@ static void ocFlushInstructionCacheFrom(
+ static void ocFlushInstructionCache( ObjectCode *oc )
+ {
+ /* The main object code */
+- ocFlushInstructionCacheFrom(oc->image + oc->misalignment, oc->fileSize);
++ ocFlushInstructionCacheFrom(oc->image
++#ifdef darwin_HOST_OS
++ + oc->misalignment
++#endif
++ , oc->fileSize);
+
+ /* Jump Islands */
+ ocFlushInstructionCacheFrom(oc->symbol_extras, sizeof(SymbolExtra) * oc->n_symbol_extras);
diff --git a/tools/ghc/ghc-powerpc-pthread.patch b/tools/ghc/ghc-powerpc-pthread.patch new file mode 100644 index 0000000..d317ff7 --- /dev/null +++ b/tools/ghc/ghc-powerpc-pthread.patch @@ -0,0 +1,18 @@ +diff -up ghc-7.0.2/aclocal.m4.pthread ghc-7.0.2/aclocal.m4 +--- ghc-7.0.2/aclocal.m4.pthread 2011-02-28 13:10:03.000000000 -0500 ++++ ghc-7.0.2/aclocal.m4 2011-04-20 07:12:36.489772545 -0400 +@@ -1385,7 +1385,7 @@ AC_MSG_NOTICE(Building in-tree ghc-pwd) + dnl except we don't want to have to know what make is called. Sigh. + rm -rf utils/ghc-pwd/dist-boot + mkdir utils/ghc-pwd/dist-boot +- if ! "$WithGhc" -v0 -no-user-package-conf -hidir utils/ghc-pwd/dist-boot -odir utils/ghc-pwd/dist-boot -stubdir utils/ghc-pwd/dist-boot --make utils/ghc-pwd/Main.hs -o utils/ghc-pwd/dist-boot/ghc-pwd ++ if ! "$WithGhc" -optl-pthread -v0 -no-user-package-conf -hidir utils/ghc-pwd/dist-boot -odir utils/ghc-pwd/dist-boot -stubdir utils/ghc-pwd/dist-boot --make utils/ghc-pwd/Main.hs -o utils/ghc-pwd/dist-boot/ghc-pwd + then + AC_MSG_ERROR([Building ghc-pwd failed]) + fi +diff -up ghc-7.0.2/ghc/ghc.wrapper.pthread ghc-7.0.2/ghc/ghc.wrapper +--- ghc-7.0.2/ghc/ghc.wrapper.pthread 2011-04-20 09:58:50.307894773 -0400 ++++ ghc-7.0.2/ghc/ghc.wrapper 2011-04-20 09:59:14.477894370 -0400 +@@ -1 +1 @@ +-exec "$executablename" -B"$topdir" -pgmc "$pgmgcc" -pgma "$pgmgcc" -pgml "$pgmgcc" -pgmP "$pgmgcc -E -undef -traditional" ${1+"$@"} ++exec "$executablename" -B"$topdir" -pgmc "$pgmgcc" -pgma "$pgmgcc" -pgml "$pgmgcc" -pgmP "$pgmgcc -E -undef -traditional" -optl-pthread ${1+"$@"} diff --git a/tools/ghc/ghc-use-system-libffi.patch b/tools/ghc/ghc-use-system-libffi.patch new file mode 100644 index 0000000..304bcb9 --- /dev/null +++ b/tools/ghc/ghc-use-system-libffi.patch @@ -0,0 +1,83 @@ +This patch could be replaced by a configure call if +http://hackage.haskell.org/trac/ghc/ticket/5743 were fixed. + +Index: ghc-7.4.0.20111219/rts/package.conf.in +=================================================================== +--- ghc-7.4.0.20111219.orig/rts/package.conf.in 2011-12-21 23:21:03.000000000 +0100 ++++ ghc-7.4.0.20111219/rts/package.conf.in 2011-12-21 23:21:04.000000000 +0100 +@@ -24,8 +24,9 @@ + hs-libraries: "HSrts" + + extra-libraries: ++ "ffi" + #ifdef HAVE_LIBM +- "m" /* for ldexp() */ ++ , "m" /* for ldexp() */ + #endif + #ifdef HAVE_LIBRT + , "rt" +Index: ghc-7.4.0.20111219/ghc.mk +=================================================================== +--- ghc-7.4.0.20111219.orig/ghc.mk 2011-12-21 23:21:03.000000000 +0100 ++++ ghc-7.4.0.20111219/ghc.mk 2011-12-21 23:21:04.000000000 +0100 +@@ -579,7 +579,6 @@ + driver/ghci \ + driver/ghc \ + driver/haddock \ +- libffi \ + includes \ + rts + +Index: ghc-7.4.0.20111219/rts/ghc.mk +=================================================================== +--- ghc-7.4.0.20111219.orig/rts/ghc.mk 2011-12-21 19:56:29.000000000 +0100 ++++ ghc-7.4.0.20111219/rts/ghc.mk 2011-12-21 23:23:52.000000000 +0100 +@@ -86,8 +86,7 @@ + ALL_RTS_DEF_LIBNAMES = base ghc-prim + ALL_RTS_DEF_LIBS = \ + rts/dist/build/win32/libHSbase.dll.a \ +- rts/dist/build/win32/libHSghc-prim.dll.a \ +- libffi/build/inst/lib/libffi.dll.a ++ rts/dist/build/win32/libHSghc-prim.dll.a + + # -- import libs for the regular Haskell libraries + define make-importlib-def # args $1 = lib name +@@ -172,12 +171,12 @@ + # Making a shared library for the RTS. + ifneq "$$(findstring dyn, $1)" "" + ifeq "$$(HOSTPLATFORM)" "i386-unknown-mingw32" +-$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) rts/libs.depend rts/dist/build/libffi-5.dll ++$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) rts/libs.depend + "$$(RM)" $$(RM_OPTS) $$@ + "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \ + -no-auto-link-packages -Lrts/dist/build -lffi-5 `cat rts/libs.depend` $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) -o $$@ + else +-$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) rts/libs.depend rts/dist/build/libffi$$(soext) ++$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) rts/libs.depend + "$$(RM)" $$(RM_OPTS) $$@ + "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \ + -no-auto-link-packages -Lrts/dist/build -lffi `cat rts/libs.depend` $$(rts_$1_OBJS) \ +@@ -188,9 +187,9 @@ + endif + endif + else +-$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) $$(rts_ffi_objs_stamp) ++$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) + "$$(RM)" $$(RM_OPTS) $$@ +- echo $$(rts_ffi_objs) $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR_STAGE1)" \ ++ echo $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR_STAGE1)" \ + $$(AR_OPTS_STAGE1) $$(EXTRA_AR_ARGS_STAGE1) $$@ + endif + +@@ -504,10 +503,8 @@ + # installing + + INSTALL_LIBS += $(ALL_RTS_LIBS) +-INSTALL_LIBS += $(wildcard rts/dist/build/libffi$(soext)*) +-INSTALL_LIBS += $(wildcard rts/dist/build/libffi-5.dll) + +-install: install_libffi_headers ++install: + + .PHONY: install_libffi_headers + install_libffi_headers : diff --git a/tools/ghc/ghc-wrapper-libffi-include.patch b/tools/ghc/ghc-wrapper-libffi-include.patch new file mode 100644 index 0000000..48870ec --- /dev/null +++ b/tools/ghc/ghc-wrapper-libffi-include.patch @@ -0,0 +1,6 @@ +diff -u ghc-7.4.1/ghc/ghc.wrapper\~ ghc-7.4.1/ghc/ghc.wrapper +--- ghc-7.4.1/ghc/ghc.wrapper~ 2012-02-02 03:10:32.000000000 +0900 ++++ ghc-7.4.1/ghc/ghc.wrapper 2012-05-02 19:39:05.503872527 +0900 +@@ -1 +1 @@ +-exec "$executablename" -B"$topdir" ${1+"$@"} ++exec "$executablename" -B"$topdir" -optc-I$(pkg-config --variable=includedir libffi) ${1+"$@"} diff --git a/tools/ghc/ghc.spec b/tools/ghc/ghc.spec new file mode 100644 index 0000000..d131f16 --- /dev/null +++ b/tools/ghc/ghc.spec @@ -0,0 +1,1269 @@ +# Shared haskell libraries are supported for x86* archs +# (disabled for other archs in ghc-rpm-macros) + +# To bootstrap build a new version of ghc, uncomment the following: +#%%global ghc_bootstrapping 1 +#%%{?ghc_bootstrap} +%global without_testsuite 1 +#%%global without_haddock 1 +%global without_manual 1 + +# To do a test build instead with shared libs, uncomment the following: +#%%global ghc_bootstrapping 1 +#%%{?ghc_test} +#%%global without_testsuite 1 + +# unregisterized archs +%global unregisterised_archs ppc64 s390 s390x + +# ghc does not output dwarf format so debuginfo is not useful +%global debug_package %{nil} + +%global space %(echo -n ' ') +%global BSDHaskellReport BSD%{space}and%{space}HaskellReport + +# gcc-4.1 is too old for ghc7 dyn: +# "/usr/bin/ld: rts/dist/build/RtsStartup.dyn_o: relocation R_X86_64_PC32 against `StgRun' can not be used when making a shared object; recompile with -fPIC" +%global gcc gcc44 + +Name: ghc +# part of haskell-platform +# ghc must be rebuilt after a version bump to avoid ABI change problems +Version: 7.4.2 +# Since library subpackages are versioned: +# - release can only be reset if *all* library versions get bumped simultaneously +# (sometimes after a major release) +# - minor release numbers for a branch should be incremented monotonically +Release: 11.0.3%{?dist} +Summary: Glasgow Haskell Compiler + +License: %BSDHaskellReport +URL: http://haskell.org/ghc/ +Group: Development/Languages +Source0: http://www.haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.bz2 +%if %{undefined without_testsuite} +Source2: http://www.haskell.org/ghc/dist/%{version}/ghc-%{version}-testsuite.tar.bz2 +%endif +Source3: ghc-doc-index.cron +Source4: ghc-doc-index +# absolute haddock path (was for html/libraries -> libraries) +Patch1: ghc-6.12.1-gen_contents_index-haddock-path.patch +# type-level too big so skip it in gen_contents_index +Patch2: ghc-gen_contents_index-type-level.patch +# fedora does not allow copy libraries +Patch4: ghc-use-system-libffi.patch +Patch7: ghc-powerpc-pthread.patch +# http://hackage.haskell.org/trac/ghc/ticket/4999 +Patch8: ghc-powerpc-linker-mmap.patch +# fix dynamic linking of executables using Template Haskell +Patch9: Cabal-fix-dynamic-exec-for-TH.patch +# add libffi include dir to ghc wrapper for archs using gcc/llc +Patch10: ghc-wrapper-libffi-include.patch +# latest arm hf patch +Patch11: ghc-7.4-add-support-for-ARM-hard-float-ABI-fixes-5914.patch +# disable building HS*.o libs for ghci +Patch12: ghc-7.4.2-Cabal-disable-ghci-libs.patch +# fix compilation with llvm-3.3 +Patch13: ghc-llvmCodeGen-empty-array.patch +Patch17: ghc-7.4-silence-gen_contents_index.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +# fedora ghc has been bootstrapped on +# %{ix86} x86_64 ppc alpha sparcv9 ppc64 armv7hl armv5tel s390 s390x +# see ghc_arches defined in /etc/rpm/macros.ghc-srpm by redhat-rpm-macros +ExcludeArch: sparc64 ppc +Obsoletes: ghc-dph-base < 0.5, ghc-dph-base-devel < 0.5, ghc-dph-base-prof < 0.5 +Obsoletes: ghc-dph-par < 0.5, ghc-dph-par-devel < 0.5, ghc-dph-par-prof < 0.5 +Obsoletes: ghc-dph-prim-interface < 0.5, ghc-dph-prim-interface-devel < 0.5, ghc-dph-interface-prim-prof < 0.5 +Obsoletes: ghc-dph-prim-par < 0.5, ghc-dph-prim-par-devel < 0.5, ghc-dph-prim-par-prof < 0.5 +Obsoletes: ghc-dph-prim-seq < 0.5, ghc-dph-prim-seq-devel < 0.5, ghc-dph-prim-seq-prof < 0.5 +Obsoletes: ghc-dph-seq < 0.5, ghc-dph-seq-devel < 0.5, ghc-dph-seq-prof < 0.5 +Obsoletes: ghc-feldspar-language < 0.4, ghc-feldspar-language-devel < 0.4, ghc-feldspar-language-prof < 0.4 +%if %{undefined ghc_bootstrapping} +BuildRequires: ghc-compiler = %{version} +%endif +BuildRequires: ghc-rpm-macros >= 0.15.15 +BuildRequires: ghc-bytestring-devel +BuildRequires: ghc-containers-devel +BuildRequires: ghc-directory-devel +BuildRequires: ghc-haskell98-devel +BuildRequires: ghc-pretty-devel +BuildRequires: ghc-process-devel +BuildRequires: gmp-devel +BuildRequires: libffi-devel +# for internal terminfo +BuildRequires: ncurses-devel +%if %{undefined without_manual} +BuildRequires: libxslt, docbook-style-xsl +%endif +%if %{undefined without_testsuite} +BuildRequires: python +%endif +%ifarch armv7hl armv5tel +BuildRequires: llvm >= 3.0 +%endif +%ifarch armv7hl +BuildRequires: autoconf +%endif +%ifarch %{ix86} x86_64 +BuildRequires: %{gcc} +%endif +Requires: ghc-compiler = %{version}-%{release} +%if %{undefined without_haddock} +Requires: ghc-doc-index = %{version}-%{release} +%endif +Requires: ghc-libraries = %{version}-%{release} +Requires: ghc-ghc-devel = %{version}-%{release} + +%description +GHC is a state-of-the-art, open source, compiler and interactive environment +for the functional language Haskell. Highlights: + +- GHC supports the entire Haskell 2010 language plus various extensions. +- GHC has particularly good support for concurrency and parallelism, + including support for Software Transactional Memory (STM). +- GHC generates fast code, particularly for concurrent programs + (check the results on the "Computer Language Benchmarks Game"). +- GHC works on several platforms including Windows, Mac, Linux, + most varieties of Unix, and several different processor architectures. +- GHC has extensive optimisation capabilities, + including inter-module optimisation. +- GHC compiles Haskell code either directly to native code or using LLVM + as a back-end. GHC can also generate C code as an intermediate target for + porting to new platforms. The interactive environment compiles Haskell to + bytecode, and supports execution of mixed bytecode/compiled programs. +- Profiling is supported, both by time/allocation and heap profiling. +- GHC comes with core libraries, and thousands more are available on Hackage. + +%package compiler +Summary: GHC compiler and utilities +License: BSD +Group: Development/Languages +Requires: %{gcc}%{?_isa} +Requires: ghc-base-devel%{?_isa} +# for alternatives +Requires(post): chkconfig +Requires(postun): chkconfig +# added in f14 +Obsoletes: ghc-doc < 6.12.3-4 +%ifarch armv7hl armv5tel +Requires: llvm >= 3.0 +%endif + +%description compiler +The package contains the GHC compiler, tools and utilities. + +The ghc libraries are provided by ghc-devel. +To install all of ghc, install the ghc base package. + +%if %{undefined without_haddock} +%package doc-index +Summary: GHC library development documentation indexing +License: BSD +Group: Development/Languages +Requires: ghc-compiler = %{version}-%{release} + +%description doc-index +The package provides a cronjob for re-indexing installed library development +documention. +%endif + +%global ghc_version_override %{version} + +# needs ghc_version_override for bootstrapping +%global _use_internal_dependency_generator 0 +%global __find_provides %{_prefix}/lib/rpm/ghc-deps.sh --provides %{buildroot}%{ghclibdir} +%global __find_requires %{_prefix}/lib/rpm/ghc-deps.sh --requires %{buildroot}%{ghclibdir} + + +%global ghc_pkg_c_deps ghc-compiler = %{ghc_version_override}-%{release} + +%if %{defined ghclibdir} +%ghc_lib_subpackage Cabal 1.14.0 +%ghc_lib_subpackage -l %BSDHaskellReport array 0.4.0.0 +%ghc_lib_subpackage -l %BSDHaskellReport -c gmp-devel%{?_isa},libffi-devel%{?_isa} base 4.5.1.0 +%ghc_lib_subpackage binary 0.5.1.0 +%ghc_lib_subpackage bytestring 0.9.2.1 +%ghc_lib_subpackage -l %BSDHaskellReport containers 0.4.2.1 +%ghc_lib_subpackage -l %BSDHaskellReport deepseq 1.3.0.0 +%ghc_lib_subpackage -l %BSDHaskellReport directory 1.1.0.2 +%ghc_lib_subpackage -l %BSDHaskellReport extensible-exceptions 0.1.1.4 +%ghc_lib_subpackage filepath 1.3.0.0 +%define ghc_pkg_obsoletes ghc-bin-package-db-devel < 0.0.0.0-12 +# in ghc not ghc-libraries: +%ghc_lib_subpackage -x ghc %{ghc_version_override} +%undefine ghc_pkg_obsoletes +%ghc_lib_subpackage -l HaskellReport haskell2010 1.1.0.1 +%ghc_lib_subpackage -l HaskellReport haskell98 2.0.0.1 +%ghc_lib_subpackage hoopl 3.8.7.3 +%ghc_lib_subpackage hpc 0.5.1.1 +%ghc_lib_subpackage -l %BSDHaskellReport old-locale 1.0.0.4 +%ghc_lib_subpackage -l %BSDHaskellReport old-time 1.1.0.0 +%ghc_lib_subpackage pretty 1.1.1.0 +%ghc_lib_subpackage -l %BSDHaskellReport process 1.1.0.1 +%ghc_lib_subpackage template-haskell 2.7.0.0 +%ghc_lib_subpackage time 1.4 +%ghc_lib_subpackage unix 2.5.1.1 +%endif + +%global version %{ghc_version_override} + +%package libraries +Summary: GHC development libraries meta package +License: %BSDHaskellReport +Group: Development/Libraries +Requires: ghc-compiler = %{version}-%{release} +Obsoletes: ghc-devel < %{version}-%{release} +Provides: ghc-devel = %{version}-%{release} +Obsoletes: ghc-prof < %{version}-%{release} +Provides: ghc-prof = %{version}-%{release} +# since f15 +Obsoletes: ghc-libs < 7.0.1-3 +%{?ghc_packages_list:Requires: %(echo %{ghc_packages_list} | sed -e "s/\([^ ]*\)-\([^ ]*\)/ghc-\1-devel = \2-%{release},/g")} + +%description libraries +This is a meta-package for all the development library packages in GHC +except the ghc library, which is installed by the toplevel ghc metapackage. + + +%prep +%setup -q -n %{name}-%{version} %{!?without_testsuite:-b2} + +# tweaks to gen_contents_index +%patch1 -p1 -b .orig +%patch2 -p1 +%patch17 -p1 + +# make sure we don't use these +rm -r ghc-tarballs/{mingw,perl} +# use system libffi +%patch4 -p1 -b .libffi +rm -r ghc-tarballs/libffi +mkdir -p rts/dist/build +ln -s $(pkg-config --variable=includedir libffi)/*.h rts/dist/build + +%patch9 -p1 -b .orig + +%ifnarch %{ix86} x86_64 +%patch10 -p1 -b .10-ffi +%endif + +# ARM patches +%ifarch armv7hl +# touches aclocal.m4 +%patch11 -p1 -b .arm +autoreconf +%endif + +%patch12 -p1 -b .orig + +%patch13 -p1 -b .orig + + +%build +# http://hackage.haskell.org/trac/ghc/wiki/Platforms +# cf https://github.com/gentoo-haskell/gentoo-haskell/tree/master/dev-lang/ghc +cat > mk/build.mk << EOF +GhcLibWays = v %{!?ghc_without_shared:dyn} %{!?without_prof:p} +%if %{defined without_haddock} +HADDOCK_DOCS = NO +%endif +%if %{defined without_manual} +BUILD_DOCBOOK_HTML = NO +%endif +EOF + +export CFLAGS="${CFLAGS:-%optflags}" +# use --with-gcc=%{_bindir}/gcc when bootstrapping to avoid ccache hardcoding problem +./configure --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \ + --bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \ + --datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} \ + --libexecdir=%{_libexecdir} --localstatedir=%{_localstatedir} \ + --sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \ + --with-gcc=%{_bindir}/%{gcc} + +make %{?_smp_mflags} + + +%install +rm -rf %{buildroot} +make DESTDIR=%{buildroot} install + +for i in %{ghc_packages_list}; do +name=$(echo $i | sed -e "s/\(.*\)-.*/\1/") +ver=$(echo $i | sed -e "s/.*-\(.*\)/\1/") +%ghc_gen_filelists $name $ver +echo "%doc libraries/$name/LICENSE" >> ghc-$name%{?ghc_without_shared:-devel}.files +done + +# ghc-base should own ghclibdir +echo "%dir %{ghclibdir}" >> ghc-base%{?ghc_without_shared:-devel}.files + +%ghc_gen_filelists bin-package-db 0.0.0.0 +%ghc_gen_filelists ghc %{ghc_version_override} +%ghc_gen_filelists ghc-prim 0.2.0.0 +%ghc_gen_filelists integer-gmp 0.4.0.0 + +%define merge_filelist()\ +%if %{undefined ghc_without_shared}\ +cat ghc-%1.files >> ghc-%2.files\ +%endif\ +cat ghc-%1-devel.files >> ghc-%2-devel.files\ +cp -p libraries/%1/LICENSE libraries/LICENSE.%1\ +echo "%doc libraries/LICENSE.%1" >> ghc-%2.files + +%merge_filelist integer-gmp base +%merge_filelist ghc-prim base +%merge_filelist bin-package-db ghc + +# add rts libs +%if %{undefined ghc_without_shared} +ls %{buildroot}%{ghclibdir}/libHS*.so >> ghc-base.files +sed -i -e "s|^%{buildroot}||g" ghc-base.files +%endif +ls -d %{buildroot}%{ghclibdir}/libHS*.a %{buildroot}%{ghclibdir}/package.conf.d/builtin_*.conf %{buildroot}%{ghclibdir}/include >> ghc-base-devel.files +sed -i -e "s|^%{buildroot}||g" ghc-base-devel.files + +# these are handled as alternatives +for i in hsc2hs runhaskell; do + if [ -x %{buildroot}%{_bindir}/$i-ghc ]; then + rm %{buildroot}%{_bindir}/$i + else + mv %{buildroot}%{_bindir}/$i{,-ghc} + fi + touch %{buildroot}%{_bindir}/$i +done + +%ghc_strip_dynlinked + +%if %{undefined without_haddock} +mkdir -p %{buildroot}%{_sysconfdir}/cron.hourly +install -p --mode=0755 %SOURCE3 %{buildroot}%{_sysconfdir}/cron.hourly/ghc-doc-index +mkdir -p %{buildroot}%{_localstatedir}/lib/ghc +install -p --mode=0755 %SOURCE4 %{buildroot}%{_bindir}/ghc-doc-index +%endif + + +%check +# stolen from ghc6/debian/rules: +# Do some very simple tests that the compiler actually works +rm -rf testghc +mkdir testghc +echo 'main = putStrLn "Foo"' > testghc/foo.hs +inplace/bin/ghc-stage2 testghc/foo.hs -o testghc/foo +[ "$(testghc/foo)" = "Foo" ] +# doesn't seem to work inplace: +#[ "$(inplace/bin/runghc testghc/foo.hs)" = "Foo" ] +rm testghc/* +echo 'main = putStrLn "Foo"' > testghc/foo.hs +inplace/bin/ghc-stage2 testghc/foo.hs -o testghc/foo -O2 +[ "$(testghc/foo)" = "Foo" ] +rm testghc/* +%if %{undefined ghc_without_shared} +echo 'main = putStrLn "Foo"' > testghc/foo.hs +inplace/bin/ghc-stage2 testghc/foo.hs -o testghc/foo -dynamic +[ "$(testghc/foo)" = "Foo" ] +rm testghc/* +%endif +%if %{undefined without_testsuite} +make test +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%post compiler +# Alas, GHC, Hugs, and nhc all come with different set of tools in +# addition to a runFOO: +# +# * GHC: hsc2hs +# * Hugs: hsc2hs, cpphs +# * nhc: cpphs +# +# Therefore it is currently not possible to use --slave below to form +# link groups under a single name 'runhaskell'. Either these tools +# should be disentangled from the Haskell implementations, or all +# implementations should have the same set of tools. *sigh* + +update-alternatives --install %{_bindir}/runhaskell runhaskell \ + %{_bindir}/runghc 500 +update-alternatives --install %{_bindir}/hsc2hs hsc2hs \ + %{_bindir}/hsc2hs-ghc 500 + +%preun compiler +if [ "$1" = 0 ]; then + update-alternatives --remove runhaskell %{_bindir}/runghc + update-alternatives --remove hsc2hs %{_bindir}/hsc2hs-ghc +fi + + +%files + +%files compiler +%defattr(-,root,root,-) +%doc ANNOUNCE HACKING LICENSE README +%{_bindir}/ghc +%{_bindir}/ghc-%{version} +%{_bindir}/ghc-pkg +%{_bindir}/ghc-pkg-%{version} +%{_bindir}/ghci +%{_bindir}/ghci-%{version} +%{_bindir}/hp2ps +%{_bindir}/hpc +%ghost %{_bindir}/hsc2hs +%{_bindir}/hsc2hs-ghc +%{_bindir}/runghc +%ghost %{_bindir}/runhaskell +%{_bindir}/runhaskell-ghc +%{ghclibdir}/ghc +%{ghclibdir}/ghc-pkg +%ifnarch %{unregisterised_archs} +%{ghclibdir}/ghc-split +%endif +%{ghclibdir}/ghc-usage.txt +%{ghclibdir}/ghci-usage.txt +%{ghclibdir}/hsc2hs +%dir %{ghclibdir}/package.conf.d +%ghost %{ghclibdir}/package.conf.d/package.cache +%{ghclibdir}/runghc +%{ghclibdir}/settings +%{ghclibdir}/template-hsc.h +%{ghclibdir}/unlit +%dir %{_docdir}/ghc +%dir %{ghcdocbasedir} +%if %{undefined without_haddock} +%{_bindir}/ghc-doc-index +%{_bindir}/haddock +%{_bindir}/haddock-ghc-%{version} +%{ghclibdir}/haddock +%{ghclibdir}/html +%{ghclibdir}/latex +%if %{undefined without_manual} +%{_mandir}/man1/ghc.* +## needs pandoc +#%{ghcdocbasedir}/Cabal +%{ghcdocbasedir}/haddock +%{ghcdocbasedir}/users_guide +%endif +%dir %{ghcdocbasedir}/libraries +%{ghcdocbasedir}/libraries/frames.html +%{ghcdocbasedir}/libraries/gen_contents_index +%{ghcdocbasedir}/libraries/hscolour.css +%{ghcdocbasedir}/libraries/ocean.css +%{ghcdocbasedir}/libraries/prologue.txt +%{ghcdocbasedir}/index.html +%ghost %{ghcdocbasedir}/libraries/doc-index*.html +%ghost %{ghcdocbasedir}/libraries/haddock-util.js +%ghost %{ghcdocbasedir}/libraries/index*.html +%ghost %{ghcdocbasedir}/libraries/minus.gif +%ghost %{ghcdocbasedir}/libraries/plus.gif +%{_localstatedir}/lib/ghc +%endif + +%if %{undefined without_haddock} +%files doc-index +%defattr(-,root,root,-) +%{_sysconfdir}/cron.hourly/ghc-doc-index +%endif + +%files libraries + + +%changelog +* Tue Jan 21 2014 Jens Petersen <petersen@redhat.com> - 7.4.2-11.0.3 +- add Group for ghc-doc-index +- disable testsuite (python too old) +- skip manpage and building manual because of docbook issues + +* Mon Jan 20 2014 Jens Petersen <petersen@redhat.com> - 7.4.2-11.0.2 +- production build + +* Sat Jan 18 2014 Jens Petersen <petersen@fedoraproject.org> - 7.4.2-11.0.1 +- backport to EL5 +- build with gcc44 +- bootstrap +- exclude ppc + +* Tue Jun 25 2013 Jens Petersen <petersen@redhat.com> +- fix compilation with llvm-3.3 (#977652) + see http://hackage.haskell.org/trac/ghc/ticket/7996 + +* Tue Feb 5 2013 Jens Petersen <petersen@redhat.com> - 7.4.2-11 +- ghclibdir should be owned at runtime by ghc-base instead of ghc-compiler + (thanks Michael Scherer, #907671) + +* Thu Jan 17 2013 Jens Petersen <petersen@redhat.com> - 7.4.2-10 +- rebuild for F19 libffi soname bump + +* Wed Nov 21 2012 Jens Petersen <petersen@redhat.com> - 7.4.2-9 +- fix permissions of ghc-doc-index and only run when root +- ghc-doc-index cronjob no longer looks at /etc/sysconfig/ghc-doc-index + +* Sat Nov 17 2012 Jens Petersen <petersen@redhat.com> - 7.4.2-8 +- production 7.4.2 build + http://www.haskell.org/ghc/docs/7.4.2/html/users_guide/release-7-4-2.html + +* Sat Nov 17 2012 Jens Petersen <petersen@redhat.com> - 7.4.2-7 +- 7.4.2 bootstrap +- update base and unix library versions +- ARM StgCRun patches not longer needed +- use Karel Gardas' ARM hardfloat patch committed upstream +- use _smp_mflags again +- disable Cabal building ghci lib files +- silence the doc re-indexing script and move the doc indexing cronjob + to a new ghc-doc-index subpackage (#870694) +- do not disable hscolour in build.mk +- drop the explicit hscolour BR +- without_hscolour should now be set by ghc-rpm-macros for bootstrapping + +* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.4.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jun 15 2012 Jens Petersen <petersen@redhat.com> - 7.4.1-5 +- use ghc_lib_subpackage instead of ghc_binlib_package (ghc-rpm-macros 0.91) + +* Wed May 2 2012 Jens Petersen <petersen@redhat.com> - 7.4.1-4 +- add ghc-wrapper-libffi-include.patch to workaround "missing libffi.h" + for prof compiling on secondary archs + +* Sat Apr 28 2012 Jens Petersen <petersen@redhat.com> - 7.4.1-3 +- build with llvm-3.0 on ARM +- remove ARM from unregisterised_archs +- add 4 Debian ARM patches for armel and armhf (Iain Lane) + +* Wed Mar 21 2012 Jens Petersen <petersen@redhat.com> - 7.4.1-2 +- full build + +* Wed Feb 15 2012 Jens Petersen <petersen@redhat.com> - 7.4.1-1 +- update to new 7.4.1 major release + http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/release-7-4-1.html +- all library versions bumped +- binary package replaces ghc-binary +- random library dropped +- new hoopl library +- deepseq is now included in ghc +- Cabal --enable-executable-dynamic patch is upstream +- add Cabal-fix-dynamic-exec-for-TH.patch +- sparc linking fix is upstream +- use Debian's system-libffi patch by Joachim Breitner +- setup ghc-deps.sh after ghc_version_override for bootstrapping +- drop ppc64 config, pthread and mmap patches +- do not set GhcUnregisterised explicitly +- add s390 and s390x to unregisterised_archs +- Cabal manual needs pandoc + +* Thu Jan 19 2012 Jens Petersen <petersen@redhat.com> - 7.0.4-42 +- move ghc-ghc-devel from ghc-libraries to the ghc metapackage + +* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.0.4-41 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Nov 14 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-40 +- do alternatives handling correctly (reported by Giam Teck Choon, #753661) + see https://fedoraproject.org/wiki/Packaging:Alternatives + +* Sat Nov 12 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-39 +- move ghc-doc and ghc-libs obsoletes +- add HaskellReport license also to the base and libraries subpackages + +* Thu Nov 10 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-38 +- the post and postun scripts are now for the compiler subpackage + +* Wed Nov 2 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-37 +- rename ghc-devel metapackage to ghc-libraries +- require ghc-rpm-macros-0.14 + +* Tue Nov 1 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-36 +- move compiler and tools to ghc-compiler +- the ghc base package is now a metapackage that installs all of ghc, + ie ghc-compiler and ghc-devel (#750317) +- drop ghc-doc provides + +* Fri Oct 28 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-35.1 +- rebuild against new gmp + +* Fri Oct 28 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-35 +- add HaskellReport license tag to some of the library subpackages + which contain some code from the Haskell Reports + +* Thu Oct 20 2011 Marcela Mašláňová <mmaslano@redhat.com> - 7.0.4-34.1 +- rebuild with new gmp without compat lib + +* Thu Oct 20 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-34 +- setup ghc-deps.sh after ghc_version_override for bootstrapping + +* Tue Oct 18 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-33 +- add armv5tel (ported by Henrik Nordström) +- also use ghc-deps.sh when bootstrapping (ghc-rpm-macros-0.13.13) + +* Mon Oct 17 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-32 +- remove libffi_archs: not allowed to bundle libffi on any arch +- include the ghc (ghci) library in ghc-devel (Narasim) + +* Tue Oct 11 2011 Peter Schiffer <pschiffe@redhat.com> - 7.0.4-31.1 +- rebuild with new gmp + +* Fri Sep 30 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-31 +- build with ghc-rpm-macros >= 0.13.11 to fix provides and obsoletes versions + in library devel subpackages + +* Thu Sep 29 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-30 +- no need to specify -lffi in build.mk (Henrik Nordström) + +* Wed Sep 28 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-29 +- port to armv7hl by Henrik Nordström (#741725) + +* Wed Sep 14 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-28 +- setup ghc-deps.sh when not bootstrapping! + +* Wed Sep 14 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-27 +- setup dependency generation with ghc-deps.sh since it was moved to + ghc_lib_install in ghc-rpm-macros + +* Fri Jun 17 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-26 +- BR same ghc version unless ghc_bootstrapping defined +- add libffi_archs +- drop the quick build profile +- put dyn before p in GhcLibWays +- explain new bootstrapping mode using ghc_bootstrap (ghc-rpm-macros-0.13.5) + +* Thu Jun 16 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-25 +- update to 7.0.4 bugfix release + http://haskell.org/ghc/docs/7.0.4/html/users_guide/release-7-0-4.html +- strip static again (upstream #5004 fixed) +- Cabal updated to 1.10.2.0 +- re-enable testsuite +- update summary and description + +* Tue Jun 14 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-24 +- finally change from ExclusiveArch to ExcludeArch to target more archs + +* Sat May 21 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-23 +- obsolete dph libraries and feldspar-language + +* Mon May 16 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-22 +- merge prof subpackages into the devel subpackages with ghc-rpm-macros-0.13 + +* Wed May 11 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-21 +- configure with /usr/bin/gcc to help bootstrapping to new archs + (otherwise ccache tends to get hardcoded as gcc, which not in koji) +- posttrans scriplet for ghc_pkg_recache is redundant + +* Mon May 9 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-20 +- make devel and prof meta packages require libs with release +- make ghc-*-devel subpackages require ghc with release + +* Wed May 04 2011 Jiri Skala <jskala@redhat.com> - 7.0.2-19.1 +- fixes path to gcc on ppc64 arch + +* Tue Apr 26 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-19 +- add upstream ghc-powerpc-linker-mmap.patch for ppc64 (Jiri Skala) + +* Thu Apr 21 2011 Jiri Skala <jskala@redhat.com> - 7.0.2-18 +- bootstrap to ppc64 + +* Fri Apr 1 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-17 +- rebuild against ghc-rpm-macros-0.11.14 to provide ghc-*-doc + +* Fri Apr 1 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-16 +- provides ghc-doc again: it is still a buildrequires for libraries +- ghc-prof now requires ghc-devel +- ghc-devel now requires ghc explicitly + +* Wed Mar 30 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-15 +- do not strip static libs since it breaks ghci-7.0.2 loading libHSghc.a + (see http://hackage.haskell.org/trac/ghc/ticket/5004) +- no longer provide ghc-doc +- no longer obsolete old haddock + +* Tue Mar 29 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-14 +- fix back missing LICENSE files in library subpackages +- drop ghc_reindex_haddock from install script + +* Thu Mar 10 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-13 +- rebuild against 7.0.2 + +* Wed Mar 9 2011 Jens Petersen <petersen@redhat.com> - 7.0.2-12 +- update to 7.0.2 release +- move bin-package-db into ghc-ghc +- disable broken testsuite + +* Wed Feb 23 2011 Fabio M. Di Nitto <fdinitto@redhat.com> 7.0.1-11 +- enable build on sparcv9 +- add ghc-fix-linking-on-sparc.patch to fix ld being called + at the same time with --relax and -r. The two options conflict + on sparc. +- bump BuildRequires on ghc-rpm-macros to >= 0.11.10 that guarantees + a correct build on secondary architectures. + +* Sun Feb 13 2011 Jens Petersen <petersen@redhat.com> +- without_shared renamed to ghc_without_shared + +* Thu Feb 10 2011 Jens Petersen <petersen@redhat.com> - 7.0.1-10 +- rebuild + +* Thu Feb 10 2011 Jens Petersen <petersen@redhat.com> - 7.0.1-9 +- fix without_shared build (thanks Adrian Reber) +- disable system libffi for secondary archs +- temporarily disable ghc-*-devel BRs for ppc + +* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.0.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 31 2011 Jens Petersen <petersen@redhat.com> - 7.0.1-7 +- include LICENSE files in the shared lib subpackages + +* Sat Jan 22 2011 Jens Petersen <petersen@redhat.com> - 7.0.1-6 +- patch Cabal to add configure option --enable-executable-dynamic +- exclude huge ghc API library from devel and prof metapackages + +* Thu Jan 13 2011 Jens Petersen <petersen@redhat.com> - 7.0.1-5 +- fix no doc and no manual builds + +* Thu Jan 13 2011 Jens Petersen <petersen@redhat.com> - 7.0.1-4 +- add BRs for various subpackaged ghc libraries needed to build ghc +- condition rts .so libraries for non-shared builds + +* Thu Dec 30 2010 Jens Petersen <petersen@redhat.com> - 7.0.1-3 +- subpackage all the libraries with ghc-rpm-macros-0.11.1 +- put rts, integer-gmp and ghc-prim in base, and ghc-binary in bin-package-db +- drop the libs mega-subpackage +- prof now a meta-package for backward compatibility +- add devel meta-subpackage to easily install all ghc libraries +- store doc cronjob package cache file under /var (#664850) +- drop old extralibs bcond +- no longer need to define or clean buildroot +- ghc base package now requires ghc-base-devel +- drop ghc-time obsoletes + +* Wed Nov 24 2010 Jens Petersen <petersen@redhat.com> - 7.0.1-2 +- require libffi-devel + +* Tue Nov 16 2010 Jens Petersen <petersen@redhat.com> - 7.0.1-1 +- update to 7.0.1 release +- turn on system libffi now + +* Mon Nov 8 2010 Jens Petersen <petersen@redhat.com> - 6.12.3-9 +- disable the libffi changes for now since they break libHSffi*.so + +* Thu Nov 4 2010 Jens Petersen <petersen@redhat.com> - 6.12.3-8 +- add a cronjob for doc indexing +- disable gen_contents_index when not run with --batch for cron +- use system libffi with ghc-use-system-libffi.patch from debian +- add bcond for system libffi + +* Thu Nov 4 2010 Jens Petersen <petersen@redhat.com> - 6.12.3-7 +- skip huge type-level docs from haddock re-indexing (#649228) + +* Thu Sep 30 2010 Jens Petersen <petersen@redhat.com> - 6.12.3-6 +- move gtk2hs obsoletes to ghc-glib and ghc-gtk +- drop happy buildrequires +- smp build with max 4 cpus + +* Fri Jul 30 2010 Jens Petersen <petersen@redhat.com> - 6.12.3-5 +- obsolete old gtk2hs packages for smooth upgrades + +* Thu Jul 15 2010 Jens Petersen <petersen@redhat.com> - 6.12.3-4 +- merge ghc-doc into base package +- obsolete ghc-time and ghc-ghc-doc (ghc-rpm-macros-0.8.0) +- note that ghc-6.12.3 is part of haskell-platform-2010.2.0.0 + +* Thu Jun 24 2010 Jens Petersen <petersen@redhat.com> - 6.12.3-3 +- drop the broken summary and description args to the ghc-ghc package + and use ghc-rpm-macros-0.6.1 + +* Wed Jun 23 2010 Jens Petersen <petersen@redhat.com> - 6.12.3-2 +- strip all dynlinked files not just shared objects (ghc-rpm-macros-0.5.9) + +* Mon Jun 14 2010 Jens Petersen <petersen@redhat.com> - 6.12.3-1 +- 6.12.3 release: + http://darcs.haskell.org/download/docs/6.12.3/html/users_guide/release-6-12-3.html +- build with hscolour +- use ghc-rpm-macro-0.5.8 for ghc_strip_shared macro + +* Fri May 28 2010 Jens Petersen <petersen@redhat.com> - 6.12.2.20100521-1 +- 6.12.3 rc1 +- ghost package.cache +- drop ghc-utf8-string obsoletes since it is no longer provided +- run testsuite fast +- fix description and summary of ghc internal library (John Obbele) + +* Fri Apr 23 2010 Jens Petersen <petersen@redhat.com> - 6.12.2-1 +- update to 6.12.2 +- add testsuite with bcond, run it in check section, and BR python + +* Mon Apr 12 2010 Jens Petersen <petersen@redhat.com> - 6.12.1-6 +- ghc-6.12.1 is part of haskell-platform-2010.1.0.0 +- drop old ghc682, ghc681, haddock09 obsoletes +- drop haddock_version and no longer provide haddock explicitly +- update ghc-rpm-macros BR to 0.5.6 for ghc_pkg_recache + +* Mon Jan 11 2010 Jens Petersen <petersen@redhat.com> - 6.12.1-5 +- drop ghc-6.12.1-no-filter-libs.patch and extras packages again +- filter ghc-ghc-prof files from ghc-prof +- ghc-mtl package was added to fedora + +* Mon Jan 11 2010 Jens Petersen <petersen@redhat.com> - 6.12.1-4 +- ghc-rpm-macros-0.5.4 fixes wrong version requires between lib subpackages + +* Mon Jan 11 2010 Jens Petersen <petersen@redhat.com> - 6.12.1-3 +- ghc-rpm-macros-0.5.2 fixes broken pkg_name requires for lib subpackages + +* Tue Dec 22 2009 Jens Petersen <petersen@redhat.com> - 6.12.1-2 +- include haskeline, mtl, and terminfo for now with + ghc-6.12.1-no-filter-libs.patch +- use ghc_binlibpackage, grep -v and ghc_gen_filelists to generate + the library subpackages (ghc-rpm-macros-0.5.1) +- always set GhcLibWays (Lorenzo Villani) +- use ghcdocbasedir to revert html doc path to upstream's html/ for consistency + +* Wed Dec 16 2009 Jens Petersen <petersen@redhat.com> - 6.12.1-1 +- pre became 6.12.1 final +- exclude ghc .conf file from package.conf.d in base package +- use ghc_reindex_haddock +- add scripts for ghc-ghc-devel and ghc-ghc-doc +- add doc bcond +- add ghc-6.12.1-gen_contents_index-haddock-path.patch to adjust haddock path + since we removed html/ from libraries path +- require ghc-rpm-macros-0.3.1 and use ghc_version_override + +* Sat Dec 12 2009 Jens Petersen <petersen@redhat.com> - 6.12.1-0.2 +- remove redundant mingw and perl from ghc-tarballs/ +- fix exclusion of ghc internals lib from base packages with -mindepth +- rename the final file lists to PKGNAME.files for clarity + +* Fri Dec 11 2009 Jens Petersen <petersen@redhat.com> - 6.12.1-0.1 +- update to ghc-6.12.1-pre +- separate bcond options into enabled and disabled for clarity +- only enable shared for intel x86 archs (Lorenzo Villani) +- add quick build profile (Lorenzo Villani) +- remove package_debugging hack (use "make install-short") +- drop sed BR (Lorenzo Villani) +- put all build.mk config into one cat block (Lorenzo Villani) +- export CFLAGS to configure (Lorenzo Villani) +- add dynamic linking test to check section (thanks Lorenzo Villani) +- remove old ghc66 obsoletes +- subpackage huge ghc internals library (thanks Lorenzo Villani) + - BR ghc-rpm-macros >= 0.3.0 +- move html docs to docdir/ghc from html subdir (Lorenzo Villani) +- disable smp build for now: broken for 8 cpus at least + +* Wed Nov 18 2009 Jens Petersen <petersen@redhat.com> - 6.12.0.20091121-1 +- update to 6.12.1 rc2 +- build shared libs, yay! and package in standalone libs subpackage +- add bcond for manual and extralibs +- reenable ppc secondary arch +- don't provide ghc-haddock-* +- remove obsolete post requires policycoreutils +- add vanilla v to GhcLibWays when building without prof +- handle without hscolour +- can't smp make currently +- lots of filelist fixes for handling shared libs +- run ghc-pkg recache posttrans +- no need to install gen_contents_index by hand +- manpage is back + +* Thu Nov 12 2009 Bryan O'Sullivan <bos@serpentine.com> - 6.12.0.20091010-8 +- comprehensive attempts at packaging fixes + +* Thu Nov 12 2009 Bryan O'Sullivan <bos@serpentine.com> - 6.12.0.20091010-7 +- fix package.conf stuff + +* Thu Nov 12 2009 Bryan O'Sullivan <bos@serpentine.com> - 6.12.0.20091010-6 +- give up trying to install man pages + +* Thu Nov 12 2009 Bryan O'Sullivan <bos@serpentine.com> - 6.12.0.20091010-5 +- try to install man pages + +* Thu Nov 12 2009 Bryan O'Sullivan <bos@serpentine.com> - 6.12.0.20091010-3 +- fix %check + +* Sun Oct 11 2009 Bryan O'Sullivan <bos@serpentine.com> - 6.12.0.20091010-2 +- disable ppc for now (seems unsupported) +- buildreq ncurses-devel + +* Sun Oct 11 2009 Bryan O'Sullivan <bos@serpentine.com> - 6.12.0.20091010-1 +- Update to 6.12 RC 1 + +* Thu Oct 1 2009 Jens Petersen <petersen@redhat.com> +- selinux file context no longer needed in post script +- (for ghc-6.12-shared) drop ld.so.conf.d files + +* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.10.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Jul 21 2009 Bryan O'Sullivan <bos@serpentine.com> - 6.10.4-1 +- update to 6.10.4 + +* Sat May 30 2009 Jens Petersen <petersen@redhat.com> - 6.10.3-3 +- add haddock_version and use it to obsolete haddock and ghc-haddock-* + +* Fri May 22 2009 Jens Petersen <petersen@redhat.com> - 6.10.3-2 +- update haddock provides and obsoletes +- drop ghc-mk-pkg-install-inplace.patch: no longer needed with new 6.11 buildsys +- add bcond for extralibs +- rename doc bcond to manual + +* Wed May 13 2009 Jens Petersen <petersen@redhat.com> - 6.10.3-1 +- update to 6.10.3 +- haskline replaces editline, so it is no longer needed to build +- macros.ghc moved to ghc-rpm-macros package +- fix handling of hscolor files in filelist generation + +* Tue Apr 28 2009 Jens Petersen <petersen@redhat.com> - 6.10.2-4 +- add experimental bcond hscolour +- add experimental support for building shared libraries (for ghc-6.11) + - add libs subpackage for shared libraries + - create a ld.conf.d file for libghc*.so + - BR libffi-devel +- drop redundant setting of GhcLibWays in build.mk for no prof +- drop redundant setting of HADDOCK_DOCS +- simplify filelist names +- add a check section based on tests from debian's package +- be more careful about doc files in filelist + +* Fri Apr 24 2009 Jens Petersen <petersen@redhat.com> - 6.10.2-3 +- define ghc_version in macros.ghc in place of ghcrequires +- drop ghc-requires script for now + +* Sun Apr 19 2009 Jens Petersen <petersen@redhat.com> - 6.10.2-2 +- add ghc-requires rpm script to generate ghc version dependencies + (thanks to Till Maas) +- update macros.ghc: + - add %%ghcrequires to call above script + - pkg_libdir and pkg_docdir obsoleted in packages and replaced + by ghcpkgdir and ghcdocdir inside macros.ghc + - make filelist also for docs + +* Wed Apr 08 2009 Bryan O'Sullivan <bos@serpentine.com> - 6.10.2-1 +- Update to 6.10.2 + +* Fri Feb 27 2009 Jens Petersen <petersen@redhat.com> - 6.10.1-13 +- ok let's stick with ExclusiveArch for brevity + +* Fri Feb 27 2009 Jens Petersen <petersen@redhat.com> - 6.10.1-12 +- drop ghc_archs since it breaks koji +- fix missing -devel in ghc_gen_filelists +- change from ExclusiveArch to ExcludeArch ppc64 since alpha was bootstrapped + by oliver + +* Wed Feb 25 2009 Jens Petersen <petersen@redhat.com> - 6.10.1-11 +- use %%ix86 for change from i386 to i586 in rawhide +- add ghc_archs macro in macros.ghc for other packages +- obsolete haddock09 +- use %%global instead of %%define +- use bcond for doc and prof +- rename ghc_gen_filelists lib filelist to -devel.files + +* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.10.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Feb 13 2009 Jens Petersen <petersen@redhat.com> - 6.10.1-9 +- require and buildrequire libedit-devel > 2.11-2 +- protect ghc_register_pkg and ghc_unregister_pkg + +* Fri Jan 23 2009 Jens Petersen <petersen@redhat.com> - 6.10.1-8 +- fix to libedit means can drop ncurses-devel BR workaround (#481252) + +* Mon Jan 19 2009 Jens Petersen <petersen@redhat.com> - 6.10.1-7 +- buildrequire ncurses-devel to fix build of missing editline package needed + for ghci line-editing (#478466) +- move spec templates to cabal2spec package for easy updating +- provide correct haddock version + +* Mon Dec 1 2008 Jens Petersen <petersen@redhat.com> - 6.10.1-6 +- update macros.ghc to latest proposed revised packaging guidelines: + - use runghc + - drop trivial cabal_build and cabal_haddock macros + - ghc_register_pkg and ghc_unregister_pkg replace ghc_preinst_script, + ghc_postinst_script, ghc_preun_script, and ghc_postun_script +- library templates prof subpackage requires main library again +- make cabal2spec work on .cabal files too, and + read and check name and version directly from .cabal file +- ghc-prof does not need to own libraries dirs owned by main package + +* Tue Nov 25 2008 Jens Petersen <petersen@redhat.com> - 6.10.1-5 +- add cabal2spec and template files for easy cabal hackage packaging +- simplify script macros: make ghc_preinst_script and ghc_postun_script no-ops + and ghc_preun_script only unregister for uninstall + +* Tue Nov 11 2008 Jens Petersen <petersen@redhat.com> - 6.10.1-4 +- fix broken urls to haddock docs created by gen_contents_index script +- avoid haddock errors when upgrading by making doc post script posttrans + +* Wed Nov 05 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.10.1-3 +- libraries/prologue.txt should not have been ghosted + +* Tue Nov 04 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.10.1-2 +- Fix a minor packaging glitch + +* Tue Nov 04 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.10.1-1 +- Update to 6.10.1 + +* Thu Oct 23 2008 Jens Petersen <petersen@redhat.com> - 6.10.0.20081007-9 +- remove redundant --haddockdir from cabal_configure +- actually ghc-pkg no longer seems to create package.conf.old backups +- include LICENSE in doc + +* Thu Oct 23 2008 Jens Petersen <petersen@redhat.com> - 6.10.0.20081007-8 +- need to create ghost package.conf.old for ghc-6.10 + +* Thu Oct 23 2008 Jens Petersen <petersen@redhat.com> - 6.10.0.20081007-7 +- use gen_contents_index to re-index haddock +- add %%pkg_docdir to cabal_configure +- requires(post) ghc for haddock for doc +- improve doc file lists +- no longer need to create ghost package.conf.old +- remove or rename alternatives files more consistently + +* Tue Oct 14 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.10.0.20081007-6 +- Update macros to install html and haddock bits in the right places + +* Tue Oct 14 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.10.0.20081007-5 +- Don't use a macro to update the docs for the main doc package + +* Tue Oct 14 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.10.0.20081007-4 +- Add ghc_haddock_reindex macro +- Generate haddock index after installing ghc-doc package + +* Mon Oct 13 2008 Jens Petersen <petersen@redhat.com> - 6.10.0.20081007-3 +- provide haddock = 2.2.2 +- add selinux file context for unconfined_execmem following darcs package +- post requires policycoreutils + +* Sun Oct 12 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.10.0.20081007-2.fc10 +- Use libedit in preference to readline, for BSD license consistency +- With haddock bundled now, obsolete standalone versions (but not haddock09) +- Drop obsolete freeglut-devel, openal-devel, and haddock09 dependencies + +* Sun Oct 12 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.10.0.20081007-1.fc10 +- Update to 6.10.1 release candidate 1 + +* Wed Oct 1 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.10.0.20080921-1.fc10 +- Drop unneeded haddock patch +- Rename hsc2hs to hsc2hs-ghc so the alternatives symlink to it will work + +* Wed Sep 24 2008 Jens Petersen <petersen@redhat.com> - 6.8.3-5 +- bring back including haddock-generated lib docs, now under docdir/ghc +- fix macros.ghc filepath (#460304) +- spec file cleanups: +- fix the source urls back +- drop requires chkconfig +- do not override __spec_install_post +- setup docs building in build.mk +- no longer need to remove network/include/Typeable.h +- install binaries under libdir not libexec +- remove hsc2hs and runhaskell binaries since they are alternatives + +* Wed Sep 17 2008 Jens Petersen <petersen@redhat.com> - 6.8.3-4 +- add macros.ghc for new Haskell Packaging Guidelines (#460304) + +* Wed Jun 18 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.8.3-3 +- Add symlinks from _libdir, where ghc looks, to _libexecdir +- Patch libraries/gen_contents_index to use haddock-0.9 + +* Wed Jun 18 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.8.3-2 +- Remove unnecessary dependency on alex + +* Wed Jun 18 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.8.3-1 +- Upgrade to 6.8.3 +- Drop the ghc682-style naming scheme, obsolete those packages +- Manually strip binaries + +* Tue Apr 8 2008 Jens Petersen <petersen@redhat.com> - 6.8.2-10 +- another rebuild attempt + +* Thu Feb 14 2008 Jens Petersen <petersen@redhat.com> - 6.8.2-9 +- remove unrecognized --docdir and --htmldir from configure +- drop old buildrequires on libX11-devel and libXt-devel +- rebuild with gcc43 + +* Sun Jan 06 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.8.2-7 +- More attempts to fix docdir + +* Sun Jan 06 2008 Bryan O'Sullivan <bos@serpentine.com> - 6.8.2-6 +- Fix docdir + +* Wed Dec 12 2007 Bryan O'Sullivan <bos@serpentine.com> - 6.8.2-1 +- Update to 6.8.2 + +* Fri Nov 23 2007 Bryan O'Sullivan <bos@serpentine.com> - 6.8.1-2 +- Exclude alpha + +* Thu Nov 8 2007 Bryan O'Sullivan <bos@serpentine.com> - 6.8.1-2 +- Drop bit-rotted attempts at making package relocatable + +* Sun Nov 4 2007 Michel Salim <michel.sylvan@gmail.com> - 6.8.1-1 +- Update to 6.8.1 + +* Sat Sep 29 2007 Bryan O'Sullivan <bos@serpentine.com> - 6.8.0.20070928-2 +- add happy to BuildRequires + +* Sat Sep 29 2007 Bryan O'Sullivan <bos@serpentine.com> - 6.8.0.20070928-1 +- prepare for GHC 6.8.1 by building a release candidate snapshot + +* Thu May 10 2007 Bryan O'Sullivan <bos@serpentine.com> - 6.6.1-3 +- install man page for ghc + +* Thu May 10 2007 Bryan O'Sullivan <bos@serpentine.com> - 6.6.1-2 +- exclude ppc64 for now, due to lack of time to bootstrap + +* Wed May 9 2007 Bryan O'Sullivan <bos@serpentine.com> - 6.6.1-1 +- update to 6.6.1 release + +* Mon Jan 22 2007 Jens Petersen <petersen@redhat.com> - 6.6-2 +- remove truncated duplicate Typeable.h header in network package + (Bryan O'Sullivan, #222865) + +* Fri Nov 3 2006 Jens Petersen <petersen@redhat.com> - 6.6-1 +- update to 6.6 release +- buildrequire haddock >= 0.8 +- fix summary of ghcver package (Michel Salim, #209574) + +* Thu Sep 28 2006 Jens Petersen <petersen@redhat.com> - 6.4.2-4 +- turn on docs generation again + +* Mon Sep 25 2006 Jens Petersen <petersen@redhat.com> - 6.4.2-3.fc6 +- ghost package.conf.old (Gérard Milmeister) +- set unconfined_execmem_exec_t context on executables with ghc rts (#195821) +- turn off building docs until haddock is back + +* Sat Apr 29 2006 Jens Petersen <petersen@redhat.com> - 6.4.2-2.fc6 +- buildrequire libXt-devel so that the X11 package and deps get built + (Garrett Mitchener, #190201) + +* Thu Apr 20 2006 Jens Petersen <petersen@redhat.com> - 6.4.2-1.fc6 +- update to 6.4.2 release + +* Thu Mar 2 2006 Jens Petersen <petersen@redhat.com> - 6.4.1-3.fc5 +- buildrequire libX11-devel instead of xorg-x11-devel (Kevin Fenzi, #181024) +- make ghc-doc require ghc (Michel Salim, #180449) + +* Tue Oct 11 2005 Jens Petersen <petersen@redhat.com> - 6.4.1-2.fc5 +- turn on build_doc since haddock is now in Extras +- no longer specify ghc version to build with (Ville Skyttä, #170176) + +* Tue Sep 20 2005 Jens Petersen <petersen@redhat.com> - 6.4.1-1.fc5 +- 6.4.1 release + - the following patches are now upstream: ghc-6.4-powerpc.patch, + rts-GCCompact.h-x86_64.patch, ghc-6.4-dsforeign-x86_64-1097471.patch, + ghc-6.4-rts-adjustor-x86_64-1097471.patch + - builds with gcc4 so drop %%_with_gcc32 + - x86_64 build restrictions (no ghci and split objects) no longer apply + +* Tue May 31 2005 Jens Petersen <petersen@redhat.com> +- add %%dist to release + +* Thu May 12 2005 Jens Petersen <petersen@redhat.com> - 6.4-8 +- initial import into Fedora Extras + +* Thu May 12 2005 Jens Petersen <petersen@haskell.org> +- add build_prof and build_doc switches for -doc and -prof subpackages +- add _with_gcc32 switch since ghc-6.4 doesn't build with gcc-4.0 + +* Wed May 11 2005 Jens Petersen <petersen@haskell.org> - 6.4-7 +- make package relocatable (ghc#1084122) + - add post install scripts to replace prefix in driver scripts +- buildrequire libxslt and docbook-style-xsl instead of docbook-utils and flex + +* Fri May 6 2005 Jens Petersen <petersen@haskell.org> - 6.4-6 +- add ghc-6.4-dsforeign-x86_64-1097471.patch and + ghc-6.4-rts-adjustor-x86_64-1097471.patch from trunk to hopefully fix + ffi support on x86_64 (Simon Marlow, ghc#1097471) +- use XMLDocWays instead of SGMLDocWays to build documentation fully + +* Mon May 2 2005 Jens Petersen <petersen@haskell.org> - 6.4-5 +- add rts-GCCompact.h-x86_64.patch to fix GC issue on x86_64 (Simon Marlow) + +* Thu Mar 17 2005 Jens Petersen <petersen@haskell.org> - 6.4-4 +- add ghc-6.4-powerpc.patch (Ryan Lortie) +- disable building interpreter rather than install and delete on x86_64 + +* Wed Mar 16 2005 Jens Petersen <petersen@haskell.org> - 6.4-3 +- make ghc require ghcver of same ver-rel +- on x86_64 remove ghci for now since it doesn't work and all .o files + +* Tue Mar 15 2005 Jens Petersen <petersen@haskell.org> - 6.4-2 +- ghc requires ghcver (Amanda Clare) + +* Sat Mar 12 2005 Jens Petersen <petersen@haskell.org> - 6.4-1 +- 6.4 release + - x86_64 build no longer unregisterised +- use sed instead of perl to tidy filelists +- buildrequire ghc64 instead of ghc-6.4 +- no epoch for ghc64-prof's ghc64 requirement +- install docs directly in docdir + +* Fri Jan 21 2005 Jens Petersen <petersen@haskell.org> - 6.2.2-2 +- add x86_64 port + - build unregistered and without splitobjs + - specify libdir to configure and install +- rename ghc-prof to ghcXYZ-prof, which obsoletes ghc-prof + +* Mon Dec 6 2004 Jens Petersen <petersen@haskell.org> - 6.2.2-1 +- move ghc requires to ghcXYZ + +* Wed Nov 24 2004 Jens Petersen <petersen@haskell.org> - 6.2.2-0.fdr.1 +- ghc622 + - provide ghc = %%version +- require gcc, gmp-devel and readline-devel + +* Fri Oct 15 2004 Gerard Milmeister <gemi@bluewin.ch> - 6.2.2-0.fdr.1 +- New Version 6.2.2 + +* Mon Mar 22 2004 Gerard Milmeister <gemi@bluewin.ch> - 6.2.1-0.fdr.1 +- New Version 6.2.1 + +* Tue Dec 16 2003 Gerard Milmeister <gemi@bluewin.ch> - 6.2-0.fdr.1 +- New Version 6.2 + +* Tue Dec 16 2003 Gerard Milmeister <gemi@bluewin.ch> - 6.0.1-0.fdr.3 +- A few minor specfile tweaks + +* Mon Dec 15 2003 Gerard Milmeister <gemi@bluewin.ch> - 6.0.1-0.fdr.2 +- Different file list generation + +* Mon Oct 20 2003 Gerard Milmeister <gemi@bluewin.ch> - 6.0.1-0.fdr.1 +- First Fedora release +- Added generated html docs, so that haddock is not needed + +* Wed Sep 26 2001 Manuel Chakravarty +- small changes for 5.04 + +* Wed Sep 26 2001 Manuel Chakravarty +- split documentation off into a separate package +- adapt to new docbook setup in RH7.1 + +* Mon Apr 16 2001 Manuel Chakravarty +- revised for 5.00 +- also runs autoconf automagically if no ./configure found + +* Thu Jun 22 2000 Sven Panne +- removed explicit usage of hslibs/docs, it belongs to ghc/docs/set + +* Sun Apr 23 2000 Manuel Chakravarty +- revised for ghc 4.07; added suggestions from Pixel <pixel@mandrakesoft.com> +- added profiling package + +* Tue Dec 7 1999 Manuel Chakravarty +- version for use from CVS + +* Thu Sep 16 1999 Manuel Chakravarty +- modified for GHC 4.04, patchlevel 1 (no more 62 tuple stuff); minimises use + of patch files - instead emits a build.mk on-the-fly + +* Sat Jul 31 1999 Manuel Chakravarty +- modified for GHC 4.04 + +* Wed Jun 30 1999 Manuel Chakravarty +- some more improvements from vbzoli + +* Fri Feb 26 1999 Manuel Chakravarty +- modified for GHC 4.02 + +* Thu Dec 24 1998 Zoltan Vorosbaranyi +- added BuildRoot +- files located in /usr/local/bin, /usr/local/lib moved to /usr/bin, /usr/lib + +* Tue Jul 28 1998 Manuel Chakravarty +- original version |