[distcc] How to correctly confirm if Distcc is setup correctly.

Fergus Henderson fergus at google.com
Mon May 10 12:48:40 UTC 2021


In your Makefile, change all occurrences of "gcc" to "$(CC)".

On Mon, 10 May 2021 at 13:19, anish anil <anish.a.anil at gmail.com> wrote:

> Hello Henderson,
>
> Thank you for that lead, I changed the code by reading through the code
> mentioned at
>
> https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html#zz-2.1
>
> Now created the sample example and did the following
> **********
> // hello.c
> #include <stdio.h>
>
> int main() {
>     printf("Hello, world!\n");
>     return 0;
> }
> **********
>
> Make file with the below contents:
>
> ***************
> all: hello.exe
>
> hello.exe: hello.o
>          gcc -o hello.exe hello.o
>
> hello.o: hello.c
>          gcc -c hello.c
>
> clean:
>          rm hello.o hello.exe
> ****************
>
> Ran the build withe the make file using the below command:
>
> ******************
> root at ip-172-31-24-96:/data/cprg# ls
> hello.c  makefile
> root at ip-172-31-24-96:/data/cprg# pump make -j8 CC=distcc --debug
> __________Using distcc-pump from /usr/local/bin
> __________Found 2 available distcc servers
> GNU Make 4.1
> Built for x86_64-pc-linux-gnu
> Copyright (C) 1988-2014 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <
> http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Reading makefiles...
> Updating goal targets....
>  File 'all' does not exist.
>    File 'hello.exe' does not exist.
>      File 'hello.o' does not exist.
>     Must remake target 'hello.o'.
> gcc -c hello.c
>  File 'all' does not exist.
>    File 'hello.exe' does not exist.
>   Must remake target 'hello.exe'.
> gcc -o hello.exe hello.o
>  File 'all' does not exist.
> Must remake target 'all'.
> Successfully remade target file 'all'.
> __________Shutting down distcc-pump include server
> root at ip-172-31-24-96:/data/cprg# ls -la
> total 32
> drwxr-xr-x 2 root root 4096 May 10 11:51 .
> drwxr-xr-x 5 root root 4096 May 10 11:48 ..
> -rw-r--r-- 1 root root   92 May 10 11:48 hello.c
> -rwxr-xr-x 1 root root 8304 May 10 11:51 hello.exe
> -rw-r--r-- 1 root root 1544 May 10 11:51 hello.o
> -rw-r--r-- 1 root root  133 May 10 11:49 makefile
> root at ip-172-31-24-96:/data/cprg# vi hello.c
> root at ip-172-31-24-96:/data/cprg# vi makefile
> root at ip-172-31-24-96:/data/cprg#
> ******************
>
> So here it looks like it has build correctly, But I'm yet to ascertain, If
> all the servers were really used during the compile operation which lands
> me back to the original question.
>
> Thank you,
> Anish
>
> On Mon, May 10, 2021 at 5:08 PM Fergus Henderson <fergus at google.com>
> wrote:
>
>> Your makefile is not doing any actual C or C++ compilation. If you want
>> to test whether distcc is set up correctly, you need to actually compile
>> something.
>>
>> On Mon, 10 May 2021, 12:33 anish anil via distcc, <distcc at lists.samba.org>
>> wrote:
>>
>>> I'm first time using distcc and have gone through the Readme.
>>>
>>> To setup I have three Ubuntu Servers: Master and Client:
>>>
>>> As per the readme it sound like we need to install them on all theree
>>> machines. which i have completed.
>>> https://github.com/distcc/distcc/blob/master/INSTALL
>>>
>>> Ran the command on all three servers:
>>>
>>> sudo apt-get install gcc make python3 python3-dev libiberty-dev
>>>
>>> ./autogen.sh ./configure make install
>>>
>>> They completed without any errors.
>>>
>>> Create ssh keys across the three machines and added then to the
>>> authorized host section. Did a ssh and confirmed they are able to login
>>> from the master to the Agent systems without any password
>>>
>>> Now from the Master Server i ran the below pointing two the two clients:
>>>
>>> Export DISTCC_POTENTIAL_HOSTS='localhost 172.31.33.11 172.31.37.109'
>>>
>>> Created a hello world make file:
>>>
>>>     #.DEFAULT_GOAL := generate
>>>     .PHONY: all say_hello generate clean
>>>
>>>     all: say_hello generate
>>>
>>>     say_hello:
>>>             @echo "Hello World"
>>>
>>>     generate:
>>>             @echo "Creating empty text files..."
>>>             touch file-{1..10}.txt
>>>
>>>     clean:
>>>             @echo "Cleaning up....."
>>>             rm -f *.txt
>>>
>>> Ran a build using the below command
>>>
>>>  make
>>>  Hello World
>>>  Creating empty text files...
>>>  touch file-{1..10}.txt
>>>  root at ip-172-31-24-96:/data/helloworls#
>>>
>>> So here it does look to have worked as expected.
>>>
>>> Ran the command as specified in the documentation:
>>>
>>> pump make -j40 CC="distcc gcc" --debug
>>> __________Using distcc-pump from /usr/local/bin
>>> __________Found 1 available distcc servers
>>> GNU Make 4.1
>>> Built for x86_64-pc-linux-gnu
>>> Copyright (C) 1988-2014 Free Software Foundation, Inc.
>>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
>>> This is free software: you are free to change and redistribute it.
>>> There is NO WARRANTY, to the extent permitted by law.
>>> Reading makefiles...
>>> Updating goal targets....
>>>  File 'all' does not exist.
>>>    File 'say_hello' does not exist.
>>>   Must remake target 'say_hello'.
>>>    File 'generate' does not exist.
>>>   Must remake target 'generate'.
>>> Hello World
>>> Creating empty text files...
>>> touch file-{1..10}.txt
>>>  File 'all' does not exist.
>>>  File 'all' does not exist.
>>> Must remake target 'all'.
>>> Successfully remade target file 'all'.
>>> __________Shutting down distcc-pump include server
>>> root at ip-172-31-24-96:/data/helloworls# ls
>>> Makefile  file-{1..10}.txt
>>> root at ip-172-31-24-96:/data/helloworls#
>>>
>>> Question:
>>>
>>> 1> How do we really know that the two client servers have been used during this build
>>> 2> Is setting the client servers same as that of the master, If no is there a difference
>>> 3> How do we see the UI distcc Monitor
>>> 4> How can i join a range of machines which does not have DistCC installed
>>>
>>> Thank you
>>> __
>>> distcc mailing list            http://distcc.samba.org/
>>> To unsubscribe or change options:
>>> https://lists.samba.org/mailman/listinfo/distcc
>>>
>>

-- 
Fergus Henderson <fergus at google.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/distcc/attachments/20210510/a4c5fae1/attachment-0001.htm>


More information about the distcc mailing list