diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -9,12 +9,18 @@
 import System.Exit
 import System.IO (hFlush, stdout)
 
+#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,4,0)
+#define NORMALISE_ARGS (\_ _ -> id)
+#else
+#define NORMALISE_ARGS
+#endif
+
 main :: IO ()
 main = defaultMainWithHooks hk
  where
  hk = simpleUserHooks { buildHook = \pd lbi uh bf -> do
-                                        let ccProg = Program "gcc" undefined undefined undefined
-                                            hcProg = Program "ghc" undefined undefined undefined
+                                        let ccProg = Program "gcc" undefined undefined undefined NORMALISE_ARGS
+                                            hcProg = Program "ghc" undefined undefined undefined NORMALISE_ARGS
                                             mConf  = lookupProgram ccProg (withPrograms lbi)
                                             hcConf = lookupProgram hcProg (withPrograms lbi)
                                             err = error "Could not determine C compiler"
diff --git a/cipher-aes128.cabal b/cipher-aes128.cabal
--- a/cipher-aes128.cabal
+++ b/cipher-aes128.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                cipher-aes128
-version:             0.7.0.3
+version:             0.7.0.4
 synopsis:            AES and common modes using AES-NI when available.
 description:         Cipher-aes128 is an implementation of AES and common modes of operation.  It borrows Hanquez's C AES code (see 'cipher-aes') but
                      is unique due to including compile-time detection of
@@ -21,7 +21,7 @@
 -- build-type:          Simple
 -- ^^^ For HaLVM
 cabal-version:       >=1.10
-tested-with:         GHC==7.10.3
+tested-with:         GHC==7.4.2, GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.2
 
 extra-source-files:       ./cbits/*.h, ./cbits/*.c
                         , AUTHORS
@@ -34,6 +34,9 @@
     description: The HaLVM target
     default: False
 
+custom-setup
+  setup-depends: base >= 4.2 && <5, Cabal >= 1.10 && <2.5, process >=1.0
+
 library
   default-language:    Haskell2010
   exposed-modules:     Crypto.Cipher.AES128, Crypto.Cipher.AES128.Internal
@@ -76,6 +79,7 @@
   cc-options:          -mssse3 -maes -mpclmul
 
 Executable aes128_test
+  default-language:    Haskell2010
   if !flag(test)
     buildable: False
   main-is: Test/test.hs
