diff --git a/tools/sphinx8 b/tools/sphinx8
index d6a9290c2321a0285d9279a5fbcdb56f79238c6f..2813fd8cb6d7e05426793e57036d7689dd557b29 100755
--- a/tools/sphinx8
+++ b/tools/sphinx8
@@ -13,6 +13,7 @@ directives when any of the directives modules are imported.
 import sys
 
 import doc8.main
+import mock
 import sphinx.directives
 import sphinx.directives.code
 import sphinx.directives.patches
@@ -21,9 +22,12 @@ import sphinx.directives.patches
 def main():
     # NOTE: Registering sphinx.directives.other causes a failure in parsing
     # later.
-    sphinx.directives.setup(None)
-    sphinx.directives.code.setup(None)
-    sphinx.directives.patches.setup(None)
+    # Sphinx expects an 'app' argument to these functions. Use a mock since we
+    # don't need to use the application object.
+    app = mock.Mock()
+    sphinx.directives.setup(app)
+    sphinx.directives.code.setup(app)
+    sphinx.directives.patches.setup(app)
     return doc8.main.main()