Discussion:
[gentoo-user] Does gcc not distribute with distcc?
(too old to reply)
Michael Sullivan
2007-10-18 20:30:08 UTC
Permalink
I have a really old PC that I use as a backup server if our main server
goes down. (This is a hobbyist network.) I'm trying to update the
software on it. (It hasn't been updated since last April). I've set up
distcc following the guide at http://www.gentoo.org/doc/en/distcc.xml
I tried updating mysql on it and it seemed to distribute correctly, but
gcc does not. Does gcc not distribute?
--
gentoo-***@gentoo.org mailing list
Alex Schuster
2007-10-19 14:20:14 UTC
Permalink
Post by Michael Sullivan
I have a really old PC that I use as a backup server if our main server
goes down. (This is a hobbyist network.) I'm trying to update the
software on it. (It hasn't been updated since last April). I've set up
distcc following the guide at http://www.gentoo.org/doc/en/distcc.xml
I tried updating mysql on it and it seemed to distribute correctly, but
gcc does not. Does gcc not distribute?
I just tried that, and it distributes fine. I also think it should, unless
there is a MAKEOPTS="${MAKEOPTS} -j1" or something similar in the ebuild.

Do you have logging activated in /etc/conf.d/distccd on the host providing
the distcc service? Is there something in your syslog? There also is
distcc-mon, but I did not have success with that, so I just look at the
logs to see what's wrong.

Alex
--
gentoo-***@gentoo.org mailing list
Michael Sullivan
2007-10-19 16:30:15 UTC
Permalink
Post by Alex Schuster
Post by Michael Sullivan
I have a really old PC that I use as a backup server if our main server
goes down. (This is a hobbyist network.) I'm trying to update the
software on it. (It hasn't been updated since last April). I've set up
distcc following the guide at http://www.gentoo.org/doc/en/distcc.xml
I tried updating mysql on it and it seemed to distribute correctly, but
gcc does not. Does gcc not distribute?
I just tried that, and it distributes fine. I also think it should, unless
there is a MAKEOPTS="${MAKEOPTS} -j1" or something similar in the ebuild.
Do you have logging activated in /etc/conf.d/distccd on the host providing
the distcc service? Is there something in your syslog? There also is
distcc-mon, but I did not have success with that, so I just look at the
logs to see what's wrong.
Alex
Is this correct? I have three fast machines, 192.168.1.2 through
192.168.1.4 and a slow machine I want to distribute for at 192.168.1.5.
Here's /etc/conf.d/distccd on the slow one:

# /etc/conf.d/distccd: config file for /etc/init.d/distccd

DISTCCD_OPTS=""

# this is the distccd executable
DISTCCD_EXEC="/usr/bin/distccd"

# this is where distccd will store its pid file
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"

# set this option to run distccd with extra parameters
# Default port is 3632. For most people the default is okay.
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"

# Logging
# You can change some logging options here:
# --log-file FILE
# --log-level LEVEL [critical,error,warning, notice, info, debug]
#
# Leaving --log-file blank will log to syslog
# example: --log-file /dev/null --log-level warning
# example: --log-level critical

DISTCCD_OPTS="${DISTCCD_OPTS} --log-level info
--log-file /var/log/distccd"

# SECURITY NOTICE:
# It is HIGHLY recomended that you use the --listen option
# for increased security. You can specify an IP to permit connections
# from or a CIDR mask
# --listen accepts only a single IP
# --allow is now mandatory as of distcc-2.18.
# example: --allow 192.168.0.0/24
# example: --allow 192.168.0.5 --allow 192.168.0.150
# example: --listen 192.168.0.2
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.1.2 --allow 192.168.1.3
--allow 192.168.1.4"
#DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.0.2"

# set this for niceness
# Default is 15
DISTCCD_NICE="15"

And here's what it says on the faster machines:

# /etc/conf.d/distccd: config file for /etc/init.d/distccd

DISTCCD_OPTS=""

# this is the distccd executable
DISTCCD_EXEC="/usr/bin/distccd"

# this is where distccd will store its pid file
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"

# set this option to run distccd with extra parameters
# Default port is 3632. For most people the default is okay.
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"

# Logging
# You can change some logging options here:
# --log-file FILE
# --log-level LEVEL [critical,error,warning, notice, info, debug]
#
# Leaving --log-file blank will log to syslog
# example: --log-file /dev/null --log-level warning
# example: --log-level critical

DISTCCD_OPTS="${DISTCCD_OPTS} --log-level info
--log-file /var/log/distccd"

# SECURITY NOTICE:
# It is HIGHLY recomended that you use the --listen option
# for increased security. You can specify an IP to permit connections
# from or a CIDR mask
# --listen accepts only a single IP
# --allow is now mandatory as of distcc-2.18.
# example: --allow 192.168.0.0/24
# example: --allow 192.168.0.5 --allow 192.168.0.150
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.1.5"
#DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.0.2"

# set this for niceness
# Default is 15
DISTCCD_NICE="15"
--
gentoo-***@gentoo.org mailing list
Alex Schuster
2007-10-19 18:20:11 UTC
Permalink
[...]

So you got my answer, but I for myself did not yet see it arrive on the
list. Strange.
Post by Michael Sullivan
Is this correct? I have three fast machines, 192.168.1.2 through
192.168.1.4 and a slow machine I want to distribute for at 192.168.1.5.
I think this one's not necessary, you only need to run the daemon on the
fast machines.
Looks fine to me. Do you get any output in the log file?

Alex
--
gentoo-***@gentoo.org mailing list
Michael Sullivan
2007-10-19 19:10:06 UTC
Permalink
Post by Alex Schuster
[...]
So you got my answer, but I for myself did not yet see it arrive on the
list. Strange.
Post by Michael Sullivan
Is this correct? I have three fast machines, 192.168.1.2 through
192.168.1.4 and a slow machine I want to distribute for at 192.168.1.5.
I think this one's not necessary, you only need to run the daemon on the
fast machines.
Looks fine to me. Do you get any output in the log file?
Alex
Not anything relevant; just lines about starting distccd...
--
gentoo-***@gentoo.org mailing list
Michael Sullivan
2007-10-19 23:10:17 UTC
Permalink
Post by Alex Schuster
[...]
So you got my answer, but I for myself did not yet see it arrive on the
list. Strange.
Post by Michael Sullivan
Is this correct? I have three fast machines, 192.168.1.2 through
192.168.1.4 and a slow machine I want to distribute for at 192.168.1.5.
I think this one's not necessary, you only need to run the daemon on the
fast machines.
If I'm not running distccd on the slow machine, how does it know to
distribute the load amongst the other three?
Post by Alex Schuster
Looks fine to me. Do you get any output in the log file?
Alex
--
gentoo-***@gentoo.org mailing list
Alex Schuster
2007-10-19 23:50:06 UTC
Permalink
Post by Michael Sullivan
Post by Alex Schuster
Post by Michael Sullivan
Is this correct? I have three fast machines, 192.168.1.2 through
192.168.1.4 and a slow machine I want to distribute for at
I think this one's not necessary, you only need to run the daemon on
the fast machines.
If I'm not running distccd on the slow machine, how does it know to
distribute the load amongst the other three?
Oh, you're probably missing the distcc-config command? Use this:
distcc-config --set-hosts "192.168.1.2 192.168.1.3 192.168.1.4"

distcc works with a wrapper. When gcc is called, in
fact /usr/lib/distcc/bin/gcc is called (*), which distributes to the hosts
defined in /etc/distcc/hosts. Which is set by distcc-config.

(*) If ccache is installed (I hope!), another wrapper for gcc which is
called even before distcc is /usr/lib/ccache/bin/gcc. If the input is not
already cached, /usr/lib/distcc/bin/gcc is called.

Alex
--
gentoo-***@gentoo.org mailing list
Michael Sullivan
2007-10-20 00:30:14 UTC
Permalink
Post by Alex Schuster
Post by Michael Sullivan
Post by Alex Schuster
Post by Michael Sullivan
Is this correct? I have three fast machines, 192.168.1.2 through
192.168.1.4 and a slow machine I want to distribute for at
I think this one's not necessary, you only need to run the daemon on
the fast machines.
If I'm not running distccd on the slow machine, how does it know to
distribute the load amongst the other three?
distcc-config --set-hosts "192.168.1.2 192.168.1.3 192.168.1.4"
distcc works with a wrapper. When gcc is called, in
fact /usr/lib/distcc/bin/gcc is called (*), which distributes to the hosts
defined in /etc/distcc/hosts. Which is set by distcc-config.
(*) If ccache is installed (I hope!), another wrapper for gcc which is
called even before distcc is /usr/lib/ccache/bin/gcc. If the input is not
already cached, /usr/lib/distcc/bin/gcc is called.
Alex
I ran 'which gcc' on the slow machine and this came back:

bullet portage # ls -l /usr/bin/gcc
-rwxr-xr-x 1 root root 8232 Feb 10 2007 /usr/bin/gcc

Do I need to change this so that it points to /usr/lib/distcc/bin/gcc?
--
gentoo-***@gentoo.org mailing list
Alex Schuster
2007-10-20 01:50:10 UTC
Permalink
Post by Michael Sullivan
Post by Alex Schuster
distcc works with a wrapper. When gcc is called, in
fact /usr/lib/distcc/bin/gcc is called (*), which distributes to the
hosts defined in /etc/distcc/hosts. Which is set by distcc-config.
(*) If ccache is installed (I hope!), another wrapper for gcc which is
called even before distcc is /usr/lib/ccache/bin/gcc. If the input is
not already cached, /usr/lib/distcc/bin/gcc is called.
Alex
I recommend using the bash builtin 'type gcc' for such things, as this would
also list shell functions and aliases.
Post by Michael Sullivan
bullet portage # ls -l /usr/bin/gcc
-rwxr-xr-x 1 root root 8232 Feb 10 2007 /usr/bin/gcc
Do I need to change this so that it points to /usr/lib/distcc/bin/gcc?
Accordig to <http://www.gentoo.org/doc/en/distcc.xml>, this is not
necessary. When "distcc" is listened in the FEATURES list
in /etc/make.conf, emerge will use it. Well, should use it.

If you like to use ccache and distcc for stuff you compile manually, add
something like
PATH=/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}
to your /etc/profile.

***@weird ~ --> type gcc
gcc is /usr/lib/ccache/bin/gcc

Alex
--
gentoo-***@gentoo.org mailing list
Loading...