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 "gcc"= ; to "$(CC)".</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 <<a href= =3D"mailto:[email protected]">[email protected]</a>> 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 <stdio.h><br><br>int main() {<br>=C2=A0 =C2=A0= printf("Hello, world!\n");<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 <<a href=3D"http://gnu.org/licenses/gpl.html" t= arget=3D"_blank">http://gnu.org/licenses/gpl.html</a>><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 'all' does not exist.<br>=C2=A0 =C2=A0Fi= le 'hello.exe' does not exist.<br>=C2=A0 =C2=A0 =C2=A0File 'hel= lo.o' does not exist.<br>=C2=A0 =C2=A0 Must remake target 'hello.o&= #39;.<br>gcc -c hello.c<br>=C2=A0File 'all' does not exist.<br>=C2= =A0 =C2=A0File 'hello.exe' does not exist.<br>=C2=A0 Must remake ta= rget 'hello.exe'.<br>gcc -o hello.exe hello.o<br>=C2=A0File 'al= l' does not exist.<br>Must remake target 'all'.<br>Successfully= remade target file 'all'.<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'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 <<a href=3D"mailto:fergu= [email protected]" target=3D"_blank">[email protected]</a>> 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, <<a href=3D"mailto:distcc= @lists.samba.org" target=3D"_blank">[email protected]</a>> 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'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'localhost 172.31.33.11 172.= 31.37.109' </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 "Hello World" generate: @echo "Creating empty text files..." touch file-{1..10}.txt clean: @echo "Cleaning up....." 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"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 <<a href=3D"http://gnu.org/li= censes/gpl.html" rel=3D"noreferrer" target=3D"_blank">http://gnu.org/licens= es/gpl.html</a>> 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# </code></pre> <p>Question:</p> <pre><code>1> How do we really know that the two client servers have bee= n used during this build 2> Is setting the client servers same as that of the master, If no is th= ere 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 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 <<a hr= ef=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>>= </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==--