From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id E112C138CC5 for ; Mon, 4 May 2015 09:40:08 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 6C3B8E0931; Mon, 4 May 2015 09:40:02 +0000 (UTC) Received: from BLU004-OMC1S2.hotmail.com (blu004-omc1s2.hotmail.com [65.55.116.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 56200E0855 for ; Mon, 4 May 2015 09:40:01 +0000 (UTC) Received: from BLU436-SMTP241 ([65.55.116.7]) by BLU004-OMC1S2.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.22751); Mon, 4 May 2015 02:40:00 -0700 X-TMN: [C3GiGMlPtEMjHjO+sNbYsAEESstWV9vF8dhhVYE8FoY=] X-Originating-Email: [frodriguez.developer@outlook.com] Message-ID: From: Fernando Rodriguez To: gentoo-user@lists.gentoo.org Subject: Re: [gentoo-user] Difference between "normal distcc" and "distcc with pump"? Date: Mon, 4 May 2015 05:38:04 -0400 User-Agent: KMail/4.14.3 (Linux/4.0.1; KDE/4.14.3; x86_64; ; ) In-Reply-To: References: <20150503011001.GA30510@waltdnes.org> <20150504035908.GA1014@waltdnes.org> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user@lists.gentoo.org Reply-to: gentoo-user@lists.gentoo.org MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-OriginalArrivalTime: 04 May 2015 09:40:00.0062 (UTC) FILETIME=[49FCCDE0:01D0864E] X-Archives-Salt: 275c5498-e850-4021-bdc8-942051bc2c51 X-Archives-Hash: 7c9ca601c70a2116d4501deceefc5942 On Monday, May 04, 2015 5:29:34 AM Fernando Rodriguez wrote: > On Sunday, May 03, 2015 11:59:08 PM Walter Dnes wrote: > > On Sun, May 03, 2015 at 02:57:46PM -0400, Fernando Rodriguez wrote > > > > > 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. > > > > Seamonkey fails during the build process. Two tries, and the build > > log was 74,046 bytes each time. I have an Intel x86_64 as the host, and > > an Atom i686 (32-bit only) as the client. Given your description, I may > > drop "pump" altogether from my "xmerge" script. I'll unmerge > > seamonkey-bin, and try distcc-building seamonkey from source, without > > "pump", Monday when I have more time. Here are a few lines from the > > failed build log, using "pump"... > > > > Executing: gcc -o nsinstall_real -march=atom -mtune=atom -fstack-protector - > pipe -mno-avx -DXP_UNIX -MD -MP -MF .deps/nsinstall_real.pp -O2 -DUNICODE - > D_UNICODE -Wl,-O1 -Wl,--as-needed host_nsinstall.o host_pathsub.o > > > > /usr/lib/gcc/i686-pc-linux-gnu/4.8.4/../../../../i686-pc-linux-gnu/bin/ld: > i386:x86-64 architecture of input file `host_nsinstall.o' is incompatible with > i386 output > > > > /usr/lib/gcc/i686-pc-linux-gnu/4.8.4/../../../../i686-pc-linux-gnu/bin/ld: > i386:x86-64 architecture of input file `host_pathsub.o' is incompatible with > i386 output > > > > /usr/lib/gcc/i686-pc-linux-gnu/4.8.4/../../../../i686-pc-linux-gnu/bin/ld: > host_nsinstall.o: file class ELFCLASS64 incompatible with ELFCLASS32 > > > > /usr/lib/gcc/i686-pc-linux-gnu/4.8.4/../../../../i686-pc-linux-gnu/bin/ld: > final link failed: File in wrong format > > > > > > The error on the link that you posted looks like cause by pump mode, this one > I'm not so sure. > > It looks like you're not using the cross compiler on the host as it would not > generate 64 bit code. Did you add -m32 to your CFLAGS on the client box? Also > you may need to set the custom-cflags use flag. Can you verify that it is using > the cross compiler on the host? > > I'm not sure exactly what the gentoo recommended distcc/cross compile setup > but if you do it like I suggested on your other thread (using the host 64bit > compiler) it should work. Look at the links you got under /usr/lib/distcc/bin. > All you need to do is create scripts on the host with the exact same names and > have them execute the compiler that you want with the options you want (I just > have it execute the 64bit compiler with -m32). Then make sure that distccd (on > host) finds them before the actual compiler by putting it in the PATH > environment variable before anything else. For that you may need to modify the > init script or unit file if using systemd or just start distccd manually. > > A simpler hack is to just delete the c++, cc, gcc, and g++ symlinks from the > /usr/lib/distcc/bin directory. That will force distcc to only trap the > compiler invocations that use the full compiler name and end up using the > cross compiler in the host, but if you do this you may end up compiling more > stuff locally. Or you just replace them (c++, cc, gcc, and g++) with a wrapper to make sure it invokes the full compiler name. That's what they recommend here: https://wiki.gentoo.org/wiki/Raspberry_Pi_Cross_building -- Fernando Rodriguez