From: Anders Kaseorg Date: Thu, 19 May 2016 07:18:02 +0000 (-0400) Subject: Get linker flags correctly from GHC ≥ 7.8 X-Git-Tag: archive/raspbian/8.0.2-9+rpi1~8 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a9117d703eb7d146c7b748993b0defebfdf31200;p=ghc.git Get linker flags correctly from GHC ≥ 7.8 GHC 7.8 renamed "Gcc Linker flags" to "C compiler link flags" and "Ld Linker flags" to "ld flags" (https://ghc.haskell.org/trac/ghc/ticket/4862). Without this corresponding fix in Cabal, the old-time package fails to compile on Ubuntu yakkety amd64, where the system GCC now defaults to -pie and GHC has $ ghc --info | grep -i pie ,("C compiler flags","-fno-PIE -fno-stack-protector") ,("C compiler link flags","-no-pie") ,("ld flags","-no-pie") Signed-off-by: Anders Kaseorg (cherry picked from commit c993a0c6660aa10d8c79ed0cc4961c59acfc91c8) Gbp-Pq: Name get-linker-flags-correctly --- diff --git a/libraries/Cabal/Cabal/Distribution/Simple/GHC/Internal.hs b/libraries/Cabal/Cabal/Distribution/Simple/GHC/Internal.hs index 53f7d8eb..d995d4c5 100644 --- a/libraries/Cabal/Cabal/Distribution/Simple/GHC/Internal.hs +++ b/libraries/Cabal/Cabal/Distribution/Simple/GHC/Internal.hs @@ -139,8 +139,10 @@ configureToolchain implInfo ghcProg ghcInfo = mbStripLocation = M.lookup "strip command" ghcInfo ccFlags = getFlags "C compiler flags" - gccLinkerFlags = getFlags "Gcc Linker flags" - ldLinkerFlags = getFlags "Ld Linker flags" + -- GHC 7.8 renamed "Gcc Linker flags" to "C compiler link flags" + -- and "Ld Linker flags" to "ld flags" (GHC #4862). + gccLinkerFlags = getFlags "Gcc Linker flags" ++ getFlags "C compiler link flags" + ldLinkerFlags = getFlags "Ld Linker flags" ++ getFlags "ld flags" -- It appears that GHC 7.6 and earlier encode the tokenized flags as a -- [String] in these settings whereas later versions just encode the flags as