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

Fergus Henderson via distcc <[email protected]> Mon, 10 May 2021 13:48:40 +0100
Newsgroups gmane.comp.compilers.distcc
Message-ID <CAPXkjd_s7NxLaoYs_+Fprm73Kj7iW7HftsCKzg81j1VBGpHhuA@mail.gmail.com>
--===============4200464015344748674==
Content-Type: multipart/alternative; boundary="000000000000f9dc1105c1f93392"

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

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

On Mon, 10 May 2021 at 13:19, anish anil <[email protected]> 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@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
>>>
>>

-- 
Fergus Henderson <[email protected]>

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

<div dir=3D"ltr">In your Makefile, change all occurrences of &quot;gcc&quot=
; to &quot;$(CC)&quot;.</div><br><div class=3D"gmail_quote"><div dir=3D"ltr=
" class=3D"gmail_attr">On Mon, 10 May 2021 at 13:19, anish anil &lt;<a href=
=3D"mailto:[email protected]">[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"><=
div>Hello Henderson,</div><div><br></div><div>Thank you for that lead, I ch=
anged 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/g=
cc_make.html#zz-2.1" target=3D"_blank">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" t=
arget=3D"_blank">http://gnu.org/licenses/gpl.html</a>&gt;<br>This is free s=
oftware: you are free to change and redistribute it.<br>There is NO WARRANT=
Y, to the extent permitted by law.<br>Reading makefiles...<br>Updating goal=
 targets....<br>=C2=A0File &#39;all&#39; does not exist.<br>=C2=A0 =C2=A0Fi=
le &#39;hello.exe&#39; does not exist.<br>=C2=A0 =C2=A0 =C2=A0File &#39;hel=
lo.o&#39; does not 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 ta=
rget &#39;hello.exe&#39;.<br>gcc -o hello.exe hello.o<br>=C2=A0File &#39;al=
l&#39; does not exist.<br>Must remake target &#39;all&#39;.<br>Successfully=
 remade target file &#39;all&#39;.<br>__________Shutting down distcc-pump i=
nclude server<br>root@ip-172-31-24-96:/data/cprg# ls -la<br>total 32<br>drw=
xr-xr-x 2 root root 4096 May 10 11:51 .<br>drwxr-xr-x 5 root root 4096 May =
10 11:48 ..<br>-rw-r--r-- 1 root root =C2=A0 92 May 10 11:48 hello.c<br>-rw=
xr-xr-x 1 root root 8304 May 10 11:51 hello.exe<br>-rw-r--r-- 1 root root 1=
544 May 10 11:51 hello.o<br>-rw-r--r-- 1 root root =C2=A0133 May 10 11:49 m=
akefile<br>root@ip-172-31-24-96:/data/cprg# vi hello.c<br>root@ip-172-31-24=
-96:/data/cprg# vi makefile<br>root@ip-172-31-24-96:/data/cprg#<br></div><d=
iv>******************<br></div><div><br></div><div>So here it looks like it=
 has build correctly, But I&#39;m yet to ascertain, If all the servers were=
 really used during the compile operation which lands me back to the origin=
al question.</div><div><br></div><div>Thank you,</div><div>Anish<br></div><=
/div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">O=
n Mon, May 10, 2021 at 5:08 PM Fergus Henderson &lt;<a href=3D"mailto:fergu=
[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-l=
eft:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"auto">Your mak=
efile is not doing any actual C or C++ compilation. If you want to test whe=
ther distcc is set up correctly, you need to actually compile something.</d=
iv><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:distcc=
@lists.samba.org" target=3D"_blank">[email protected]</a>&gt; wrote:<b=
r></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>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
 class=3D"gmail_signature"><div dir=3D"ltr"><div>Fergus Henderson &lt;<a hr=
ef=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>&gt;=
</div></div></div>

--000000000000f9dc1105c1f93392--


--===============4200464015344748674==
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

--===============4200464015344748674==--