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
