From: Fernando Rodriguez <frodriguez.developer@outlook.com>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user] Difference between "normal distcc" and "distcc with pump"?
Date: Sun, 3 May 2015 14:57:46 -0400 [thread overview]
Message-ID: <BLU436-SMTP160514BB0A7E63385C39BE28DD30@phx.gbl> (raw)
In-Reply-To: <20150503011001.GA30510@waltdnes.org>
On Saturday, May 02, 2015 9:10:01 PM Walter Dnes wrote:
> I ran into a couple of problems with distcc cross-compiling on a
> 64-bit host for a 32-bit host. One was with ffmpeg, and the other
> one was seamonkey (built-from-source). There's a thread at
> http://www.gossamer-threads.com/lists/gentoo/user/298324 which mentions
> ffmpeg with symptoms identical to mine.
>
> ffmpeg is no problem doing locally. But seamonkey built-from-source
> is a 14 hour marathon on the ancient 32-bit Atom. It's the reason I got
> into distcc in the first place. Fortunately, seamonkey-bin exists, and
> builds properly. Basic Youtube videos (End Of The Line; Travelling
> Wilburys; HTML5; H264; 360-line-resolution) peg the double-core Atom
> with a cpu load of 2.75. That's not Seamonkey's fault; what do you
> expect from an Atom, driving an un-accelerated framebuffer? I'm happy
> that the devs went to the trouble of reverse-engineering the Poulsbo
> (bleagh) chip.
>
> The thread listed above mentions that distcc without "pump" can
> sometimes solve crossdev build problems. Can it be used to build
> seamonkey from source on the host and manually push it to the client?
>
> While we're on the topic of distcc, it's update time. The client
> shows...
>
> aa1 ~ # gcc-config -l
> [1] i686-pc-linux-gnu-4.8.4 *
>
> ...and the host shows...
>
> [d531][waltdnes][~] gcc-config -l
> [1] i686-pc-linux-gnu-4.8.3 *
>
> [2] x86_64-pc-linux-gnu-4.8.4 *
>
> According to the crossdev "--help" listing...
> -S, --stable Use latest stable versions as default
> -C, --clean target Uninstall specified target
>
> This implies that on the host, I should do the following...
>
> crossdev -C -t i686-pc-linux-gnu
> crossdev -S -t i686-pc-linux-gnu
>
> Before I take the plunge, can anybody with experience confirm that
> this is the correct way to do it?
>
>
The difference is that without pump mode the source files are run through the
preprocessor locally and a single preprocessed file is sent to the host for
each compilation unit. With pump mode the actual source is sent to the host
and it request the headers from the client as needed and the host caches them
so they're only sent once. So pump mode uses less network traffic but it's not
necessarily faster, in fact it's much slower in some cases.
Some packages do custom preprocessing and other weird things during the build
process that cause problems with pump mode since it caches copies of the
unmodified headers. If you're lucky it just fails (and usually falls back on
compiling locally), if you're not then it may succeed and you'll get runtime
bugs. I haven't find a package yet that fails without pump mode as long as your
CFLAGS are set properly.
As for updating, you likely don't need to. According to the distcc FAQ the
minor version number is not as important. If you still want to, I *think* you
can just mask the other versions using an atom like cross-i686-pc-mingw32/gcc
to ensure that you get the version you want but I'm not sure about this and
there may be a better way.
--
Fernando Rodriguez
next prev parent reply other threads:[~2015-05-03 18:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-03 1:10 [gentoo-user] Difference between "normal distcc" and "distcc with pump"? Walter Dnes
2015-05-03 18:57 ` Fernando Rodriguez [this message]
2015-05-04 3:59 ` Walter Dnes
2015-05-04 9:29 ` Fernando Rodriguez
2015-05-04 9:38 ` Fernando Rodriguez
2015-05-04 15:40 ` Walter Dnes
2015-05-04 19:41 ` Walter Dnes
2015-05-04 20:36 ` Fernando Rodriguez
2015-05-04 22:06 ` Fernando Rodriguez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BLU436-SMTP160514BB0A7E63385C39BE28DD30@phx.gbl \
--to=frodriguez.developer@outlook.com \
--cc=gentoo-user@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox