Gentoo Archives: gentoo-amd64

From: Simon Stelling <blubb@g.o>
To: gentoo-amd64@l.g.o
Subject: Re: [gentoo-amd64] -fPIC - Toolchain broken?
Date: Wed, 18 Oct 2006 16:10:01
Message-Id: 45365164.8000206@gentoo.org
In Reply to: Re: [gentoo-amd64] -fPIC - Toolchain broken? by Simon Stelling
1 Simon Stelling wrote:
2 >> /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/../../../../x86_64-pc-linux-gnu/bin/ld:
3 >>
4 >> warning: creating a DT_TEXTREL in object.
5 >> /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/../../../../x86_64-pc-linux-gnu/bin/ld:
6 >>
7 >> ucol_wgt.o: relocation R_X86_64_PC32 against `compareRanges' can not be
8 >> used when making a shared object; recompile with -fPIC
9 >> /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/../../../../x86_64-pc-linux-gnu/bin/ld:
10 >>
11 >> final link failed: Bad value
12 >> collect2: ld returned 1 exit status
13 >
14 > I didn't look at the code yet, but I guess it has some #ifndef
15 > __OPTIMIZED__. __OPTIMIZED__ is set by gcc with -O2 and above. I guess
16 > if you switch back to your -O3 CFLAGS it will compile.
17
18 Actually, it would be __OPTIMIZE__, but that wasn't the culprit. The
19 function compareRanges is declared as follows:
20
21 static U_INLINE int32_t U_CALLCONV
22 compareRanges(const void *context, const void *left, const void *right);
23
24 And in another function used as an argument to a third function, i.e.
25 pointed at with a pointer, but as it's inline you can't point at it.
26
27 Now the only thing left is to find out why the heck it fails with
28 -O{0,1} but not >= -02...
29
30 --
31 Kind Regards,
32
33 Simon Stelling
34 Gentoo/AMD64 developer
35 --
36 gentoo-amd64@g.o mailing list