Kyle Liddell <[EMAIL PROTECTED]> posted
[EMAIL PROTECTED], excerpted below, on  Wed, 05 Jul
2006 08:37:40 -0500:

> (Disclaimer:  This is pretty much a copy of a bug report
> (http://bugs.gentoo.org/show_bug.cgi?id=138231), but I'm hoping somebody
> here might have any ideas on what to try.)
> 
> I've been unable to use emerge to update gmp from 4.2 to 4.2.1 for a
> couple weeks now.  The compile will go on for a while, and then fail with
> "recompile with -fPIC".  However, I can build gmp by hand with no
> problems.  I can apply all the patches that portage throws on, and it
> still works.
> 
> Does anyone have any ideas?

Interesting.  Take a look at the kdm (hijacked) thread too.  It's the same
-fPIC R_X86_64_32 type error there, but a bit different, and as no bug had
been filed, all the system details from emerge --info are missing.

In both cases (kdm and gmp), no issues at all merging them here.  Same
~amd64 keyworded system, altho I /was/ running the masked 4.0 and 4.1 for
some time before 4.1.1 was released and unmasked to ~.

My first thought was a corrupted ccache or confcache that kept getting
used thru portage, and I was going to suggest disabling that, but I see
from the bug neither of you have confcache merged and while one of you had
ccache, it was disabled, so that can't be the issue.

Have you run fix_libtool_files.sh recently?  I'm asking because I see the
*.la in the trace and both kdm and gmp appear to be C++.  If some of those
are still pointing at your old gcc-3.4.x install and not the new
gcc-4.1.1 it could create issues, tho I can't say it would create /this/
one.

Also, revdep-rebuild.  Have you run it recently?  (Run it with -p first,
of course.)  What about emerge --depclean (again, with -p first)?

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

How much of your system has been recompiled with gcc-4.1.x?

Of course, all of these questions boil down to one thing, how good your
general system hygiene and cleanliness is.  I can't say for sure that it'll
help, but certainly, having a bunch of old cruft hanging around gathering
bitrot will complicate things a bit.  In particular, it's possible
something compiled with the old gcc isn't quite compatible with the new
gcc.  As I was running the masked 4.0.x and 4.1.0 for some time, and I did
an emerge --emptytree world somewhere in the process, there's very little
of my system that's still compiled with gcc-3.4.x.  If you haven't done an
emerge --emptytree world since gcc-4.1.1 was unmasked and weren't running
the masked 4.x versions as I was, perhaps that's the difference between it
working fine here and not there?

Another possible difference... I run very little 32-bit at all, and in
fact have considered switching to the no-multilib profiles.  (About the
only thing besides the 32-bit toolchain, sandbox/gcc/glibc/binutils, that
I need multilib for, is grub, and I /could/ merge the grub-static binary
if I were to decide to go no-multilib.)  I have a rather intense aversion
to slaveryware, so don't need 32-bit for that, and don't need OOo, so
don't need it for that or any other "obscure" freedomware stuff that's
still 32-bit only, so other than grub and the multilib toolchain, I'm 100%
64-bit.  The R_x86_64_32 name hints that it /might/ be 32-bit related.  Do
both you guys have lots of 32-bit stuff installed or are you like me,
nearly all 64-bit?  Maybe it's another problem like the opengl problem,
with the compile unsuccessfully of course trying to use the 32-bit libs
for some reason.  Since I have very few of them on my system, I wouldn't
have that problem, just as I don't have that particular opengl problem. 
If you have a lot of 32-bit libraries, try temporarily moving those dirs
out of the way to somewhere the compile can't find them, and see if the
problem "magically" disappears.  It's worth a shot, anyway.

The system cleanliness thing is a good thing to check anyway, even if it
doesn't fix this particular issue, so that's good to try first.  The
32-bit thing is simple enough to try, so that's next.  Beyond that, given
that it compiles fine outside portage, the issue must be one of the
differing environment between the portage compile and doing it on your
own.  

Since you've checked the patches, you've probably checked this too, but you
didn't mention it so I will.  Did you try exactly duplicating the ebuild's
configure (econf) switches?  If you are aren't giving it the same
configure input, that could be the culprit.  In fact, I've seen it happen
more than once in my own troubleshooting, so be sure and check that.

Are you familiar with the ebuild command?  If not, man ebuild and bone up
on the various stages (fetch/unpack/compile/install/qmerge, in that order)
that emerge automates, then try doing them by hand.  In particular,
compare ebuild compile, with ebuild unpack, then doing the configure
(using the ebuild switches) and make manually, with unpack and doing the
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.

Kind of shots in the dark -- unfortunately I don't understand the issues
well enough to do better than that -- but maybe they'll be of help...

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