[distcc] Re: Re: distcc and cl.exe (MS Visual compiler)

Frederic Paolucci fpaolucci at call.fr
Tue Jun 15 15:15:12 GMT 2004


As you suggested, I set TMPDIR=/tmp/. In addition I set DISTCC_VERBOSE to 1
and DISTCC_SAVE_TEMPS to 1. I also set DISTCC_HOSTS to br044test to force
distcc to compile on a remote computer (no localhost).

Then I created a simple file.c file ; To compile it I wrote:

   distcc tmcc.exe -c file.c -o file.o

Then I got the (now usual) error message:
   Catastrophic error: could not open source file "\tmp\distccd_ce7f0d4c.i"
   1 catastrophic error detected in the compilation of
   Compilation terminated.
   tmcc.exe: tmcfe command failed

A file distcc_22e80d48.i was generated in /tmp that contains the
preprocessed version of file.c.

When looking a distcc.log, I noticed some weird things:
* It says send ARGC00000005 (guess it means argc=5), but I see ARGV00000008
(argv[8]). Is it normal to have more parameters than argc?
* That are errors about file "(NULL)", host "(NULL)". Its looks like if
distcc was trying to compile a NULL file on a NULL host after file.c...
* I see "cpp file.c on localhost completed ok" and "ERROR: compile file.c on
br044test failed" so it seems that distcc try to compile file.c two times :
one time on localhost and another one on br044test...

Frederic Paolucci


distcc[1688] (dcc_trace_version) distcc 2.14 i686-pc-cygwin; built May  2
2004 12:50:17
distcc[1688] (dcc_recursion_safeguard) safeguard level=0
distcc[1688] (main) compiler name is "distcc"
distcc[1688] (dcc_scan_args) scanning arguments: tmcc.exe -c file.c -o
distcc[1688] (dcc_scan_args) found input file "file.c"
distcc[1688] (dcc_scan_args) found object/output file "file.o"
distcc[1688] compile from file.c to file.o
distcc[1688] (dcc_get_hostlist) read hosts from environment
distcc[1688] (dcc_parse_hosts) found tcp token "br044test"
distcc[1688] (dcc_lock_host) got cpu lock on br044test slot 0 as fd4
distcc[1688] (dcc_strip_dasho) result: tmcc.exe -c file.c
distcc[1688] (dcc_spawn_child) forking to execute: tmcc.exe -E file.c
distcc[1688] (dcc_spawn_child) child started as pid2576
distcc[1688] (dcc_strip_local_args) result: tmcc.exe -c file.c -o file.o
distcc[1688] exec on br044test: tmcc.exe -c file.c -o file.o
distcc[2576] (dcc_increment_safeguard) setting safeguard:
distcc[1688] (dcc_note_state) note state 2, file "file.c", host "br044test"
distcc[1688] (dcc_connect_timed) nonblocking connect to
distcc[1688] (dcc_select_for_write) select for write on fd5
distcc[1688] (dcc_connect_by_addr) client got connection to br044test port
3632 on fd5
distcc[1688] (dcc_x_token_int) send DIST00000001
distcc[1688] (dcc_x_token_int) send ARGC00000005
distcc[1688] (dcc_x_token_int) send ARGV00000008
distcc[1688] (dcc_x_token_int) send ARGV00000002
distcc[1688] (dcc_x_token_int) send ARGV00000006
distcc[1688] (dcc_x_token_int) send ARGV00000002
distcc[1688] (dcc_x_token_int) send ARGV00000006
distcc[1688] (dcc_note_state) note state 3, file "(NULL)", host "(NULL)"
distcc[1688] (dcc_collect_child) cpp child 2576 terminated with status 0
distcc[1688] (dcc_collect_child) cpp times: user 0.015000s, system
0.015000s, 0 minflt, 433 majflt
distcc[1688] cpp file.c on localhost completed ok
distcc[1688] (dcc_note_state) note state 4, file "(NULL)", host "(NULL)"
distcc[1688] (dcc_x_file) send 55 byte file /tmp/distcc_22e80d48.i with
token DOTI
distcc[1688] (dcc_x_token_int) send DOTI00000037
distcc[1688] (dcc_send_job) client finished sending request to server
distcc[1688] (dcc_note_state) note state 5, file "(NULL)", host "br044test"
distcc[1688] (dcc_r_token_int) got DONE00000001
distcc[1688] (dcc_r_result_header) got response header
distcc[1688] (dcc_note_state) note state 6, file "(NULL)", host "(NULL)"
distcc[1688] (dcc_r_token_int) got STAT00000100
distcc[1688] (dcc_r_token_int) got SERR000000d5
distcc[1688] (dcc_r_token_int) got SOUT00000000
distcc[1688] (dcc_r_token_int) got DOTO00000000
distcc[1688] (dcc_unlock) release lock fd4
distcc[1688] ERROR: compile file.c on br044test failed
distcc[1688] elapsed compilation time 0.678000s
distcc[1688] (dcc_exit) exit: code 1; self: 0.015000 user 0.140000 sys;
children: 0.015000 user 0.015000 sys
distcc[1688] (dcc_cleanup_tempfiles) skip cleanup of /tmp/distcc_22e80d48.i
distcc[1688] (dcc_cleanup_tempfiles) deleted 0 temporary files

More information about the distcc mailing list