[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Bug 1257099] [NEW] QEMU fails to build on CentOS 5.10
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [Bug 1257099] [NEW] QEMU fails to build on CentOS 5.10 with relocation R_X86_64_PC32 error |
Date: |
Mon, 09 Dec 2013 14:22:07 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 09/12/2013 13:47, Don Slutz ha scritto:
> On 12/05/13 22:20, Don Slutz wrote:
>> On 12/05/13 16:24, Richard Henderson wrote:
>>> On 12/06/2013 04:18 AM, Paolo Bonzini wrote:
>>>> $ gcc -shared -o f.so f.c -fPIE -fPIC
>>>> /usr/bin/ld: /tmp/ccQc9els.o: relocation R_X86_64_PC32 against `f'
>>>> can not be used when making a shared object; recompile with -fPIC
>>>> /usr/bin/ld: final link failed: Bad value
>>>> collect2: ld returned 1 exit status
>>>>
>>>>
>>>> The bug is simply that "-fPIE -fPIC" counts as -fPIE rather than -fPIC:
>>>>
>>>> $ gcc -S -o - f.c -fPIE |grep call
>>>> call f # PC32 relocation
>>>> $ gcc -S -o - f.c -fPIC |grep call
>>>> call address@hidden # PLT32 relocation
>>> The easy workaround is to drop -fPIE when we're adding -fPIC.
>>>
>>>
>>> r~
> [snip]
>
> Attached is a much better version. It drops -fPIE and adds -fPIC for
> libtool.
It's not much better, because using position-independent code for shared
libraries is really platform-dependent knowledge of the kind that
libtool is supposed to hide.
For example, on Mac OS X everything is position-independent by default.
And on some platforms you have -fpic instead of -fPIC.
So I prefer the patch you had that disabled libtool if the platform is
buggy.
Paolo
[Prev in Thread] |
Current Thread |
[Next in Thread] |