Error when cross compiling

View: New views
7 Messages — Rating Filter:   Alert me  

Error when cross compiling

by Daniel Jabbour-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I recently setup a three-node distcc setup. Each node has distccd  
running, and a cross-compile toolchain installed in /opt/toolchain.

I am able to, on each host, launch my cross-compiler like this:
arch-linux-gcc test.c -o test.o

And it works.

However, when I try to run distcc from one of the hosts like this:
distcc arch-linux-gcc -c test.c

It gives me the following output on that box:
distccd[31971] (dcc_execvp) ERROR: failed to exec arch-linux-gcc: No  
such file or directory
distcc[30567] ERROR: compile test.c on laplab1:Segmentation fault
distcc[30567] Warning: failed to distribute test.c to laplab1, running  
locally instead

The file compiles locally, but doesn't seem to use the remote host to  
compile.

In the remote host log (/var/log/distccd.log) the following was output:
distccd[31795] (dcc_check_client) connection from 192.168.1.220:53576
distccd[31795] compile from test.c to test.o
distccd[31795] (dcc_r_file_timed) 78 bytes received in 0.000119s, rate  
640kB/s
distccd[31795] (dcc_collect_child) cc times: user 0.000000s, system  
0.000999s, 79 minflt, 0 majflt
distccd[31795] arch-linux-gcc test.c on localhost:Segmentation fault
distccd[31795] job complete

Anyone have any ideas what might be going wrong? I assume this has to  
be some kind of misconfiguration... but so far looking at the distcc  
docs and web searching hasn't turned up any obvious mistakes.

Both hosts are using distcc version 2.18.3.

Thanks kindly,

Daniel

--
Daniel Jabbour
Software Engineer
Laptouch, Inc.



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

Re: Error when cross compiling

by Joe MacDonald-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



On Tue, Mar 31, 2009 at 9:38 PM, Daniel Jabbour <daniel@...> wrote:
Hi,

I recently setup a three-node distcc setup. Each node has distccd running, and a cross-compile toolchain installed in /opt/toolchain.

I am able to, on each host, launch my cross-compiler like this:
arch-linux-gcc test.c -o test.o

And it works.

However, when I try to run distcc from one of the hosts like this:
distcc arch-linux-gcc -c test.c

It gives me the following output on that box:
distccd[31971] (dcc_execvp) ERROR: failed to exec arch-linux-gcc: No such file or directory

Knee-jerk reaction is that arch-linux-gcc isn't in DISTCC_PATH (or the PATH variable of the environment where the daemon is running).  When you start the daemon on the slaves, are you seeing anything in the log about the *PATH variables?

That's just a guess, though.  Not based on any significant amount of thought / consideration.  :-)

-J.
 

distcc[30567] ERROR: compile test.c on laplab1:Segmentation fault
distcc[30567] Warning: failed to distribute test.c to laplab1, running locally instead

The file compiles locally, but doesn't seem to use the remote host to compile.

In the remote host log (/var/log/distccd.log) the following was output:
distccd[31795] (dcc_check_client) connection from 192.168.1.220:53576
distccd[31795] compile from test.c to test.o
distccd[31795] (dcc_r_file_timed) 78 bytes received in 0.000119s, rate 640kB/s
distccd[31795] (dcc_collect_child) cc times: user 0.000000s, system 0.000999s, 79 minflt, 0 majflt
distccd[31795] arch-linux-gcc test.c on localhost:Segmentation fault
distccd[31795] job complete

Anyone have any ideas what might be going wrong? I assume this has to be some kind of misconfiguration... but so far looking at the distcc docs and web searching hasn't turned up any obvious mistakes.

Both hosts are using distcc version 2.18.3.

Thanks kindly,

Daniel

--
Daniel Jabbour
Software Engineer
Laptouch, Inc.



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



--
Joe MacDonald
:wq

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

Re: Error when cross compiling

by Daniel Jabbour-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Joe-

In the end you were right, it wasn't in the PATH. I was confused  
because:
(a) It said something about a seg fault
(b) I had added the toolchain to the PATH variable via /etc/profile.d/
toolchainpath

I guess the daemon doesn't source the /etc/profile.d scripts, whoops!

Daniel

--
Daniel Jabbour
Software Engineer
Laptouch, Inc.



On Apr 1, 2009, at 11:22 AM, Joe MacDonald wrote:

> Knee-jerk reaction is that arch-linux-gcc isn't in DISTCC_PATH (or  
> the PATH variable of the environment where the daemon is running).  
> When you start the daemon on the slaves, are you seeing anything in  
> the log about the *PATH variables?
>
> That's just a guess, though.  Not based on any significant amount of  
> thought / consideration.  :-)

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

Re: Error when cross compiling

by DaNiMoTh :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/4/1 Daniel Jabbour <daniel@...>:

> Joe-
>
> In the end you were right, it wasn't in the PATH. I was confused because:
> (a) It said something about a seg fault
> (b) I had added the toolchain to the PATH variable via
> /etc/profile.d/toolchainpath
>
> I guess the daemon doesn't source the /etc/profile.d scripts, whoops!
>
> Daniel
>

Maybe related:

Sometimes when using cross-compilers the users must set the dir where
the cross tools stay in the PATH. But this, if done globally, may
break the compilation for the local machine.

Example:
/opt/cross-ppc/bin/gcc
..
export PATH="/opt/cross-ppc/bin:$PATH"
"start distccd with some rc script"

Now, if I start a compilation ( example, the kernel ) the Makefile
reads the PATH, and try to use gcc from the first place (
/opt/cross-ppc/bin ). But this it wrong !

So, there is an alternative method to handle these situations ?
IMHO the simpliest way is adding an environment variable or a command
line argument that specifies the path where distccd needs to look.

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

Re: Error when cross compiling

by ibaker :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


>
> So, there is an alternative method to handle these situations ?
> IMHO the simpliest way is adding an environment variable or a command
> line argument that specifies the path where distccd needs to look.
>

Or specify the absolute path to whichever compiler you want to use on the
client, this is then passed verbatim to the server and the compiler is run
from that directory (from the man page):

distcc /usr/local/bin/gcc-3.1415 -c hello.c

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

Re: Error when cross compiling

by DaNiMoTh :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/4/2  <ibaker@...>:
>
[cut]
>
> Or specify the absolute path to whichever compiler you want to use on the
> client, this is then passed verbatim to the server and the compiler is run
> from that directory (from the man page):
>
> distcc /usr/local/bin/gcc-3.1415 -c hello.c
>
> Ian

Sure, but with this method I can't add localhost to DISTCC_HOSTS if I
have gcc in other location ( like /usr/bin ), and can cause some
problems with system that use symlink to setup a build environment. Am
I right?
__
distcc mailing list            http://distcc.samba.org/
To unsubscribe or change options:
https://lists.samba.org/mailman/listinfo/distcc

Re: Error when cross compiling

by Daniel Jabbour-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Actually,

I had tried the absolute path and got the same earlier error. But  
after editing the init.d script so PATH was being populated properly  
everything worked fine.

Daniel

--
Daniel Jabbour
Software Engineer
Laptouch, Inc.



On Apr 2, 2009, at 2:58 AM, <ibaker@...>  
<ibaker@...> wrote:

>
>>
>> So, there is an alternative method to handle these situations ?
>> IMHO the simpliest way is adding an environment variable or a command
>> line argument that specifies the path where distccd needs to look.
>>
>
> Or specify the absolute path to whichever compiler you want to use  
> on the client, this is then passed verbatim to the server and the  
> compiler is run from that directory (from the man page):
>
> distcc /usr/local/bin/gcc-3.1415 -c hello.c
>
> Ian

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