[distcc] distcc and compiler using "-c" option differently

Frederic Paolucci fpaolucci at call.fr
Fri Jun 11 13:20:56 GMT 2004


Hello,

I'm using distcc 2.14 under Cygwin.

I'm compiling on a Philips Trimedia processor using "tmcc.exe" compiler.
Unfortunately, this compiler parameters are quite "weird".

Usage: tmcc.exe [ option ... ] file ...
Options:
        -c              Compile only: compile to .o, do not link.

Then, to compile a file, a typical commande line is:
   tmcc file.c -o file.o -c
Note that I have to use the "-c" option to disable linking (no -c option
required before the .c file).

When I use distcc, the command line is:
   distcc tmcc file.c -o file.o -c

and it doesn't work because distcc interprets "-c" differently as tmcc...
(for distcc this is the path for the .c file). Then I have error message:
   Catastrophic error: could not open source file "\tmp\distccd_ef61a528.i"
   1 catastrophic error detected in the compilation of
"\tmp\distccd_ef61a528.i".

I've tried:
   distcc tmcc -c file.c -o file.o
but I still got catastrophic error for file tmp\distccd_xxx.i

I've also tried:
   distcc tmcc file.c -o file.o -c -c file.c
but I got:
   tmcc.exe fatal   :   "-o" option used but multiple objects needed

Then if I write:
   distcc tmcc file.c -c -o file.o;dummy.o -c dummy.c
I still got catastrophic error for file tmp\distccd_xxx.i

I did not find any workaround ; do you have any idea? I would be really
happy to be able to use distcc to speed-up the compilation time for my
project (right now, it takes more than 15mn to compile the whole project!).

Thanks,
Frédéric Paolucci

Call Image
Les Centuries
Bât. 2
101 place Duhem
34000 Montpellier
France

Tel: +33 4 67 16 16 41
Fax: +33 4 67 16 16 17
Mail: fpaolucci at call.fr
Web: http://www.call.fr

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




More information about the distcc mailing list