On Mon, Mar 23, 2015 at 06:18:46PM -0400, Mike Gilbert wrote
> You will probably need to add -m32 to CFLAGS to avoid building 64-bit
> objects on the 64-bit machine.
How could i686-pc-linux-gnu-gcc build 64-bit stuff in the first place?
I followed the instructions, and ran the following on the host 64-bit
machine...
[d531][root][~] crossdev -t -S i686-pc-linux-gnu
[d531][root][~] i686-pc-linux-gnu-gcc --version
i686-pc-linux-gnu-gcc (Gentoo 4.9.2 p1.2, pie-0.6.2) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[d531][root][~] echo 'int main(){return 0;}' > ctest.c
[d531][root][~] i686-pc-linux-gnu-gcc -Wall ctest.c -o ctest
[d531][root][~] file ctest
ctest: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux
2.6.32, not stripped
Here's how far I've gotten with the setup. Let me know if I'm missing
anything...
=========================================================================
On the host; 64-bit Gentoo on Core2; IP address 192.168.123.251
# emerge crossdev
# crossdev -t -S i686-pc-linux-gnu
# emerge distcc
edit /etc/conf.d/distccd to indicate allowed client(s). Change the
DISTCCD_OPTS line to...
DISTCCD_OPTS="--port 3632 --log-level notice --log-file /var/log/distccd.log -N
15 --allow 192.168.123.253
get distccd service running now and every boot up (OpenRC)...
# rc-update add distccd default
# rc-service distccd start
I believe it's OK to leave "-march=native" in the host's make.conf
=========================================================================
On the client; underpowered ancient 32-bit Atom netbook; 192.168.123.253
# emerge distcc
specify host(s)
# /usr/bin/distcc-config --set-hosts "192.168.123.251"
This modifies /etc/distcc/hosts
In make.conf make the following changes
MAKEOPTS="-j1 -l2"
add "distcc distcc-pump" to FEATURES variable
Replace "-march=native" in CFLAGS with output of...
# gcc -v -E -x c -march=native -mtune=native - < /dev/null 2>&1 | grep cc1 |
perl -pe 's/ -mno-\S+//g; s/^.* - //g;'
Note that the distcc wiki page gives different instructions here than
the crossdev wiki page. The command goes out of its way to remove the
"-mno-<whatever>" compiler flags. This results in (one long line)...
CFLAGS="-O2 -march=atom -msahf -mmovbe -mfxsr --param l1-cache-size=24
--param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=atom
-fstack-protector -mfpmath=sse -fomit-frame-pointer -pipe
-fno-unwind-tables -fno-asynchronous-unwind-tables"
Note that I include "-mfpmath=sse -fomit-frame-pointer -pipe
-fno-unwind-tables -fno-asynchronous-unwind-tables" myself.
=========================================================================
Now for the questions...
1) https://wiki.gentoo.org/wiki/Distcc#Using_distcc_with_automake
mentions adding...
export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"
...to /etc/env.d/ Is this necessary for Portage/emerge/etc, or is
"automake" something separate? (You can tell I'm not a programmer, let
alone a developer.)
2) The docs mention running emerge on the client with the command...
# pump emerge -u world
Is that all there is, or am I missing something? Does it
"automagically" install properly? Can I assume that...
a) The "pump" command does the lookup in /etc/distcc/hosts for the
appropriate server
b) The line...
CHOST="i686-pc-linux-gnu"
...in the client's make.conf is sufficient to tell emerge to use
"/usr/bin/i686-pc-linux-gnu-gcc" on the host and not "/usr/bin/gcc"?
3) Is this supposed to happen on the host...
=====================================================
[d531][waltdnes][~] gcc-config -l
[1] i686-pc-linux-gnu-4.9.2 *
[2] x86_64-pc-linux-gnu-4.8.3 *
=====================================================
Note that the asterisk after "x86_64-pc-linux-gnu-4.8.3" is green.
4) Is the command...
# DISTCC_DIR="" distccmon-text 5
Or:
# DISTCC_DIR="" distccmon-gnome
...supposed to be run from a seprate terminal?
--
Walter Dnes <[email protected]>
I don't run "desktop environments"; I run useful applications