diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for rounded-hw
 
+## 0.4.0.1 (2024-12-15)
+
+* Support GHC 9.10/9.12 and Cabal 3.14.0.
+
 ## 0.4.0 (2023-11-18)
 
 * Disable `x87-long-double` flag by default.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright ARATA Mizuki (c) 2020
+Copyright ARATA Mizuki (c) 2020-2024
 
 All rights reserved.
 
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 import           Distribution.Simple
 import           Distribution.Simple.Configure (configure)
 import           Distribution.Simple.PackageIndex (allPackages)
@@ -6,6 +7,9 @@
 import           Distribution.Types.Library (Library (libBuildInfo))
 import           Distribution.Types.LocalBuildInfo (LocalBuildInfo (installedPkgs, localPkgDescr))
 import           Distribution.Types.PackageDescription (PackageDescription (library))
+#if MIN_VERSION_Cabal(3, 14, 0)
+import           Distribution.Utils.Path (makeSymbolicPath)
+#endif
 
 {-
 We want to access "ghcconfig.h" from assembly source file (.S),
@@ -21,7 +25,11 @@
       let extraIncludeDirs :: [String]
           extraIncludeDirs = concatMap InstalledPackageInfo.includeDirs (allPackages $ installedPkgs localBuildInfo)
           updateBuildInfo :: BuildInfo -> BuildInfo
+#if MIN_VERSION_Cabal(3, 14, 0)
+          updateBuildInfo bi = bi { includeDirs = includeDirs bi ++ map makeSymbolicPath extraIncludeDirs }
+#else
           updateBuildInfo bi = bi { includeDirs = includeDirs bi ++ extraIncludeDirs }
+#endif
           updateLibrary :: Library -> Library
           updateLibrary lib = lib { libBuildInfo = updateBuildInfo (libBuildInfo lib) }
           updatePkgDescr :: PackageDescription -> PackageDescription
diff --git a/rounded-hw.cabal b/rounded-hw.cabal
--- a/rounded-hw.cabal
+++ b/rounded-hw.cabal
@@ -2,7 +2,7 @@
 -- asm-sources is Cabal 3.0 feature
 
 name:           rounded-hw
-version:        0.4.0
+version:        0.4.0.1
 synopsis:       Directed rounding for built-in floating types
 description:    Please see the README on GitHub at <https://github.com/minoki/haskell-floating-point/tree/master/rounded-hw#readme>
 category:       Numeric, Math
@@ -10,7 +10,7 @@
 bug-reports:    https://github.com/minoki/haskell-floating-point/issues
 author:         ARATA Mizuki
 maintainer:     minorinoki@gmail.com
-copyright:      2020-2023 ARATA Mizuki
+copyright:      2020-2024 ARATA Mizuki
 license:        BSD-3-Clause
 license-file:   LICENSE
 build-type:     Custom
@@ -32,8 +32,8 @@
 -- Custom setup is required to allow assembly sources to #include "ghcconfig.h"
 custom-setup
   setup-depends:
-      Cabal >=3.0 && <3.11
-    , base >=4.12 && <4.20
+      Cabal >=3.0 && <3.17
+    , base >=4.12 && <4.22
 
 flag pure-hs
   description: Disable FFI
@@ -68,7 +68,7 @@
 common deps
   build-depends:
       array >=0.5.2.0 && <0.6
-    , base >=4.12 && <4.20
+    , base >=4.12 && <4.22
     , deepseq >=1.4.4.0 && <1.6
     , fp-ieee ==0.1.*
     , primitive >=0.6.1.1 && <0.10
@@ -167,7 +167,7 @@
   build-depends:
       doctest ^>=0.22.2
   default-language: Haskell2010
-  if impl(ghc >= 9.8)
+  if impl(ghc >= 9.12)
     buildable: False
 
 test-suite rounded-hw-test
@@ -187,7 +187,7 @@
       test
   ghc-options: -threaded -rtsopts -with-rtsopts=-N
   build-depends:
-      QuickCheck ^>=2.14.3
+      QuickCheck >=2.14.3 && <2.16
     , hspec ^>=2.11.7
     , random ^>=1.2.1.1
     , rounded-hw
