diff options
author | Erik de Castro Lopo <erikd@mega-nerd.com> | 2019-06-22 10:13:51 +1000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-06-24 01:11:46 -0400 |
commit | 71aca77c780dad8496054a06a7fe65704a13a742 (patch) | |
tree | 9c809e4619fecd7662b56cc9ce07720ea669c12c /compiler/main/SysTools/Tasks.hs | |
parent | 9bbcc3be51180dcefde0c89daf8ad6f69c680b40 (diff) | |
download | haskell-71aca77c780dad8496054a06a7fe65704a13a742.tar.gz |
Fixes for LLVM 7
LLVM version numberinf changed recently. Previously, releases were numbered
4.0, 5.0 and 6.0 but with version 7, they dropped the redundant ".0".
Fix requires for Llvm detection and some code.
Diffstat (limited to 'compiler/main/SysTools/Tasks.hs')
-rw-r--r-- | compiler/main/SysTools/Tasks.hs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/compiler/main/SysTools/Tasks.hs b/compiler/main/SysTools/Tasks.hs index 10e1102304..0310bd8eb2 100644 --- a/compiler/main/SysTools/Tasks.hs +++ b/compiler/main/SysTools/Tasks.hs @@ -23,7 +23,7 @@ import System.IO import System.Process import GhcPrelude -import LlvmCodeGen.Base (llvmVersionStr, supportedLlvmVersion) +import LlvmCodeGen.Base (LlvmVersion (..), llvmVersionStr, supportedLlvmVersion) import SysTools.Process import SysTools.Info @@ -200,7 +200,7 @@ runClang dflags args = do ) -- | Figure out which version of LLVM we are running this session -figureLlvmVersion :: DynFlags -> IO (Maybe (Int, Int)) +figureLlvmVersion :: DynFlags -> IO (Maybe LlvmVersion) figureLlvmVersion dflags = do let (pgm,opts) = pgm_lc dflags args = filter notNull (map showOpt opts) @@ -222,8 +222,10 @@ figureLlvmVersion dflags = do vline <- dropWhile (not . isDigit) `fmap` hGetLine pout v <- case span (/= '.') vline of ("",_) -> fail "no digits!" - (x,y) -> return (read x - , read $ takeWhile isDigit $ drop 1 y) + (x,"") -> return $ LlvmVersion (read x) + (x,y) -> return $ LlvmVersionOld + (read x) + (read $ takeWhile isDigit $ drop 1 y) hClose pin hClose pout |