diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,25 +4,35 @@
 
 The format is based on [Keep a Changelog](http://keepachangelog.com/).
 
+## [0.8.0.3] - 2018-03-12
+### Fixed
+  * Build fix for Cabal-2.2 (ghc-8.4)
+
 ## [0.8.0.2] - 2018-01-05
+### Fixed
   * Fix profiling build
 
 ## [0.8.0.1] - 2017-11-15
-  * [#2]: Fix nvvm library path on windows
+### Fixed
+  * Fix nvvm library path on windows ([#2])
 
 ## [0.8.0.0] - 2017-08-24
+### Changed
   * Build setup improvements
 
 ## [0.7.5.2] - 2017-04-10
-  * Add support for c2hs < 0.26
+### Added
+  * Add support for older c2hs versions
 
 ## [0.7.5.1] - 2016-11-08
+### Added
   * Add support for Cabal-1.22
 
 ## [0.7.5.0] - 2016-10-08
   * First version. Released on an unsuspecting world.
 
 
+[0.8.0.3]:      https://github.com/tmcdonell/nvvm/compare/v0.8.0.2...v0.8.0.3
 [0.8.0.2]:      https://github.com/tmcdonell/nvvm/compare/v0.8.0.1...v0.8.0.2
 [0.8.0.1]:      https://github.com/tmcdonell/nvvm/compare/v0.8.0.0...v0.8.0.1
 [0.8.0.0]:      https://github.com/tmcdonell/nvvm/compare/v0.7.5.2...v0.8.0.0
diff --git a/Foreign/NVVM/Compile.chs b/Foreign/NVVM/Compile.chs
--- a/Foreign/NVVM/Compile.chs
+++ b/Foreign/NVVM/Compile.chs
@@ -144,7 +144,7 @@
 {-# INLINEABLE addModule #-}
 addModule
     :: Program          -- ^ NVVM program to add to
-    -> String           -- ^ Name of the module (defaults to "<unnamed>" if empty)
+    -> String           -- ^ Name of the module (defaults to \"@\<unnamed\>@\" if empty)
     -> ByteString       -- ^ NVVM IR module in either bitcode or textual representation
     -> IO ()
 addModule !prg !name !bs =
@@ -158,7 +158,7 @@
 {-# INLINEABLE addModuleFromPtr #-}
 addModuleFromPtr
     :: Program          -- ^ NVVM program to add to
-    -> String           -- ^ Name of the module (defaults to "<unnamed>" if empty)
+    -> String           -- ^ Name of the module (defaults to \"@\<unnamed\>@\" if empty)
     -> Int              -- ^ Number of bytes in the module
     -> Ptr Word8        -- ^ NVVM IR module in bitcode or textual representation
     -> IO ()
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,7 +1,10 @@
 Haskell FFI Bindings to NVVM
 ============================
 
-[![Build status](https://travis-ci.org/tmcdonell/nvvm.svg?branch=master)](https://travis-ci.org/tmcdonell/nvvm)
+[![Travis build status](https://img.shields.io/travis/tmcdonell/nvvm/master.svg?label=linux)](https://travis-ci.org/tmcdonell/nvvm)
+[![AppVeyor build status](https://img.shields.io/appveyor/ci/tmcdonell/nvvm/master.svg?label=windows)](https://ci.appveyor.com/project/tmcdonell/nvvm)
+[![Stackage LTS](https://stackage.org/package/nvvm/badge/lts)](https://stackage.org/lts/package/nvvm)
+[![Stackage Nightly](https://stackage.org/package/nvvm/badge/nightly)](https://stackage.org/nightly/package/nvvm)
 [![Hackage](https://img.shields.io/hackage/v/nvvm.svg)](https://hackage.haskell.org/package/nvvm)
 
 The NVVM library compiles [NVVM IR][nvvm-ir-spec] (a subset of LLVM IR) into PTX code which can
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -9,7 +9,6 @@
 #endif
 
 import Distribution.PackageDescription
-import Distribution.PackageDescription.Parse
 import Distribution.Simple
 import Distribution.Simple.BuildPaths
 import Distribution.Simple.Command
@@ -27,6 +26,11 @@
 import Distribution.PackageDescription.PrettyPrint
 import Distribution.Version
 #endif
+#if MIN_VERSION_Cabal(2,2,0)
+import Distribution.PackageDescription.Parsec
+#else
+import Distribution.PackageDescription.Parse
+#endif
 
 import Foreign.CUDA.Path
 import Control.Applicative
@@ -175,7 +179,7 @@
 updateLibraryRPATHs verbosity (Platform _ os) sharedLib extraLibDirs' =
   when (os == OSX) $ do
     exists <- doesFileExist sharedLib
-    unless exists $ die $ printf "Unexpected failure: library does not exist: %s" sharedLib
+    unless exists $ die' verbosity $ printf "Unexpected failure: library does not exist: %s" sharedLib
     --
     mint   <- findProgram verbosity "install_name_tool"
     case mint of
@@ -205,7 +209,7 @@
           notice verbosity $ printf "Provide a '%s' file to override this behaviour" customBuildInfoFilePath
           readHookedBuildInfo verbosity generatedBuldInfoFilePath
         else
-          die $ printf "Unexpected failure: neither the default '%s' nor custom '%s' exist" generatedBuldInfoFilePath customBuildInfoFilePath
+          die' verbosity $ printf "Unexpected failure: neither the default '%s' nor custom '%s' exist" generatedBuldInfoFilePath customBuildInfoFilePath
 
 
 -- Runs CUDA detection procedure and stores .buildinfo to a file.
@@ -308,7 +312,7 @@
         Nothing        -> warn verbosity $ say "Unknown ld.exe version"
         Just ldVersion -> do
           debug verbosity $ "Found ld.exe version: " ++ show ldVersion
-          when (ldVersion < [2,25,1]) $ die (windowsLinkerBugMsg ldPath)
+          when (ldVersion < [2,25,1]) $ die' verbosity (windowsLinkerBugMsg ldPath)
 validateLinker _ _ _ = return () -- The linker bug is present only on Win64 platform
 
 
@@ -411,7 +415,7 @@
       { platformIndependent = False
       , runPreProcessor     = \(inBaseDir, inRelativeFile)
                                (outBaseDir, outRelativeFile) verbosity ->
-          rawSystemProgramConf verbosity c2hsProgram (withPrograms lbi) . filter (not . null) $
+          runDbProgram verbosity c2hsProgram (withPrograms lbi) . filter (not . null) $
             maybe [] words (lookup "x-extra-c2hs-options" (customFieldsBI bi))
             ++ ["--include=" ++ outBaseDir]
             ++ ["--cppopts=" ++ opt | opt <- getCppOptions bi lbi]
@@ -449,5 +453,10 @@
 #if MIN_VERSION_Cabal(1,25,0)
 versionBranch :: Version -> [Int]
 versionBranch = versionNumbers
+#endif
+
+#if !MIN_VERSION_Cabal(2,0,0)
+die' :: Verbosity -> String -> IO a
+die' _ = die
 #endif
 
diff --git a/nvvm.cabal b/nvvm.cabal
--- a/nvvm.cabal
+++ b/nvvm.cabal
@@ -1,5 +1,5 @@
 name:                   nvvm
-version:                0.8.0.2
+version:                0.8.0.3
 synopsis:               FFI bindings to NVVM
 description:
   The NVVM library compiles NVVM IR (a subset of LLVM IR) into PTX code which
@@ -28,7 +28,7 @@
 copyright:              [2016] Trevor L. McDonell
 category:               Foreign
 build-type:             Custom
-cabal-version:          >= 1.22
+cabal-version:          >= 1.24
 
 extra-source-files:
     CHANGELOG.md
@@ -41,7 +41,7 @@
 custom-setup
   setup-depends:
       base              >= 4.6
-    , Cabal             >= 1.22
+    , Cabal             >= 1.24
     , cuda              >= 0.8
     , directory         >= 1.0
     , filepath          >= 1.0
@@ -83,7 +83,7 @@
 source-repository this
   type:                 git
   location:             https://github.com/tmcdonell/nvvm
-  tag:                  v0.8.0.2
+  tag:                  v0.8.0.3
 
 -- vim: nospell
 
