"Mansour Al Akeel" <[EMAIL PROTECTED]> posted [EMAIL PROTECTED], excerpted below, on Fri, 14 Nov 2008 14:02:19 -0400:
> checking for x86_64-pc-linux-gnu-gcc... > /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/./gcc/xgcc > -B/var/tmp/portage/sys-devel/gcc-4.1.2/work/build/./gcc/ > -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem > /usr/x86_64-pc-linux-gnu/include -isystem > /usr/x86_64-pc-linux-gnu/sys-include -m32 First, please kill the HTML. There's enough "old fogies" like me that don't like it, on most Linux related lists at least, that it's really not a good idea. We have a choice as to whether to reply or not, and some of the guys that have been around the longest and therefore tend to have the most wisdom to apply to a problem, may not reply to HTML posts at all -- or even see them in some cases, if they filter them out, as I do for regular mail. Do you really want to potentially kill the single reply that might have otherwise been the only one with a working fix? Anyway, back to your question. See that -m32? That's telling the new gcc it just built while bootstrapping itself and is there testing, to compile the test in 32-bit mode. It (I think) builds the 64-bit stuff first, and is then failing on the 32-bit stuff. IOW, it's an issue related to the 32-bit aspect of the compile for both 64-bit and 32-bit support, that you get when you are running a multilib profile. Personally, since I don't do the proprietaryware that's the biggest reason to do 32-bit compatibility in the first place, and all the freedomware I run has long since been 64-bit, I didn't have any reason to stay with multilib. And, since it gave me headaches like this every so often, and even when it was working, both gcc and glibc, which are both already fairly long merges, took effectively double the time to build because they were being built for both 64-bit and 32-bit, I had lots of reason NOT to stay with multilib. So I switched to the no-multilib profile and simplified my life with faster and more trouble-free gcc and glibc compiles, and have been VERY happy I did so. Of course if you're still held captive by some proprietaryware or other that's only available in 32-bit, that's not going to be an option for you. There are several possible triggers for this problem. The first one is a broken 32-bit sandbox. For that, try turning it off and remerging sandbox. If it works, you should then be able to remerge gcc without issue and remerge sandbox normally. FEATURES=-sandbox emerge sandbox If that doesn't work, one thing that has been a problem in the past but one would hope doesn't apply any more, is if you had eselect-compiler and gcc-config-2.0 merged at some point. If you did, there's a bug on it you should look at. If you didn't, this one doesn't apply. There are various other possibilities due to various broken configs and etc relating to the 32-bit side of the multilib toolchain. Often the simplest solution to these is to remerge a known working usually older gcc, hopefully overwriting whatever's wrong with your current setup, after which you can normally rebuild the newer gcc using the working old one, and be back on track. If you've been running FEATURES=buildpkg for some time, you may have several older versions of gcc in your binary package archive and can just remerge one of them, temporarily downgrading gcc to fix the problem, then use it to merge a current gcc. This of course is one of the benefits of running with that feature enabled. If you have NOT been running with FEATURES=buildpkg enabled, you have a choice. If you have another working gentoo/amd64 machine available, you can quickpkg it's gcc, copy it over and emerge -K it onto the affected machine. Otherwise you'll have to choose between trusting a version someone else may offer you and grabbing one off the latest gentoo/amd64 install stages. This would involve downloading a stage tarball, untarring it somewhere temporary, chrooting into it, doing a quickpkg of the gcc therein, then from outside the chroot, doing an emerge -K of the binpkg built by the quickpkg. When you get your system working correctly again (but before you go back to your system/world rebuild), you may wish to consider FEATURES=buildpkg. If you turn it on, you can then do your system/world rebuild and will have binpkgs of everything, available if you need them. After awhile, you'll have a couple older versions of most packages as well, in case you need to revert to an older one for some reason. It's a quite handy thing to have available, and can sure save a lot of needless recompiling at times, even if you /don't/ ever use it to get out of another hole like a busted gcc. Spacewise, a full FEATURES=buildpkg system and world set, with what I have merged here, runs about a gig, but you'll want at least 2 gigs available for binpkgs and preferably 4 gigs or so, so you don't have to clean out old versions too often, on whatever partition you decide to store them on. The default storage location is $PORTDIR/packages, IIRC, but you can point portage at a different location by setting PKGDIR in make.conf as appropriate. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman