summaryrefslogtreecommitdiff
path: root/include_server/include_server.py
diff options
context:
space:
mode:
authorkamal@whence.com <kamal@whence.com@01de4be4-8c4a-0410-9132-4925637da917>2012-04-20 16:05:55 +0000
committerkamal@whence.com <kamal@whence.com@01de4be4-8c4a-0410-9132-4925637da917>2012-04-20 16:05:55 +0000
commitf7a991a54cc041bf0e71697f1987ab4fb46ca7da (patch)
treef24a2eef3d7d0069bb968c488a0d8ffaea6a6f5a /include_server/include_server.py
parent17bdb296f31a8ecc1baee45a5d98814d774b207f (diff)
downloaddistcc-f7a991a54cc041bf0e71697f1987ab4fb46ca7da.tar.gz
Fix issue 108 <http://code.google.com/p/distcc/issues/detail?id=108>:
include_server --no_force_dirs inhibits forcing_technique The "forcing_technique" trick which handles the (rare) case of files included as e.g. <foo/../file.h> causes a performance degradation: The forcing files accumulate over the life of the include_server, making distcc send more and more (useless) files as the build progresses. While the forcing files are zero-length, the transmission filenames themselves introduce a significant overhead for builds with many files and directories. This patch implements the include_server arg --no_force_dirs, which if set switches off the "forcing_technique" scheme. git-svn-id: http://distcc.googlecode.com/svn/trunk@767 01de4be4-8c4a-0410-9132-4925637da917
Diffstat (limited to 'include_server/include_server.py')
-rwxr-xr-xinclude_server/include_server.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/include_server/include_server.py b/include_server/include_server.py
index b7aa0d8..886baac 100755
--- a/include_server/include_server.py
+++ b/include_server/include_server.py
@@ -116,6 +116,12 @@ OPTIONS:
gathering the include closure. See the
include_server(1) man page for futher information.
Using this option may lead to incorrect results.
+
+ --no_force_dirs Do not force the creation of all directories used
+ in an include path. May improve peformance for
+ some cases, but will break builds which use
+ include structures like "<foo/../file.h>" without
+ including other files in foo/.
-v, --verify Verify that files in CPP closure are contained in
closure calculated by include processor.
@@ -482,6 +488,7 @@ def _ParseCommandLineOptions():
"statistics",
"time",
"unsafe_absolute_includes",
+ "no_force_dirs",
"verify",
"write_include_closure"])
except getopt.GetoptError:
@@ -517,6 +524,8 @@ def _ParseCommandLineOptions():
sys.exit("Not implemented")
if opt in ("--unsafe_absolute_includes",):
basics.opt_unsafe_absolute_includes = True
+ if opt in ("--no_force_dirs",):
+ basics.opt_no_force_dirs = True
if opt in ("-s", "--statistics"):
basics.opt_statistics = True
if opt in ("-t", "--time"):