Distcc Cross-Compiling failure [SOLVED]

Ask questions about Arch Linux ARM. Please search before making a new topic.

Distcc Cross-Compiling failure [SOLVED]

Postby graysky » Thu Apr 04, 2013 6:43 pm

Problem: Master device (Rasbperrypi running up-to-date ArchARM) does not distribute compile tasks through distccd.

Example error (from master device):

$this->bbcode_second_pass_code('', '% makepkg -s
...
g++ -DHAVE_CONFIG_H -I. -I../../src/include -I./../include -I/usr/include/p11-kit-1 -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -fpch-preprocess -march=armv6 -mfloat-abi=hard -mfpu=vfp -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wall -g -fexceptions -std=gnu++11 -MT libengine_a-FileZillaEngine.o -MD -MP -MF .deps/libengine_a-FileZillaEngine.Tpo -c -o libengine_a-FileZillaEngine.o `test -f 'FileZillaEngine.cpp' || echo './'`FileZillaEngine.cpp
distcc[10363] ERROR: compile commands.cpp on 10.20.40.101 failed
distcc[10363] (dcc_build_somewhere) Warning: remote compilation of 'commands.cpp' failed, retrying locally
distcc[10363] Warning: failed to distribute commands.cpp to 10.20.40.101, running locally instead
...')

*Both client and master are running distccd
*My distccd.log on the master device remains empty.
*My distccd.log log on the client:
$this->bbcode_second_pass_code('', '
distccd[27179] (dcc_job_summary) client: 10.20.40.115:39202 COMPILE_OK exit:0 sig:0 core:0 ret:0 time:288ms cc /tmp/cgeIGPBS/dummy.c
distccd[27183] (dcc_job_summary) client: 10.20.40.115:39205 COMPILE_ERROR exit:1 sig:0 core:0 ret:0 time:332ms g++ commands.cpp
distccd[27182] (dcc_job_summary) client: 10.20.40.115:39203 COMPILE_ERROR exit:1 sig:0 core:0 ret:0 time:500ms g++ backend.cpp
distccd[27185] (dcc_job_summary) client: 10.20.40.115:39206 COMPILE_ERROR exit:1 sig:0 core:0 ret:0 time:1216ms g++ engineprivate.cpp
distccd[27184] (dcc_job_summary) client: 10.20.40.115:39204 COMPILE_ERROR exit:1 sig:0 core:0 ret:0 time:1592ms g++ ControlSocket.cpp
distccd[27187] (dcc_job_summary) client: 10.20.40.115:39208 COMPILE_ERROR exit:1 sig:0 core:0 ret:0 time:693ms g++ directorycache.cpp
distccd[27186] (dcc_job_summary) client: 10.20.40.115:39207 COMPILE_ERROR exit:1 sig:0 core:0 ret:0 time:1547ms g++ directorylistingparser.cpp
distccd[27188] (dcc_job_summary) client: 10.20.40.115:39209 COMPILE_ERROR exit:1 sig:0 core:0 ret:0 time:906ms g++ directorylisting.cpp
distccd[27190] (dcc_job_summary) client: 10.20.40.115:39211 COMPILE_ERROR exit:1 sig:0 core:0 ret:0 time:886ms g++ FileZillaEngine.cpp
distccd[27189] (dcc_job_summary) client: 10.20.40.115:39210 COMPILE_ERROR exit:1 sig:0 core:0 ret:0 time:1168ms g++ externalipresolver.cpp')

Client:
*Arch x86_64 and is up-to-date (gcc 4.8.0-1 if that is what's mucking this up).
*Using the pre-built crosstool-ng toolchain (http://archlinuxarm.org/builder/xtools/x-tools6h.tar.xz)
$this->bbcode_second_pass_code('', '% tar Jxf x-tools6h.tar.xz -C /mnt/data
% cd /mnt/data/x-tools6h/arm-unknown-linux-gnueabi/bin
% ./link')

*Edited my distccd on the client accordingly; relevant lines:
$this->bbcode_second_pass_code('', 'PATH=/mnt/data/x-tools6h/arm-unknown-linux-gnueabi/bin:$PATH
DISTCC_ARGS="--allow 10.20.40.0/24 --log-file /tmp/distccd.log"')
*Distccd is running on the client with no errors per systemctl.

Master:
*Relevant lines from /etc/makepkg.conf
$this->bbcode_second_pass_code('', 'MAKEFLAGS="-j9"
BUILDENV=(fakeroot distcc color !ccache check !sign)
DISTCC_HOSTS="10.20.40.101"')
Last edited by graysky on Fri Apr 05, 2013 7:06 am, edited 1 time in total.
graysky
Developer
 
Posts: 1876
Joined: Sun Jun 26, 2011 6:56 am
Location: /run/user/1000

Re: Distcc Cross-Compiling failure

Postby WarheadsSE » Thu Apr 04, 2013 7:59 pm

The pi will have issues with 9 threads, back it down to something sane, 3 is pushing it.
Otherwise nothing is jumping at me immediately. Try my distcc-alarm package @ github.com/WarheadsSE/PKGs
Core Developer
Remember: Arch Linux ARM is entirely community donation supported!
WarheadsSE
Developer
 
Posts: 6807
Joined: Mon Oct 18, 2010 2:12 pm

Re: Distcc Cross-Compiling failure

Postby graysky » Thu Apr 04, 2013 8:43 pm

$this->bbcode_second_pass_quote('WarheadsSE', 'T')he pi will have issues with 9 threads, back it down to something sane, 3 is pushing it.
Otherwise nothing is jumping at me immediately. Try my distcc-alarm package @ github.com/WarheadsSE/PKGs


Thanks for the time to review my setup.

1) Are you able to compile Pi --> x86_64 using an updated Arch box (i.e. with gcc 4.8.0)?
2) Am I using your pre-built toolchains correctly? It wasn't clear to me from reading the guide if I am doing it correctly using your tar.xz as am I. In other words, I skipped from "Pre-built crosstool-ng toolchains" to "Make nice with distcc." The `link` script I ran was included in your tar.xz package and did make some additional links but mostly threw errors due to existing ones:

$this->bbcode_second_pass_code('', '% tar Jxf x-tools6h.tar.xz
% cd arm-unknown-linux-gnueabi/bin
% ls | wc -l
91
% pwd
/mnt/data/x-tools6h/arm-unknown-linux-gnueabi/bin
% ./link
ln: failed to create symbolic link ‘addr2line’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-addr2line’: File exists
ln: failed to create symbolic link ‘ar’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ar’: File exists
ln: failed to create symbolic link ‘addr2line’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-addr2line’: File exists
ln: failed to create symbolic link ‘ar’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ar’: File exists
ln: failed to create symbolic link ‘as’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-as’: File exists
ln: failed to create symbolic link ‘c++’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-c++’: File exists
ln: failed to create symbolic link ‘cc’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-cc’: File exists
ln: failed to create symbolic link ‘c++filt’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-c++filt’: File exists
ln: failed to create symbolic link ‘cpp’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-cpp’: File exists
ln: failed to create symbolic link ‘ct-ng.config’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ct-ng.config’: File exists
ln: failed to create symbolic link ‘elfedit’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-elfedit’: File exists
ln: failed to create symbolic link ‘g++’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-g++’: File exists
ln: failed to create symbolic link ‘gcc’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc’: File exists
ln: failed to create symbolic link ‘gcc-4.7.2’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-4.7.2’: File exists
ln: failed to create symbolic link ‘gcc-ar’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-ar’: File exists
ln: failed to create symbolic link ‘gcc-nm’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-nm’: File exists
ln: failed to create symbolic link ‘gcc-ranlib’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-ranlib’: File exists
ln: failed to create symbolic link ‘gcov’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcov’: File exists
ln: failed to create symbolic link ‘gfortran’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gfortran’: File exists
ln: failed to create symbolic link ‘gprof’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gprof’: File exists
ln: failed to create symbolic link ‘ld’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ld’: File exists
ln: failed to create symbolic link ‘ld.bfd’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ld.bfd’: File exists
ln: failed to create symbolic link ‘ldd’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ldd’: File exists
ln: failed to create symbolic link ‘nm’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-nm’: File exists
ln: failed to create symbolic link ‘objcopy’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-objcopy’: File exists
ln: failed to create symbolic link ‘objdump’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-objdump’: File exists
ln: failed to create symbolic link ‘populate’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-populate’: File exists
ln: failed to create symbolic link ‘ranlib’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ranlib’: File exists
ln: failed to create symbolic link ‘readelf’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-readelf’: File exists
ln: failed to create symbolic link ‘size’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-size’: File exists
ln: failed to create symbolic link ‘strings’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-strings’: File exists
ln: failed to create symbolic link ‘strip’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-strip’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-addr2line’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ar’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-as’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-c++’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-cc’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-c++filt’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-cpp’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ct-ng.config’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-elfedit’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-g++’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-4.7.2’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-ar’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-nm’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-ranlib’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcov’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gfortran’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gprof’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ld’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ld.bfd’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ldd’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-nm’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-objcopy’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-objdump’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-populate’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ranlib’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-readelf’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-size’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-strings’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-strip’: File exists
ln: failed to create symbolic link ‘as’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-as’: File exists
ln: failed to create symbolic link ‘c++’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-c++’: File exists
ln: failed to create symbolic link ‘cc’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-cc’: File exists
ln: failed to create symbolic link ‘c++filt’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-c++filt’: File exists
ln: failed to create symbolic link ‘cpp’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-cpp’: File exists
ln: failed to create symbolic link ‘ct-ng.config’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ct-ng.config’: File exists
ln: failed to create symbolic link ‘elfedit’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-elfedit’: File exists
ln: failed to create symbolic link ‘g++’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-g++’: File exists
ln: failed to create symbolic link ‘gcc’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc’: File exists
ln: failed to create symbolic link ‘gcc-4.7.2’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-4.7.2’: File exists
ln: failed to create symbolic link ‘gcc-ar’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-ar’: File exists
ln: failed to create symbolic link ‘gcc-nm’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-nm’: File exists
ln: failed to create symbolic link ‘gcc-ranlib’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcc-ranlib’: File exists
ln: failed to create symbolic link ‘gcov’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gcov’: File exists
ln: failed to create symbolic link ‘gfortran’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gfortran’: File exists
ln: failed to create symbolic link ‘gprof’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-gprof’: File exists
ln: failed to create symbolic link ‘ld’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ld’: File exists
ln: failed to create symbolic link ‘ld.bfd’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ld.bfd’: File exists
ln: failed to create symbolic link ‘ldd’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ldd’: File exists
ln: failed to create symbolic link ‘nm’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-nm’: File exists
ln: failed to create symbolic link ‘objcopy’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-objcopy’: File exists
ln: failed to create symbolic link ‘objdump’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-objdump’: File exists
ln: failed to create symbolic link ‘populate’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-populate’: File exists
ln: failed to create symbolic link ‘ranlib’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-ranlib’: File exists
ln: failed to create symbolic link ‘readelf’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-readelf’: File exists
ln: failed to create symbolic link ‘size’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-size’: File exists
ln: failed to create symbolic link ‘strings’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-strings’: File exists
ln: failed to create symbolic link ‘strip’: File exists
ln: failed to create symbolic link ‘armv6l-unknown-linux-gnueabihf-strip’: File exists
% ls | wc -l
121')

Thanks for your consideration.
graysky
Developer
 
Posts: 1876
Joined: Sun Jun 26, 2011 6:56 am
Location: /run/user/1000

Re: Distcc Cross-Compiling failure

Postby WarheadsSE » Thu Apr 04, 2013 11:52 pm

Seriously:
https://github.com/WarheadsSE/PKGs/tree ... tccd-alarm

Solves all your issues, and then all you have to do it point distcc hosts to IP:PORT(my package makes it 3633)
Very simple, sets it all up for you.
Core Developer
Remember: Arch Linux ARM is entirely community donation supported!
WarheadsSE
Developer
 
Posts: 6807
Joined: Mon Oct 18, 2010 2:12 pm

Re: Distcc Cross-Compiling failure

Postby graysky » Fri Apr 05, 2013 6:13 am

Thanks. I actually got it to work by a simple reboot?! :ugeek:

Here is a test compiling a preconfigured pacman (RPi modest overclock)[1].

$this->bbcode_second_pass_code('', '
No distccd: make -j2 677.82s user 19.27s system 98% cpu 11:46.99 total

With distccd: make -j2 417.44s user 16.84s system 96% cpu 7:29.50 total
With distccd: make -j3 422.21s user 16.18s system 97% cpu 7:30.75 total
With distccd: make -j8 413.49s user 15.73s system 97% cpu 7:20.96 total
')

Note that these are just n=1 runs. I didn't want to see about the robustness of -j3 vs -j8.

1. /boot/config.txt:
$this->bbcode_second_pass_code('', 'arm_freq=800
core_freq=300
sdram_freq=400
over_voltage=0')
graysky
Developer
 
Posts: 1876
Joined: Sun Jun 26, 2011 6:56 am
Location: /run/user/1000

Re: Distcc Cross-Compiling failure

Postby dhead666 » Wed May 22, 2013 3:20 am

$this->bbcode_second_pass_quote('WarheadsSE', 'S')eriously:
https://github.com/WarheadsSE/PKGs/tree ... tccd-alarm

Solves all your issues, and then all you have to do it point distcc hosts to IP:PORT(my package makes it 3633)
Very simple, sets it all up for you.


Thanks WarheadsSE,
consider linking to your package on the "Distcc Cross-Compiling" page,
I had some permissions issues while trying to set distcc up and your package saved quite some time.
Pogoplug Series 4 - Network Storage and Music Server: NFS/TVHeadend
Cubox-i2 - Applications Server: Lighttpd/CherryMusic/HTPCManager/Transmission/Couchpotato/SickBeard/OpenVPN
Samsung Chromebook: Chroach in ChromeOS
dhead666
 
Posts: 116
Joined: Sat Aug 11, 2012 10:25 pm


Return to User Questions

Who is online

Users browsing this forum: No registered users and 4 guests