FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo User

 
 
LinkBack Thread Tools
 
Old 09-08-2012, 11:31 AM
"Roland Häder"
 
Default Some essential packages fail to compile

Hi all,

attached is a tar ball with all /var/run/portage/*/*/temp/* files. Can you please take a look a t the individual build.log files? E.g. I need to get klibc working else I cannot install dracut with "gensplash crypt plymouth" modules.

I can file a bug report per package if you want me to do it. But maybe there is a quicker fix available.

I use distcc and two nodes are running 64 bit (this Gentoo is being installed on 32 bit hardware). Most packages works fine with it, so my guess is that some packages ignore the important gcc flags (-m32 / -march=i686) which results in compiling a 64 bit object file on the 64 bit nodes.

The 64 bit nodes are Debian nodes which all can cross-compile (as I mentioned above, some packages were cross-compiled on these nodes without troubles because they honor the extra flags).

Regards,
Roland
 
Old 09-08-2012, 11:50 AM
Nikos Chantziaras
 
Default Some essential packages fail to compile

On 08/09/12 14:31, "Roland Häder" wrote:

I use distcc and two nodes are running 64 bit (this Gentoo is being
installed on 32 bit hardware). Most packages works fine with it, so
my guess is that some packages ignore the important gcc flags (-m32 /
-march=i686) which results in compiling a 64 bit object file on the
64 bit nodes.

The 64 bit nodes are Debian nodes which all can cross-compile (as I
mentioned above, some packages were cross-compiled on these nodes
without troubles because they honor the extra flags).


Isn't it a requirement that all nodes run Gentoo, with the same GCC
version, and you must setup sys-devel/crossdev on each of them?


I don't see how it could possibly work otherwise.
 
Old 09-08-2012, 12:31 PM
Michael Mol
 
Default Some essential packages fail to compile

On Sat, Sep 8, 2012 at 7:50 AM, Nikos Chantziaras <realnc@gmail.com> wrote:

On 08/09/12 14:31, "Roland Häder" wrote:


I use distcc and two nodes are running 64 bit (this Gentoo is being

installed on 32 bit hardware). Most packages works fine with it, so

my guess is that some packages ignore the important gcc flags (-m32 /

-march=i686) which results in compiling a 64 bit object file on the

64 bit nodes.



The 64 bit nodes are Debian nodes which all can cross-compile (as I

mentioned above, some packages were cross-compiled on these nodes

without troubles because they honor the extra flags).




Isn't it a requirement that all nodes run Gentoo, with the same GCC version, and you must setup sys-devel/crossdev on each of them?



I don't see how it could possibly work otherwise.

You need the same gcc version, but as long as distcc is including all of the header and source files, same-arch distcc should work fine. I don't know about cross-compiling, though.
*

--
:wq
 
Old 09-08-2012, 07:51 PM
Andrea Conti
 
Default Some essential packages fail to compile

>> http://www.gentoo.org/doc/en/cross-compiling-distcc.xml
> I also read it far before I wrote my email.

In case I wasn't clear in my other email, what you should be paying
attention to are the instructions under 'Configuring distcc to
cross-compile correctly'.

Of course, the instructions are just an example and you should
substitute the correct triplet (i.e. 'sparc-unknown-linux-gnu' should
become 'i486-pc-linux-gnu').

> I have to temporary disable distcc (FEATURES variable needs to be commented out) for klibc, emerge klibc and then re-enable distcc

FYI, environment values take priority over those in make.conf, so you
can just override FEATURES for the current build by putting it on the
command line:

$ FEATURES=-distcc emerge klibc

andrea
 
Old 09-09-2012, 07:25 AM
Andrea Conti
 
Default Some essential packages fail to compile

> If I fully follow that wiki page (I did until the wrapper script is added) I would have to change these links:
>
> lrwxrwxrwx 1 root root 16 Sep 6 21:35 c++ -> ../../bin/distcc
> lrwxrwxrwx 1 root root 16 Sep 6 21:35 cc -> ../../bin/distcc
> lrwxrwxrwx 1 root root 16 Sep 6 21:35 g++ -> ../../bin/distcc
> lrwxrwxrwx 1 root root 16 Sep 6 21:35 gcc -> ../../bin/distcc

That's the idea, although now I can see that this is not your problem.

> Yes, i686-pc-linux-gnu-gcc and i686-pc-linux-gnu-g++ are just symbolic links to the native compilers (because I don't have those binaries).

This is what's biting you. Distcc is invoking i686-pc-linux-gnu-gcc on a
server and is getting back 64-bit output, because the x86_64 compiler is
configured to produce 64-bit output by default.

> Should I better remove the symbolic links and add scripts there which adds -m32 -march=i686 to the parameter list (I could do it because those compiler names are only used on 'laptop').

You can do that, and it's surely better than mucking with default CFLAGS.
Be warned, though, that the components of the native Debian toolchain
probably are not the same version as those on your laptop. This might
expose you to random runtime breakage which will be quite hard to
diagnose, especially in case of different glibc versions.

This is the main reason why a dedicated toolchain is recommended.

> So CFLAGS and HOSTCFLAGS must be set to the same in make.conf? It is really confusing.

Unless you are doing strange things you should never need to touch your
HOSTCFLAGS. In your case i think it would simply be better to fix your
setup

andrea
 

Thread Tools




All times are GMT. The time now is 07:45 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org