Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
I fail to distcc, also need help with X11 ABI
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
GummyGum173
n00b
n00b


Joined: 09 Apr 2014
Posts: 50

PostPosted: Sat Nov 22, 2014 8:57 pm    Post subject: I fail to distcc, also need help with X11 ABI Reply with quote

Hi!

So, I have this ARMv7a device which I installed Gentoo on (to be precise, Asus TF201).
I also have my desktop (amd64) which rubs Gentoo as well.

I have installed distcc on both of them, on my desktop I have:
--allow 193.168.1.22 --listen 192.168.1.22

And on my Asus:
/etc/distcc/hosts
Code:
192.168.1.4

In my make.conf on the Asus I have set FEATURES="distcc" and MAKEOPTS="j17 l4".

When I run
Code:
/etc/init.d/distccd start

I get a permission error on opening /var/log/distccd.log, but distccd still starts.

Now, all this being said, when I emerge on my Asus, portage would simply compile on the local host, instead trying to compile it on 192.168.1.4.
I also have disttmon-gui on my Desktop which reports nothing.

I can't access logs on neither of the devices as the log is never created.

Why is this happening?


Also, on a side note:
Latest NVIDIA Tegra drivers support up to ABI 14, while my x11 install is ABI 15.
1. How can I and to which version should I downgrade X11 to?
2. Will an older ABI require and older KDE install? If so, what version?

thank you so much!
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54237
Location: 56N 3W

PostPosted: Sat Nov 22, 2014 9:50 pm    Post subject: Reply with quote

GummyGum173,

You run
Code:
/etc/init.d/distccd start
on your helpers.
The distcc monitor needs to run on your ARM system.

You don't mention crossdev and building a cross toolchain on the amd64.
Thats key, so you have a compiler that can emit ARM code.

Lastly, what do you have in CFLAGS on the ARM box?
I don't think -march=native works on arm anyway, but distcc is smart enough to spot that and not distribute if its in use.
You would really hate to get amd64 code back from your helper.

Oh, once you have cross distcc working, use pump mode.
pump emerge ...
More work is distributed that way.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
GummyGum173
n00b
n00b


Joined: 09 Apr 2014
Posts: 50

PostPosted: Sun Nov 23, 2014 5:32 pm    Post subject: Reply with quote

NeddySeagoon wrote:
GummyGum173,

You run
Code:
/etc/init.d/distccd start
on your helpers.
The distcc monitor needs to run on your ARM system.

You don't mention crossdev and building a cross toolchain on the amd64.
Thats key, so you have a compiler that can emit ARM code.

Lastly, what do you have in CFLAGS on the ARM box?
I don't think -march=native works on arm anyway, but distcc is smart enough to spot that and not distribute if its in use.
You would really hate to get amd64 code back from your helper.

Oh, once you have cross distcc working, use pump mode.
pump emerge ...
More work is distributed that way.


Hi, thanks a lot for the tip!
I now installed crossdev on my main machine and set the arm toolchain, but still, distccmon (on my arm machine) shows nothing and once again I compile localy.
At first, using pump threw me an error about failing to connect to the host, which means that it at least tries to (I fixed that error by setting FEATURES="distcc-pump").

But again, it won't send the compile to my main machine.

Code:

CFLAGS="-O2 -pipe -march=armv7a -mfpu=vfpv3-d16 -mfloat-abi=hard"
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54237
Location: 56N 3W

PostPosted: Sun Nov 23, 2014 5:53 pm    Post subject: Reply with quote

GummyGum173,

Can you cross compile locally on your amd64?
That will at least test your ARM toolchain. You can't run the binaries on the amd64 but builds should still work.
Lots of stuff will not cross build cleanly.

Code:
gcc-config -l
should show two compilers selected.
Your native amd64 and the arm compiler too. Maybe you need to select the arm compiler.

What does
GummyGum173 wrote:
distccmon (on my arm machine) shows nothing
mean?
It should show all the jobs being run and where they are being run. If you just get a blank screen, distccmon is looking in the wrong place or does not have perminnions to read the data.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
GummyGum173
n00b
n00b


Joined: 09 Apr 2014
Posts: 50

PostPosted: Sun Nov 23, 2014 6:25 pm    Post subject: Reply with quote

NeddySeagoon wrote:
GummyGum173,

Can you cross compile locally on your amd64?
That will at least test your ARM toolchain. You can't run the binaries on the amd64 but builds should still work.
Lots of stuff will not cross build cleanly.

Code:
gcc-config -l
should show two compilers selected.
Your native amd64 and the arm compiler too. Maybe you need to select the arm compiler.

What does
GummyGum173 wrote:
distccmon (on my arm machine) shows nothing
mean?
It should show all the jobs being run and where they are being run. If you just get a blank screen, distccmon is looking in the wrong place or does not have perminnions to read the data.


Hi again,

gcc-config -l
Code:
 [1] armv7a-hardfloat-linux-gnueabi-4.8.3 *

 [2] x86_64-pc-linux-gnu-4.8.3 *


and when I run distccmon-text (as my ARM device has no x11 installed) I simply get no output, just a blank space.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54237
Location: 56N 3W

PostPosted: Sun Nov 23, 2014 7:19 pm    Post subject: Reply with quote

GummyGum173,

As root, I have to run
Code:
DISTCC_DIR=/var/tmp/portage/portage/.distcc distccmon-text 5
to see what distcc is doing on my Raspberry Pi
This install on my amd64 does not have crossdev installed, so the output on the Pi looks like.
Code:
 13908  Compile     paxelf.c                                      localhost[0]

 13908  Compile     paxelf.c                                      localhost[0]


 13925  Compile     xfuncs.c                                      localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]
its only allowed to run one job.

On the ARM bok what do you have in /etc/distcc/hosts?
The IP ordering is the order in which helpers are assigned jobs. Its a really bad idea to have localhost first in that list.
In fact, localhost need not appear at all, as its the fallback if distribution fails.

-- edit --

Nothing is fine when there is a process that cannot be distributed goinh on, like unpacking sources, patching, linking? installing, compressing man pages. etc.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
GummyGum173
n00b
n00b


Joined: 09 Apr 2014
Posts: 50

PostPosted: Sun Nov 23, 2014 8:29 pm    Post subject: Reply with quote

NeddySeagoon wrote:
GummyGum173,

As root, I have to run
Code:
DISTCC_DIR=/var/tmp/portage/portage/.distcc distccmon-text 5
to see what distcc is doing on my Raspberry Pi
This install on my amd64 does not have crossdev installed, so the output on the Pi looks like.
Code:
 13908  Compile     paxelf.c                                      localhost[0]

 13908  Compile     paxelf.c                                      localhost[0]


 13925  Compile     xfuncs.c                                      localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]

 13930  Compile     scanelf.c                                     localhost[0]
its only allowed to run one job.

On the ARM bok what do you have in /etc/distcc/hosts?
The IP ordering is the order in which helpers are assigned jobs. Its a really bad idea to have localhost first in that list.
In fact, localhost need not appear at all, as its the fallback if distribution fails.

-- edit --

Nothing is fine when there is a process that cannot be distributed goinh on, like unpacking sources, patching, linking? installing, compressing man pages. etc.


Yes, setting DISTCC_DIR did the trick!
I am now able to start figuring things out.

distccmon says:
Code:

6707 Blocked [0]
6716 Blocked [0]
6736 Blocked [0]
6825 Blocked [0]
6477 Blocked [0]
6476 Blocked [0]
6494 Blocked [0]
6499 Blocked [0]
6507 Blocked [0]
6515 Blocked [0]
6841 Blocked [0]
6840 Blocked [0]
6630 Send io-gif.c 192.168.1.4[0]

6515 Blocked [0]
6477 Preprocess gdk-pixbuf-enum-types.c 192.168.1.4[0]
6928 Compile io-xpm.c 192.168.1.4[1]
6499 Preprocess gdk-pixbuf-scaled-anim.c 192.168.1.4[1]
6507 Preprocess io-png.c 192.168.1.4[2]


And then it starts compiling locally.
So, is that a problem? Or does gdk-pixbuf request things to compile locally? And why did it spam with "Blocked " at the beginning?

The only host in my /etc/distcc/hosts file is 192.168.1.4 - my main (amd64) machine.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54237
Location: 56N 3W

PostPosted: Sun Nov 23, 2014 9:02 pm    Post subject: Reply with quote

[GummyGum173,


Quote:
The only host in my /etc/distcc/hosts file is 192.168.1.4 - my main (amd64) machine

Code:
6477 Preprocess gdk-pixbuf-enum-types.c 192.168.1.4[0]
6928 Compile io-xpm.c 192.168.1.4[1]
6499 Preprocess gdk-pixbuf-scaled-anim.c 192.168.1.4[1]
6507 Preprocess io-png.c 192.168.1.4[2]


All that is going on on 192.168.1.4, so its working.
It shows 3 jobs 192.168.1.4[0..2]

I think 3 is the default unless you allow more in /etc/distcc/hosts.
You need to match the MAKEOPTS on the arm box to the 192.168.1.4/<jobs> in /etc/distcc/hosts or when it has distributed <jobs>, any excess permitted by MAKEOPTS on the ARM will be run locally.
On my Pi I have
Code:
192.168.100.20/8,lzo,cpp
in /etc/distcc/hosts, so its allowed to send 8 jobs to my amd64.
The Pi has MAKEOPTS="-j8" too, so it should never build locally.

One nasty package is gcc. The bootstrap cannot be distributed. Watching a Pi with MAKEOPTS="-j8" building gcc will bring tears to your eyes.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
GummyGum173
n00b
n00b


Joined: 09 Apr 2014
Posts: 50

PostPosted: Mon Nov 24, 2014 12:42 pm    Post subject: Reply with quote

NeddySeagoon wrote:
[GummyGum173,


Quote:
The only host in my /etc/distcc/hosts file is 192.168.1.4 - my main (amd64) machine

Code:
6477 Preprocess gdk-pixbuf-enum-types.c 192.168.1.4[0]
6928 Compile io-xpm.c 192.168.1.4[1]
6499 Preprocess gdk-pixbuf-scaled-anim.c 192.168.1.4[1]
6507 Preprocess io-png.c 192.168.1.4[2]


All that is going on on 192.168.1.4, so its working.
It shows 3 jobs 192.168.1.4[0..2]

I think 3 is the default unless you allow more in /etc/distcc/hosts.
You need to match the MAKEOPTS on the arm box to the 192.168.1.4/<jobs> in /etc/distcc/hosts or when it has distributed <jobs>, any excess permitted by MAKEOPTS on the ARM will be run locally.
On my Pi I have
Code:
192.168.100.20/8,lzo,cpp
in /etc/distcc/hosts, so its allowed to send 8 jobs to my amd64.
The Pi has MAKEOPTS="-j8" too, so it should never build locally.

One nasty package is gcc. The bootstrap cannot be distributed. Watching a Pi with MAKEOPTS="-j8" building gcc will bring tears to your eyes.


Hi again,

I edited hosts to
Code:
 192.168.1.4/17,cpp,lzo

But I get the exact same output, 3 jobs show that they are sent to the helper host, then it continues to compile localy: :\

Is it possible, that like GCC, gdk-pixbuf requires to be compiled locally?



Edit: reading through gdk-pixbuf logs, I find that it fails to compile on the host, so it compiles locally.
Thats a shame, as I fail to compile that package locally, too :\
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54237
Location: 56N 3W

PostPosted: Mon Nov 24, 2014 6:30 pm    Post subject: Reply with quote

GummyGum173,

Pastebin the build log for the failed package please.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum