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

anish anil anish.a.anil at gmail.com
Mon May 10 12:19:33 UTC 2021


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
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/distcc/attachments/20210510/2fd6c4c6/attachment.htm>


More information about the distcc mailing list