Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 290220

Summary: combi of gcc 4.4.2 and binutils 2.20 on amd64: ld: trees.lo: relocation R_X86_64_PC32 against symbol `_length_code' can not be used when making a shared object; recompile with -fPIC
Product: Gentoo Linux Reporter: steffen stramm <krytzz>
Component: [OLD] Core systemAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: RESOLVED CANTFIX    
Severity: normal CC: eric_chaligny, loki_val
Priority: High    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: machine 1
machine 2
build log machine2

Description steffen stramm 2009-10-23 09:43:15 UTC
i get this when for example compiling zlib (being the smallest testcase i found).
also qdbus doesnt start when qt is compiled with this combination, cclive segfaults when parsing a youtube link and numerous other bugs.

if i downgrade to either gcc 4.4.1/binutils 2.20 or gcc 4.4.2/binutils 2.19
the problem is gone.
i encounter this on 2 machines, both ~amd64.

emerge --info from both of the machines attached
Comment 1 steffen stramm 2009-10-23 09:46:57 UTC
Created attachment 207980 [details]
machine 1
Comment 2 steffen stramm 2009-10-23 09:50:01 UTC
Created attachment 207982 [details]
machine 2
Comment 3 Peter Alfredsen (RETIRED) gentoo-dev 2009-10-23 11:25:33 UTC
Could you attach the build.log from zlib?
Comment 4 steffen stramm 2009-10-23 13:54:32 UTC
Created attachment 207994 [details]
build log machine2

funny, i emerged gcc 4.4.1 then 4.4.2 and binutils 2.20 again, now i can build zlib. however there are still warnings
Comment 5 Peter Alfredsen (RETIRED) gentoo-dev 2009-10-23 14:36:35 UTC
I'd try a rebuild of world. Looks like some obscure bug, possibly because you've upgraded gcc from something really old?

When I rebuild world I usually use this formula, when I've already updated everything to the newest possible version:
emerge -eav --jobs=(cpus+sqrt(cpus)) --load-average=cpus --keep-going world
Where cpus is the number of cores in your machine and sqrt(cpus) is the square root of the number of cpus in your machine.
It will keep going and display a summary of failed packages at the end.
Comment 6 steffen stramm 2009-10-23 16:23:42 UTC
yeah, very obscure :p
i have a ~amd64 system for about 6 months, so nothing was old. thanks for the formula. :)
even if its solved i wonder if it happens to other people because it really causes all kind of bugs (like cclive just segfaulting without any mention to TEXTREL or something).