diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,9 @@
+## 0.1.5
+
+* Add Semigroup instance for FieldFlags
+* Fix some warnings
+* Drop testing under GHC 7.8 / lts-2
+
 ## 0.1.4
 
 * Expose mysql_thread_end() as `endThread`
diff --git a/Database/MySQL/Base/Types.hsc b/Database/MySQL/Base/Types.hsc
--- a/Database/MySQL/Base/Types.hsc
+++ b/Database/MySQL/Base/Types.hsc
@@ -54,6 +54,7 @@
 import Data.List (intercalate)
 import Data.Maybe (catMaybes)
 import Data.Monoid (Monoid(..))
+import Data.Semigroup (Semigroup(..))
 import Data.Typeable (Typeable)
 import Data.Word (Word, Word8)
 import Foreign.C.Types (CChar, CInt, CUInt, CULong)
@@ -171,10 +172,14 @@
 
 type FieldFlag = FieldFlags
 
+instance Semigroup FieldFlags where
+    (<>) (FieldFlags a) (FieldFlags b) = FieldFlags (a .|. b)
+    {-# INLINE (<>) #-}
+
 instance Monoid FieldFlags where
     mempty = FieldFlags 0
     {-# INLINE mempty #-}
-    mappend (FieldFlags a) (FieldFlags b) = FieldFlags (a .|. b)
+    mappend = (<>)
     {-# INLINE mappend #-}
 
 flagNotNull, flagPrimaryKey, flagUniqueKey, flagMultipleKey :: FieldFlag
@@ -229,6 +234,7 @@
     sizeOf _    = #{size MYSQL_FIELD}
     alignment _ = alignment (undefined :: Ptr CChar)
     peek = peekField
+    poke _ _ = return ()   -- Unused, but define it to avoid a warning
 
 type Seconds = Word
 
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -57,8 +57,13 @@
 
 mysqlBuildInfo :: LocalBuildInfo -> IO BuildInfo
 mysqlBuildInfo lbi = do
+#if MIN_VERSION_Cabal(2,0,0)
+  let mysqlConfig = fmap words . getDbProgramOutput normal
+                    mysqlConfigProgram (withPrograms lbi)
+#else
   let mysqlConfig = fmap words . rawSystemProgramStdoutConf normal
                     mysqlConfigProgram (withPrograms lbi)
+#endif
 
   include <- mysqlConfig ["--include"]
   libs <- mysqlConfig ["--libs"]
diff --git a/mysql.cabal b/mysql.cabal
--- a/mysql.cabal
+++ b/mysql.cabal
@@ -1,5 +1,5 @@
 name:           mysql
-version:        0.1.4
+version:        0.1.5
 homepage:       https://github.com/paul-rouse/mysql
 bug-reports:    https://github.com/paul-rouse/mysql/issues
 synopsis:       A low-level MySQL client library.
@@ -51,6 +51,9 @@
     base       < 5,
     bytestring >= 0.9 && < 1.0,
     containers
+  if !impl(ghc >= 8.0)
+    build-depends:
+      semigroups >= 0.11 && < 0.19
 
   ghc-options: -Wall
   if impl(ghc >= 6.8)
