Kyle Liddell <[EMAIL PROTECTED]> posted
[EMAIL PROTECTED], excerpted below, on  Wed, 05
Jul 2006 23:29:49 -0500:

> On Wed, Jul 05, 2006 at 05:04:00PM +0000, Duncan wrote:
>> Have you run fix_libtool_files.sh recently?  I'm asking because I see
>> the
>> 
> I always forget to run that, but I did, and still no gmp.

I didn't really expect it to, as those errors are usually rather
different, but thought it was worth a shot.

>> Do you routinely run your emerge --update with the --deep (-D) switch?
> Always.

Someone who thinks like me! =8^)  I'd rather have them updated one at a
time than find I need to update a whole bunch when say a new KDE comes out
and I have 100-ish just KDE packages to update!  While it does
occasionally produce headaches, I'd rather have those headaches than
trying to trace something that isn't working just because it's too old.

So anyway, that's eliminated too...
 
>> How much of your system has been recompiled with gcc-4.1.x?

[reordered quote below a bit to make sense after snippage]
> Ick, that's (almost) the same as a reinstall...
> Umm...not much.  If I could ever get gmp compiled, then I could get
> around to compiling a good chunk of the rest...
> 
> However, I have built/rebuilt/rebuilt again gcc, glibc, and binutils
> with gcc 4.1.1.

The gcc upgrade guide (http://www.gentoo.org/doc/en/gcc-upgrading.xml)
suggests an emerge -e system followed by emerge -e world, which would
actually recompile the entire system twice, once for each command. 
Certainly, I can see that for at minimum gcc, since the first time it's
built it will be with the old version, so a second gcc rebuild is necessary
to have /everything/ compiled with it.  However, for the non-toolchain
parts of system IMO that's a bit overboard.  Still, since there's no
"tool-chain" target, that does keep the instructions simpler than having
to list each bit of the toolchain separately.

Personally, I think it's a bit overboard to run an emerge --emptytree
world anyway, in most cases for ~arch anyway, since it upgrades more
frequently.  There'd be the occasional exception (like the special-cases
in the upgrade guide), but I don't think it needs done every time.  Stable
is a bit more iffy, since they don't get the benefit of the intermediate
upgrades that ~arch usually does.  I guess I can see the argument being
made for them, which of course means it's made for everyone since stable
is intended to be the arch default.

That said, I'd not be /too/ worried about it in general, but certainly,
when strange errors start occurring shortly after a gcc upgrade, it's a
good troubleshooting step if the process was previously skipped.

Again, I've personally been running far more intermediate steps, unmasking
and making system default 4.0.0, 4.0.1, 4.0.2, 4.0.3, and 4.1.0 in turn as
they came available.  It /is/ quite a big jump from 3.4.6 to 4.1.1, but I
didn't do it all at once as those running ~arch that didn't unmask along
the way will have done.  Actually, that emerge --emptytree that I did
along the way wasn't necessary AFAIK.  I just did it after upgrading to 8
gig of memory and setting $PORTAGE_TMPDIR to a tmpfs, mainly to test my
hardware, but also to see if all the previous issues with gcc-4.x on
specific packages had been fixed, as well as to just do an emerge
--emptytree to say I'd done it, since I hadn't before that and I wanted to
try it.

Anyway, like I said, I'd not go as far as the upgrade guide and do it
routinely for every gcc upgrade, but certainly, after moving from 3.4.x to
4.1.x, if I experienced weird errors, I'd do it just to eliminate that as
a possibility, which is what I'm saying here.


>> Another possible difference... I run very little 32-bit at all
> 
> And oh yeah, I tried emerge'ing with -sandbox.  Same deal.

Oh yeah, I was going to mention that but forgot.  You're ahead of me on
that!  =8^)
 
> About all I have 32bit-wise is enough to get a flash plugin for
> firefox-bin.  I have thought that multilib was a bit messy though, and I
> might try dumping it since most of my 32bit stuff only works in a
> chroot'd system (ISE, wine, etc).  But as for this exact problem, I
> don't really see anything that is safe to delete/move/hide that is
> definitely 32bit only that could be making problems.

The possible problem would be the configure for some reason pointing at
the 32-bit lib.  Since this isn't a 32-bit compile, as long as you don't
run any 32-bit programs while doing it, you should have no issues
temporarily moving any 32-bit libdirs out of the way.  It's a long shot,
but I can't see any harm in it as long as you aren't running anything
32-bit when you move it, and if it has chance at working...

> Building by hand works.

>> configure and make manually but without the ebuild switches.  Also note
>> the "elibtoolize" at the end of the unpack step.  Perhaps that's the
>> issue.
>> 
> Doing it in stages with ebuild fails during compile at the same place.
> However, I can do ebuild unpack, and then run configure the same way as
> ebuild does, and then run make by hand and it also works.

Well, that eliminates the elibtoolize at the end of the unpack as the
culprit.

> I suppose it'd be good to get everything compiled/broken with gcc 4.1.1,
> so I'm just going to give up and start an emerge -ep world tonight and
> see what happens...

One bonus you will likely see, particularly with glibc, kde if you have it
merged, and all the parts of modular-X, is that the gcc-4.1.1
compiled versions should be noticeably faster than 3.4.x versions were.
=8^)  gcc 4.1 is the first gcc to be truly optimized for amd64 --
previous to 4.0 amd64 support was really just bolted onto the side as an
afterthought and 4.0 was just the rewrite attempting not to have any big
regressions, so 4.1 is the first truly optimized 4.x series so the first
to really shine in terms of amd64 optimizations.  Of course, CFLAGS and
what you have merged as well as your specific hardware will play very big
parts in all that as well, but I DEFINITELY noticed the difference here,
and was duly impressed! =8^)

So... even if the --emptytree doesn't solve this particular gmp issue, it
won't be all for naught, as with any luck, you'll definitely notice the
speed improvement!

---

As for troubleshooting beyond the previous suggestions...

Try a diff between the config.log (or is it configure.log, IDR) produced by
your by-hand compile (that succeeds, and the one produced by the failing
ebuild.  I don't know why I didn't think of this earlier, but by rights
that /ought/ to spotlight the problem!

Of course, while that will likely spotlight the problem, you (or someone
on the bug) still have to figure out what's triggering the different
behavior.  Again, all I can figure is something in the environment that
differs between you doing it manually and portage's run, but what?  Maybe
the bug will end up being one in portage!

(I think I'll cc myself to the bug, as stuff like this intrigues me, and
I'd love to know what the problem ultimately turns out to be!)

-- 
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

-- 
[email protected] mailing list

Reply via email to