diff --git a/compiler/ghc.cabal.in b/compiler/ghc.cabal.in
index 82fd079b47d5547b0298e6180c6090f1d901dd5b..2e026a8ea53cea05f94963876c990a811b68c77a 100644
--- a/compiler/ghc.cabal.in
+++ b/compiler/ghc.cabal.in
@@ -116,7 +116,7 @@ Library
                    time       >= 1.4 && < 1.13,
                    containers >= 0.6.2.1 && < 0.8,
                    array      >= 0.1 && < 0.6,
-                   filepath   >= 1   && < 1.5,
+                   filepath   >= 1   && < 1.6,
                    template-haskell == 2.21.*,
                    hpc        >= 0.6 && < 0.8,
                    transformers >= 0.5 && < 0.7,
@@ -128,7 +128,7 @@ Library
                    ghci == @ProjectVersionMunged@
 
     if os(windows)
-        Build-Depends: Win32  >= 2.3 && < 2.14
+        Build-Depends: Win32  >= 2.3 && < 2.15
     else
         Build-Depends: unix   >= 2.7 && < 2.9
 
diff --git a/ghc/ghc-bin.cabal.in b/ghc/ghc-bin.cabal.in
index 81d23639bf6bc66c19fea2295675a77ef0cd04e4..1878a839bae3f02c499e3a1a14fa6d90459c7128 100644
--- a/ghc/ghc-bin.cabal.in
+++ b/ghc/ghc-bin.cabal.in
@@ -36,14 +36,14 @@ Executable ghc
                    bytestring >= 0.9 && < 0.13,
                    directory  >= 1   && < 1.4,
                    process    >= 1   && < 1.7,
-                   filepath   >= 1   && < 1.5,
+                   filepath   >= 1   && < 1.6,
                    containers >= 0.5 && < 0.8,
                    transformers >= 0.5 && < 0.7,
                    ghc-boot      == @ProjectVersionMunged@,
                    ghc           == @ProjectVersionMunged@
 
     if os(windows)
-        Build-Depends: Win32  >= 2.3 && < 2.14
+        Build-Depends: Win32  >= 2.3 && < 2.15
     else
         Build-Depends: unix   >= 2.7 && < 2.9
 
diff --git a/hadrian/src/Rules/ToolArgs.hs b/hadrian/src/Rules/ToolArgs.hs
index f7a6f12fb5805c24f115a6e8a631b7a98f4c63b8..52f2e1866b0886a66d8997cfdbf4472e96e08d0d 100644
--- a/hadrian/src/Rules/ToolArgs.hs
+++ b/hadrian/src/Rules/ToolArgs.hs
@@ -154,6 +154,7 @@ toolTargets = [ binary
               , process
               , exceptions
               , filepath
+              , osString
               -- , ghc     -- # depends on ghc library
               -- , runGhc  -- # depends on ghc library
               , ghcBoot
diff --git a/hadrian/src/Settings/Packages.hs b/hadrian/src/Settings/Packages.hs
index f80d3c5e1499cceb2fa5548c490ed359f6e43213..5346545d937c39b92181bc4072ad42286b804e01 100644
--- a/hadrian/src/Settings/Packages.hs
+++ b/hadrian/src/Settings/Packages.hs
@@ -157,6 +157,10 @@ packageArgs = do
 
           ]
 
+        , package unix ? builder (Cabal Flags) ? arg "+os-string"
+        , package directory ? builder (Cabal Flags) ? arg "+os-string"
+        , package win32 ? builder (Cabal Flags) ? arg "+os-string"
+
         --------------------------------- iserv --------------------------------
         -- Add -Wl,--export-dynamic enables GHCi to load dynamic objects that
         -- refer to the RTS.  This is harmless if you don't use it (adds a bit
diff --git a/libraries/Cabal b/libraries/Cabal
index ae3c40a20bf98870488e3b40fc4495009b026e33..ec71ed5b44d7a35e3b421c0d3f1f9f52cc434992 160000
--- a/libraries/Cabal
+++ b/libraries/Cabal
@@ -1 +1 @@
-Subproject commit ae3c40a20bf98870488e3b40fc4495009b026e33
+Subproject commit ec71ed5b44d7a35e3b421c0d3f1f9f52cc434992
diff --git a/libraries/Win32 b/libraries/Win32
index efab7f1146da9741dc54fb35476d4aaabeff8d6d..350ebd43f9a8d9e1ca767b0000f95bdfb42a5471 160000
--- a/libraries/Win32
+++ b/libraries/Win32
@@ -1 +1 @@
-Subproject commit efab7f1146da9741dc54fb35476d4aaabeff8d6d
+Subproject commit 350ebd43f9a8d9e1ca767b0000f95bdfb42a5471
diff --git a/libraries/directory b/libraries/directory
index a0c9361817db13917df7777f669a97c4d787f44e..fc38cbfc5c7c4b631ed89d6b41bbe00ee96c8b21 160000
--- a/libraries/directory
+++ b/libraries/directory
@@ -1 +1 @@
-Subproject commit a0c9361817db13917df7777f669a97c4d787f44e
+Subproject commit fc38cbfc5c7c4b631ed89d6b41bbe00ee96c8b21
diff --git a/libraries/filepath b/libraries/filepath
index cdb5171f7774569b1a8028a78392cfa79f732b5c..b55465e3d174ccd63914e7146079435503204187 160000
--- a/libraries/filepath
+++ b/libraries/filepath
@@ -1 +1 @@
-Subproject commit cdb5171f7774569b1a8028a78392cfa79f732b5c
+Subproject commit b55465e3d174ccd63914e7146079435503204187
diff --git a/libraries/ghc-boot/ghc-boot.cabal.in b/libraries/ghc-boot/ghc-boot.cabal.in
index 6beac8256366593d7d504a32dc154dad38bc8b21..a0f250574ae4c282c34ea199cad12e3e570f0687 100644
--- a/libraries/ghc-boot/ghc-boot.cabal.in
+++ b/libraries/ghc-boot/ghc-boot.cabal.in
@@ -78,7 +78,7 @@ Library
                    bytestring >= 0.10 && < 0.13,
                    containers >= 0.5 && < 0.8,
                    directory  >= 1.2 && < 1.4,
-                   filepath   >= 1.3 && < 1.5,
+                   filepath   >= 1.3 && < 1.6,
                    deepseq    >= 1.4 && < 1.6,
                    ghc-platform >= 0.1,
                    ghc-boot-th == @ProjectVersionMunged@
diff --git a/libraries/ghci/ghci.cabal.in b/libraries/ghci/ghci.cabal.in
index 67293513d932f2d47b31a79fe46a936356da7914..f8f734014f6224a6b56de3ef03e4e37b4f8d9250 100644
--- a/libraries/ghci/ghci.cabal.in
+++ b/libraries/ghci/ghci.cabal.in
@@ -81,7 +81,7 @@ library
         bytestring       >= 0.10 && < 0.13,
         containers       >= 0.5 && < 0.8,
         deepseq          >= 1.4 && < 1.6,
-        filepath         == 1.4.*,
+        filepath         >= 1.4 && < 1.6,
         ghc-boot         == @ProjectVersionMunged@,
         ghc-heap         == @ProjectVersionMunged@,
         template-haskell == 2.21.*,
diff --git a/libraries/os-string b/libraries/os-string
index 4046442785ebbd66cc7f37a5abf3c36d29c74102..fb2711ba1f43fd609de0e231e161025ee8ed3216 160000
--- a/libraries/os-string
+++ b/libraries/os-string
@@ -1 +1 @@
-Subproject commit 4046442785ebbd66cc7f37a5abf3c36d29c74102
+Subproject commit fb2711ba1f43fd609de0e231e161025ee8ed3216
diff --git a/libraries/process b/libraries/process
index 5ba847afd894b560b7a7c2569c99bb9f4c8cb282..dfdae0a7036b42d352a515214e6116424dd08ec9 160000
--- a/libraries/process
+++ b/libraries/process
@@ -1 +1 @@
-Subproject commit 5ba847afd894b560b7a7c2569c99bb9f4c8cb282
+Subproject commit dfdae0a7036b42d352a515214e6116424dd08ec9
diff --git a/libraries/semaphore-compat b/libraries/semaphore-compat
index c8fc7b1757b4eecbd10239038fbc6602340105b1..8cd32a85388c7b51786a7aedd15404e2e4896f1b 160000
--- a/libraries/semaphore-compat
+++ b/libraries/semaphore-compat
@@ -1 +1 @@
-Subproject commit c8fc7b1757b4eecbd10239038fbc6602340105b1
+Subproject commit 8cd32a85388c7b51786a7aedd15404e2e4896f1b
diff --git a/libraries/unix b/libraries/unix
index 0b3dbc9901fdf2d752c4ee7a7cee7b1ed20e76bd..00bf6dd7a4a78f1d9d4fead303dc727e1055ffbd 160000
--- a/libraries/unix
+++ b/libraries/unix
@@ -1 +1 @@
-Subproject commit 0b3dbc9901fdf2d752c4ee7a7cee7b1ed20e76bd
+Subproject commit 00bf6dd7a4a78f1d9d4fead303dc727e1055ffbd