[distcc] Re: Problems compiling some software with distcc

Martin Pool mbp at samba.org
Mon May 26 06:15:31 GMT 2003


On 26 May 2003, Dag Wieers <dag at wieers.com> wrote:
> Hi Martin,
> 
> I've not seen any replies on my bugreports I've send for several 
> software packages. And I don't know how to debug this.

Sorry, your 300k mail was a bit intimidating. :-) (I do appreciate
thorough reports, but it looked like it would take a while.)

I've just tried building Twin on Debian Sid across distcc 2.5cvs and
gcc 3.2, and Twin seems to work with -j1. 

The problems seem to be due to missing dependencies in the Makefiles.
In other words, bugs in Twin.  These are not evident in a local or -j1
build, because there are enough dependencies to make the build happen
in the order the author requires.  However, with high -j values with
distcc or indeed a big SMP box the build will fail.

You need to either fix the makefile and send patches to the author, or
not use -j when building these packages.

> Despite the fact that most (more than 300) packages I build have no 
> problems building with distcc, there are some packages that have weird 
> problems as already mentioned.
> 
> I now took a simple example and tried to compile it and wrote down the 
> different errors I get. These errors differ from build to build (although 
> the setup hasn't changed).
> 
> The tests were done by compiling 'twin' (one of a dozen troubling packages).
> 
> Here's what I wrote down:
> 
> 	On RH90:
> 		bison -d --no-lines -o rcparse_tab.h rcparse.y
> 		rcparse.y:330: fatal error: header and parser would both be named `rcparse_tab.h'
> 		make[1]: *** [rcparse_tab.h] Error 1
> 	Or:
> 		../../scripts/Getsizes > ../../include/Tw/datasizes.h
> 		/bin/sh: line 1: ../../scripts/Getsizes: Permission denied
> 		make[2]: *** [../../include/Tw/datasizes.h] Error 126
> 	Or:
> 		/bin/sh: line 1: ../../scripts/Mkdep: Text file busy
> 		make[2]: *** [.depend] Error 126
> 	Or:
> 		i386-redhat-linux-gcc-3.2.2 -fPIC -D_GNU_SOURCE -D_REENTRANT -I../../include -O2 -march=i386 -mcpu=i686 -c md5.c -o md5.lo
> 		ar: libTutf.o: No such file or directory
> 		make[2]: *** [.libTutf.a.arlib] Error 1
> 	On RH80:
> 		../../scripts/Getsizes > ../../include/Tw/datasizes.h
> 		/bin/sh: line 1: ../../scripts/Getsizes: Permission denied
> 		make[2]: *** [../../include/Tw/datasizes.h] Error 126
> 	Or:
> 		make[3]: *** No rule to make target `hw_twin.so.0.0.8', needed by `links'.  Stop.
> 		make[3]: *** Waiting for unfinished jobs....
> 	On RH73:
> 		../../scripts/Getsizes > ../../include/Tw/datasizes.h
> 		/bin/sh: ../../scripts/Getsizes: Permission denied
> 		make[2]: *** [../../include/Tw/datasizes.h] Error 126
> 	Or:
> 		checking whether the C compiler (i386-redhat-linux-gcc-2.96 -O2 -march=i386 -mcpu=i686 ) works... no
> 		configure: error: installation or configuration problem: C compiler cannot create executables.
> 	On RH62:
> 		checking whether the C compiler (i386-redhat-linux-gcc-2.91.6 -O2 -march=i386 -mcpu=i686 ) works... no
> 		configure: error: installation or configuration problem: C compiler cannot create executables.
> 
> This is the result after a couple of builds on all 4 distributions. If I 
> disable distcc, the builds succeed without any problems !!
> 
> If I only build on localhost (or build on multiple hosts) the builds fail 
> as noted above.
> 
> Could you try and build twin yourself with and without distcc to see if 
> you can mimic this behaviour yourself ? I guess that would make it easier 
> to find the culprit.
> 
> Thanks in advance,
> [Any errors in spelling, tact or fact are transmission errors]
-- 
Martin 

linux.conf.au 2004: Adelaide, Australia         http://lca2004.linux.org.au/



More information about the distcc mailing list