aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2018-03-04 19:48:07 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2018-03-04 19:48:07 -0400
commit1c60e38edfdb01631ce0108872cbf9197c1bbdc6 (patch)
treec7b14bb9c875e4adb84998ec2ad0d20095d9d95e
parent5811a52b2b9356e12a5e6957132098df834ba015 (diff)
Dial back optimisation when building on arm
Prevent ghc and llc from running out of memory when optimising some files. Sean Whitton reported that doing this only in Test.hs was insufficient, the build still OOMed by the time it got to Test.hs. He had earlier found the build worked when these options are applied globally. See https://ghc.haskell.org/trac/ghc/ticket/14821 for why it needs -O1; once that's fixed it may suffice to use "GHC-Options: -O2 -optlo-O2", although it may also be that the -O1 prevents ghc from using/leaking as much memory. os(arm) should match armel, armhf, armeb, and arm. It probably also matches arm64, somewhat unfortunately since arm64 systems probably tend to have more memory. See list of arches in https://hackage.haskell.org/package/Cabal-1.22.2.0/docs/src/Distribution-System.html This commit was sponsored by Henrik Riomar on Patreon.
-rw-r--r--CHANGELOG2
-rw-r--r--Test.hs2
-rw-r--r--git-annex.cabal7
3 files changed, 8 insertions, 3 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 83692a0e9..e78ff93be 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,8 @@
git-annex (6.20180228) UNRELEASED; urgency=medium
* Support exporttree=yes for rsync special remotes.
+ * Dial back optimisation when building on arm, which prevents
+ ghc and llc from running out of memory when optimising some files.
-- Joey Hess <id@joeyh.name> Wed, 28 Feb 2018 11:53:03 -0400
diff --git a/Test.hs b/Test.hs
index 12999b48f..b0f418656 100644
--- a/Test.hs
+++ b/Test.hs
@@ -6,8 +6,6 @@
-}
{-# LANGUAGE CPP #-}
-{- Avoid optimising this file much, since it's large and does not need it._-}
-{-# OPTIONS_GHC -O1 -optlo-O2 #-}
module Test where
diff --git a/git-annex.cabal b/git-annex.cabal
index 2b17f6729..994e01570 100644
--- a/git-annex.cabal
+++ b/git-annex.cabal
@@ -377,7 +377,12 @@ Executable git-annex
-- Fully optimize for production.
if flag(Production)
- GHC-Options: -O2
+ -- Lower memory systems can run out of memory with -O2, so
+ -- optimise slightly less.
+ if arch(arm)
+ GHC-Options: -O1 -optlo-O2
+ else
+ GHC-Options: -O2
-- Avoid linking with unused dynamic libaries.
-- (Only tested on Linux).