[distcc] redeclared symbol error

Lee Adamson lee at macquarie.com.au
Thu Jun 30 04:57:10 GMT 2005

OK, I think I have totally managed to confused you here...
/opt/gcc/cross/i686-pc-linux-gnu/bin/g++ is a Solaris compiler that produces 
Linux binaries...
qad25-lee [View: ** NONE **]: file /opt/gcc/cross/i686-pc-linux-gnu/bin/g++
/opt/gcc/cross/i686-pc-linux-gnu/bin/g++:	ELF 32-bit MSB executable SPARC 
Version 1, dynamically linked, not stripped
qad25-lee [View: ** NONE **]: /opt/gcc/cross/i686-pc-linux-gnu/bin/g++ -c 
qad25-lee [View: ** NONE **]: file hello1.o
hello1.o:	ELF 32-bit LSB relocatable 80386 Version 1

It should run fine on Solaris (and this is why I thought it would run fine with 
distcc)... So I think all my paths are correct and there is something nastier 
going on here...


>Hi Lee,
>On 30 Jun 2005, Lee Adamson <lee at macquarie.com.au> wrote:
>> OK, I have two compilers here. 
>> One is a Solaris native compiler (works fine), the other is a Solaris to 
>> cross compiler (errors).  Both compilers exist on all machines.
>OK, this is a bit puzzling.  Your makefile is trying to run 
>  /opt/gcc/distcc-2.18/bin/distcc /opt/gcc/cross/i686-pc-linux-gnu/bin/g++
>on the Solaris machine.  This should cause it to run i686-pc-linux-gnu
>locally first to preprocess the source.  But that's a i686-linux hosted
>compiler, so it probably won't run on Solaris.  (Or is there some kind
>of emulation layer in effect?)
>What happens if on the Solaris machine you try to directly run 
>  /opt/gcc/cross/i686-pc-linux-gnu/bin/g++ -c hello1.cc
>To avoid any complications from parallel builds we can force one build
>remotely with
>  DISTCC_HOSTS=qad25 /opt/gcc/distcc-2.18/bin/distcc \
>  /opt/gcc/cross/i686-pc-linux-gnu/bin/g++ \
>  -c hello1.cc
>Anyhow, what you need is one path that runs the right version of the
>compiler on each machine.  For example you could have
>/usr/local/bin/solaris-g++-4.0 which is a cross compiler on i686 and a
>native compiler on sun.  Alternatively you can set the PATH to find the
>native compiler on Sun, set DISTCCD_PATH when running the daemon on
>i686, and not use an absolute name.

More information about the distcc mailing list