1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
A list of the important changes done to distcc to support protocol version 3.
More or less in dataflow order.
Does not include various little changes, such as a bug fix in argutil.c, and
making functions from static into global, which happened all around the code.
- A new protocol version (3) is added. It
supports preprocessing on the server. It also transmits
bulky data compressed, like protocol version 2.
- distcc.h: Added the enum for where to do the cpp.
- hosts.c: Map a set of features (currently a subset of
where to do cpp and whether to do compression) onto
a protocol number.
- rpc.c: The client sometimes sends either a file or
a link to the server. The server needs to be able to
accept either, so dcc_r_sometoken_int introduces some
alternation to the protocol.
- Talking to the include server:
- compile.c: dcc_build_somewhere tries to talk to the
include server, and pushes the information about
the .d file to dcc_compile_remote. This is where
the fallback-to-the-original-protocol code lives.
- include_server_if.c: Talk to the include server.
- The communication from client to server. The client needs to
send multiple files, and perhaps links, to the server; the
client also needs to send its current working directory,
- remote.c: Entry points for sending multiple files to
the server.
- rpc.c: The server needs to handle not only files, but also
links (directories are handled implicitly).
- clirpc.c: Added a function to send the current working
directory. Added a function, dcc_x_many_files. It sends
multiple files to the server. In addition, it changes
the filenames to chop off the additions of the include
server.
- serve.c: Added a function to receive the current working
directory.
- On the server side: the server receives multiple files
and the working directory, and builds a directory structure
(which it keeps a manifest of, to clean it up at the end).
- srvrpc.c:
Added a function, dcc_r_many_files, to receive multiple
files. In addition, it changes the filenames to put all
the files under a "fake root" directory.
- serve.c: lots of work to set up "fake root" directories,
chdir to the right place, produce a .d file, and
absolutize include directives.
- tempfile.c: Creation of whole temp directories,
not just files.
- cleanup.c: Since we are receiving multiple files,
we need to keep a dynamic list of what temporary
files we create. Cleanup can now handle directories.
- ".d" files: the client needs to find out where the dotd file
should go; the server needs to produce it, remove all
references to its (the server's) local filesystem (there are no
gcc options to do this) and send it back to the client.
- dotd.c: Most of the code that handles the dotd: figuring
out if we need it, and where it should go; also,
cleaning it up after it gets created on the server.
- fix_debug_info.c: Rewrite an ELF .o file to refer to the
client-side filenames.
- clirpc.c Changed dcc_retrieve_results to retrieve
the dotd file.
|