Re: How to correctly confirm if Distcc is setup correctly.

anish anil via distcc <[email protected]> Mon, 10 May 2021 17:49:33 +0530
Newsgroups gmane.comp.compilers.distcc
Message-ID <CANRm2KO3yY_P44LEvwnN0SDBm+dzAyHypy=Gn6uF4JyDEicQAg@mail.gmail.com>
--===============2798347830158900495==
Content-Type: multipart/alternative; boundary="000000000000f7d44205c1f8ca28"

--000000000000f7d44205c1f8ca28
Content-Type: text/plain; charset="UTF-8"

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@ip-172-31-24-96:/data/cprg# ls
hello.c  makefile
root@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@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@ip-172-31-24-96:/data/cprg# vi hello.c
root@ip-172-31-24-96:/data/cprg# vi makefile
root@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 <[email protected]> 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, <[email protected]>
> 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@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@ip-172-31-24-96:/data/helloworls# ls
>> Makefile  file-{1..10}.txt
>> root@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
>>
>

--000000000000f7d44205c1f8ca28
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hello Henderson,</div><div><br></div><div>Thank you f=
or that lead, I changed the code by reading through the code mentioned at <=
br></div><div><br></div><div><a href=3D"https://www3.ntu.edu.sg/home/ehchua=
/programming/cpp/gcc_make.html#zz-2.1">https://www3.ntu.edu.sg/home/ehchua/=
programming/cpp/gcc_make.html#zz-2.1</a></div><div><br></div><div>Now creat=
ed the sample example and did the following</div><div>**********</div><div>=
// hello.c<br>#include &lt;stdio.h&gt;<br><br>int main() {<br>=C2=A0 =C2=A0=
 printf(&quot;Hello, world!\n&quot;);<br>=C2=A0 =C2=A0 return 0;<br>}</div>=
<div>**********</div><div><br></div><div>Make file with the below contents:=
</div><div><br></div><div>***************</div><div>all: hello.exe<br><br>h=
ello.exe: hello.o<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0gcc -o hello.exe hel=
lo.o<br><br>hello.o: hello.c<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0gcc -c he=
llo.c<br><br>clean:<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0rm hello.o hello.e=
xe</div><div>****************</div><div><br></div><div>Ran the build withe =
the make file using the below command:</div><div><br></div><div>***********=
*******</div><div>root@ip-172-31-24-96:/data/cprg# ls<br>hello.c =C2=A0make=
file<br>root@ip-172-31-24-96:/data/cprg# pump make -j8 CC=3Ddistcc --debug<=
br>__________Using distcc-pump from /usr/local/bin<br>__________Found 2 ava=
ilable distcc servers<br>GNU Make 4.1<br>Built for x86_64-pc-linux-gnu<br>C=
opyright (C) 1988-2014 Free Software Foundation, Inc.<br>License GPLv3+: GN=
U GPL version 3 or later &lt;<a href=3D"http://gnu.org/licenses/gpl.html">h=
ttp://gnu.org/licenses/gpl.html</a>&gt;<br>This is free software: you are f=
ree to change and redistribute it.<br>There is NO WARRANTY, to the extent p=
ermitted by law.<br>Reading makefiles...<br>Updating goal targets....<br>=
=C2=A0File &#39;all&#39; does not exist.<br>=C2=A0 =C2=A0File &#39;hello.ex=
e&#39; does not exist.<br>=C2=A0 =C2=A0 =C2=A0File &#39;hello.o&#39; does n=
ot exist.<br>=C2=A0 =C2=A0 Must remake target &#39;hello.o&#39;.<br>gcc -c =
hello.c<br>=C2=A0File &#39;all&#39; does not exist.<br>=C2=A0 =C2=A0File &#=
39;hello.exe&#39; does not exist.<br>=C2=A0 Must remake target &#39;hello.e=
xe&#39;.<br>gcc -o hello.exe hello.o<br>=C2=A0File &#39;all&#39; does not e=
xist.<br>Must remake target &#39;all&#39;.<br>Successfully remade target fi=
le &#39;all&#39;.<br>__________Shutting down distcc-pump include server<br>=
root@ip-172-31-24-96:/data/cprg# ls -la<br>total 32<br>drwxr-xr-x 2 root ro=
ot 4096 May 10 11:51 .<br>drwxr-xr-x 5 root root 4096 May 10 11:48 ..<br>-r=
w-r--r-- 1 root root =C2=A0 92 May 10 11:48 hello.c<br>-rwxr-xr-x 1 root ro=
ot 8304 May 10 11:51 hello.exe<br>-rw-r--r-- 1 root root 1544 May 10 11:51 =
hello.o<br>-rw-r--r-- 1 root root =C2=A0133 May 10 11:49 makefile<br>root@i=
p-172-31-24-96:/data/cprg# vi hello.c<br>root@ip-172-31-24-96:/data/cprg# v=
i makefile<br>root@ip-172-31-24-96:/data/cprg#<br></div><div>**************=
****<br></div><div><br></div><div>So here it looks like it has build correc=
tly, But I&#39;m yet to ascertain, If all the servers were really used duri=
ng the compile operation which lands me back to the original question.</div=
><div><br></div><div>Thank you,</div><div>Anish<br></div></div><br><div cla=
ss=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, May 10, 20=
21 at 5:08 PM Fergus Henderson &lt;<a href=3D"mailto:[email protected]">fer=
[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padd=
ing-left:1ex"><div dir=3D"auto">Your makefile is not doing any actual C or =
C++ compilation. If you want to test whether distcc is set up correctly, yo=
u need to actually compile something.</div><br><div class=3D"gmail_quote"><=
div dir=3D"ltr" class=3D"gmail_attr">On Mon, 10 May 2021, 12:33 anish anil =
via distcc, &lt;<a href=3D"mailto:[email protected]" target=3D"_blank"=
>[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail_=
quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,=
204);padding-left:1ex"><div dir=3D"ltr">
<button>
           =20
        </button>
   =20

   =20
        <div><div>

</div>
        </div>

       =20

<div>
   =20
    <div>
               =20
<p>I&#39;m first time using distcc and have gone through the Readme.</p>
<p>To setup I have three Ubuntu Servers:
Master and Client:</p>
<p>As per the readme it sound like we need to install them on all theree ma=
chines. which i have completed.
<a href=3D"https://github.com/distcc/distcc/blob/master/INSTALL" rel=3D"nof=
ollow noreferrer noreferrer" target=3D"_blank">https://github.com/distcc/di=
stcc/blob/master/INSTALL</a></p>
<p>Ran the command on all three servers:</p>
<p>sudo apt-get install gcc make python3 python3-dev libiberty-dev</p>
<p>./autogen.sh
./configure
make install</p>
<p>They completed without any errors.</p>
<p>Create ssh keys across the three machines and added then to the authoriz=
ed host section.
Did a ssh and confirmed they are able to login from the master to the Agent=
 systems without any password</p>
<p>Now from the Master Server i ran the below pointing two the two clients:=
</p>
<pre><code>Export DISTCC_POTENTIAL_HOSTS=3D&#39;localhost 172.31.33.11 172.=
31.37.109&#39;
</code></pre>
<p>Created a hello world make file:</p>
<pre><code>    #.DEFAULT_GOAL :=3D generate
    .PHONY: all say_hello generate clean

    all: say_hello generate

    say_hello:
            @echo &quot;Hello World&quot;

    generate:
            @echo &quot;Creating empty text files...&quot;
            touch file-{1..10}.txt

    clean:
            @echo &quot;Cleaning up.....&quot;
            rm -f *.txt
</code></pre>
<p>Ran a build using the below command</p>
<pre><code> make
 Hello World
 Creating empty text files...
 touch file-{1..10}.txt
 root@ip-172-31-24-96:/data/helloworls#
</code></pre>
<p>So here it does look to have worked as expected.</p>
<p>Ran the command as specified in the documentation:</p>
<pre><code>pump make -j40 CC=3D&quot;distcc gcc&quot; --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 &lt;<a href=3D"http://gnu.org/li=
censes/gpl.html" rel=3D"noreferrer" target=3D"_blank">http://gnu.org/licens=
es/gpl.html</a>&gt;
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 &#39;all&#39; does not exist.
   File &#39;say_hello&#39; does not exist.
  Must remake target &#39;say_hello&#39;.
   File &#39;generate&#39; does not exist.
  Must remake target &#39;generate&#39;.
Hello World
Creating empty text files...
touch file-{1..10}.txt
 File &#39;all&#39; does not exist.
 File &#39;all&#39; does not exist.
Must remake target &#39;all&#39;.
Successfully remade target file &#39;all&#39;.
__________Shutting down distcc-pump include server
root@ip-172-31-24-96:/data/helloworls# ls
Makefile  file-{1..10}.txt
root@ip-172-31-24-96:/data/helloworls#
</code></pre>
<p>Question:</p>
<pre><code>1&gt; How do we really know that the two client servers have bee=
n used during this build
2&gt; Is setting the client servers same as that of the master, If no is th=
ere a difference
3&gt; How do we see the UI distcc Monitor
4&gt; How can i join a range of machines which does not have DistCC install=
ed
</code></pre>
<p>Thank you</p>
    </div></div>

</div>
__<br>
distcc mailing list=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"htt=
p://distcc.samba.org/" rel=3D"noreferrer noreferrer" target=3D"_blank">http=
://distcc.samba.org/</a><br>
To unsubscribe or change options:<br>
<a href=3D"https://lists.samba.org/mailman/listinfo/distcc" rel=3D"noreferr=
er noreferrer" target=3D"_blank">https://lists.samba.org/mailman/listinfo/d=
istcc</a><br>
</blockquote></div>
</blockquote></div>

--000000000000f7d44205c1f8ca28--


--===============2798347830158900495==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

__
distcc mailing list            http://distcc.samba.org/
To unsubscribe or change options:
https://lists.samba.org/mailman/listinfo/distcc

--===============2798347830158900495==--