diff options
author | kamal@whence.com <kamal@whence.com@01de4be4-8c4a-0410-9132-4925637da917> | 2012-04-20 16:05:55 +0000 |
---|---|---|
committer | kamal@whence.com <kamal@whence.com@01de4be4-8c4a-0410-9132-4925637da917> | 2012-04-20 16:05:55 +0000 |
commit | f7a991a54cc041bf0e71697f1987ab4fb46ca7da (patch) | |
tree | f24a2eef3d7d0069bb968c488a0d8ffaea6a6f5a /include_server/include_server.py | |
parent | 17bdb296f31a8ecc1baee45a5d98814d774b207f (diff) | |
download | distcc-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-x | include_server/include_server.py | 9 |
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"): |