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.
This commit is contained in:
parent
0361937ee3
commit
6063b3df3f
3 changed files with 8 additions and 3 deletions
|
@ -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
|
||||
|
||||
|
|
2
Test.hs
2
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
|
||||
|
||||
|
|
|
@ -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).
|
||||
|
|
Loading…
Reference in a new issue