summaryrefslogtreecommitdiff
path: root/include_server/parse_command_test.py
Commit message (Collapse)AuthorAgeFilesLines
* Handle complex arguments, like assembler macrosAnders F Björklund2018-11-101-1/+6
| | | | | | | | The Linux kernel has started using statements like -Wa,macros.s for including assembler with the code. Handle these similar to the `-imacros` statement, and send them to the compile server for processing.
* include_server python(3) readypython3clutton2016-04-141-8/+8
|
* Apply --sysroot patch from Simon Baldwin <simonb@google.com>:fergus.henderson2010-08-191-10/+22
| | | | | | | | | | | | | | | | | | | | | 2010-08-18 Simon Baldwin <simonb@google.com> * include_server/compiler_defaults.py (_SystemSearchdirsGCC): Add a 'sysroot' parameter. Add --sysroot, if needed, to the gcc invocation that identifies search directories and default paths. Add debugging output. (SetSystemDirsDefaults): Add 'sysroot' parameter. Add another dictionary level to system_dirs_default for sysroot values. Add debugging output. * include_server/parse_command.py (ParseCommandArgs): Identify and handle arguments of the form '--opt=value'. Pass any --sysroot value to compiler_defaults.SetSystemDirsDefaults, use it in compiler_defaults.system_dirs_default lookups. (CPP_OPTIONS_APPEARING_AS_ASSIGNMENTS): New. * include_server/parse_command_test.py (Mock_SetSystemDirsDefaults): Add sysroot parameter, verify it on function calls. (ParseCommandUnitTest): Add --sysroot to mock gcc invocations.
* Delete an unused test case: the test was hard-coded to always pass anyway,fergus.henderson2008-09-271-20/+0
| | | | | so it wasn't testing anything useful.
* This is based on klarlund's original version of this patch (klarlund/d3b3):fergus.henderson2008-07-291-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gvn --project https://distcc.googlecode.com/svn/trunk review klarlund/d3b3 Fix Issue 7: Compiling with -I/usr/include/FOO or ... in pump mode Problem: Default system include directories are the directories on the default include search path, such as /usr/include, that is determined by the compiler. Distcc will not send default system include directories to the distcc compilation servers. Nevertheless, distcc on the server blindly rewrites -I options such as -I/usr/include/foo to -I/tmp/distccNNN/usr/include/foo. This doesn't work, since the files in /usr/include/foo are not sent to the distccd server. Solution: The present solution keeps the rewriting on the server, because we would like to not manage starting the compiler, parsing its output, and storing the default system paths on the server Instead, we use the existing mechanism for defining relative symbolic links under the server root. We escape from the root by using a sufficient number of '../'s. All this is tremendously complicated by: -- The possibility that other links encountered may point into the system default dirs in which case the usual mirroring of the reachable places should not take place, because the routing of such links will go through the link created for the system directory. -- The fact that determination of default-system-dirness is lazy: a deeply-seated link in a default system dir may become obsolete if it is later determined that a higher directory than the parent directory of the link is in fact also a default system dir. In that case, a new symlink, sitting in a place higher than the previous one will need to be created. Tests: make check benchmarks: samba (still 3X faster than with distcc), linux 2.6 kernel, and a couple of others TODO: better testing TODO: > In compiler_defaults.py, _MakeLinkFromMirrorToRealLocation: > Maybe comment each of the 'if' cases with an example of how this case > might be triggered. eg the real_prefix == rooted_system_dir is > triggered when we see /usr/include/foo, and the later see > /usr/include.
* Revert r393.klarlund2008-06-301-13/+3
| | | | | | | | | This change is mostly reverted -- some variable renamings are not changed back. A subsequent CL proposes a less arbitrary way to solve the problem of -I<some_dir_in_default_place_where_compiler_looks>, which involves sending no system default header files at all. Tests: make pump-check and make include-server-check
* Make the Linux 2.6 kernel build with distcc-pump mode.klarlund2008-05-271-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new piece of command line parse information: send_systemdirs. This boolean is normally false. It is true if there is a -isystem option with a default system directory (one known to the compiler). With send_systemdirs true, the compiler headers of system headers are sent to the servers and mounted under the server root. The isystem option is as usual rewritten to be relative to the root. Without this flag setting, distcc quickly decides that pump mode is not viable because remote compilations fail. Also, fixed the comment: # TODO(klarlund): Make mechanism for handling -U, -undef options, along with # default symbols. (-D options are handled.) --------------- TESTS: make pump-maintainer-check make include-server-maintainer-check make 'linux kernel' in a directory made by the benchmark script (as shown below) DISTCC_EMAILLOG_WHOM_TO_BLAME=klarlund@google.com DISTCC_ENABLE_DISCREPANCY_EMAIL=1 INCLUDE_SERVER_ARGS='-d1 -t --email --unsafe_absolute_includes --send_systemdirs --stat_reset_triggers=include/linux/*' DISTCC_HOSTS="--randomize `/home/klarlund/svn-distcc/distcc/lsdistcc -P3 -k100 -d`" PATH=/home/klarlund/svn-distcc/distcc:$PATH ./masquerade pump make -j120 REVIVIEWER: csilvers@google.com TRIVIA: the about 1000 files in the kernel build involve on average 400 headers. The build time on a quad-cpu machine drops from about 1m40 s to 1m20s. With pump-mode, the machine is underutilized judging from the total sys + user time, which is around only 2m20s. NOTE: this is a successor to 'g6n8', which simply introduced a command line option to force sending of system files. A bug in gvn did not allow me to resuse that change list.
* Normalize the copyright text, to the latest version of the GPLv2 textCraig Silverstein2008-05-231-4/+5
| | | | | | | | (typically the only change is in the FSF street address). Add Google copyright line in some places it was missing. Add GPLv2 notice to avahi patches. OKed by fergus
* Re-enable Objective C and Objective C++ support.fergus.henderson2008-05-201-1/+1
| | | | | | | | | | | | | | | | | | This required the following changes: - Compute the default search paths for each language lazily, when the language is first encountered, rather than computing it for 'c' and 'c++'. - Make the tests of Objective C and Objective C++ conditional on the relevant compiler being installed. Tested by "make check" on two systems: - One with Objective C installed, but not Objective C++. - One with neither installed. I didn't test on a system with Objective C++ installed, because I didn't have one easily available. Reviewers: Craig Silverstein, Nils Klarlund.
* Initial submission @6805748, not fully baked yet.klarlund2008-03-281-0/+196