diff --git a/mk/config.mk.in b/mk/config.mk.in
index 88f3b51600a21eae4370cb1cde5f56c90af41b33..2e920ca76efe2d38995ebdb3f88af939805b18b3 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -357,8 +357,9 @@ SplitObjs = $(if $(and $(filter YES,$(SupportsSplitObjs)),\
 # Set SplitSections=YES or NO in your build.mk to override the default.
 #
 # This is not supported on Darwin (where you can use subsections-via-symbols
-# instead) and Windows is not yet working. (See #11445 and related tickets.)
-OsSupportsSplitSections=$(if $(filter $(TargetOS_CPP),darwin),NO,YES)
+# instead) and Windows is disabled until we figure the linking performance
+# issues related to BFD out. (See #11445, #12913 and related tickets.)
+OsSupportsSplitSections=$(if $(filter $(TargetOS_CPP),mingw32 darwin),NO,YES)
 SupportsSplitSections=$(if $(and $(filter YES,$(OsSupportsSplitSections)),\
                                    $(filter YES,$(LdIsGNULd))),YES,NO)
 SplitSections ?= $(SupportsSplitSections)