R_X86_64_COPY bug
Alexander Ivchenko
aivchenk@gmail.com
Sat Apr 6 08:49:00 GMT 2013
Have you tried '-z nocopyrelocs' option for linker which tries to
avoid COPY relocations? And also, as far as I understand, you can make
your binary 'pie'
2013/4/6 Suresh Siddha <sbsiddha@gmail.com>:
> On Sat, Apr 6, 2013 at 12:13 AM, Alan Modra <amodra@gmail.com> wrote:
>> On Fri, Apr 05, 2013 at 09:29:09PM -0700, Fredrick Prashanth John Berchmans wrote:
>>> Dear binutils developers,
>>>
>>> We are seeing a issue with copy relocation semantics in ld.
>>>
>>> A struct with zero length array is defined in a shared library.
>>> Because of copy relocation semantics, any binary linking with that
>>> library sees those elements as zero initialized.
>>>
>>> We saw this bug also on ARM with R_ARM_COPY.
>>
>> This is not a bug in gas or ld. gcc is sizing the struct incorrectly.
>>
>> .globl test_dynamic
>> .data
>> .align 4
>> .type test_dynamic, @object
>> .size test_dynamic, 4 # <===========
>> test_dynamic:
>> .long 6
>> .long 1
>> .long 2
>> .long 3
>> .long 4
>> .long 5
>> .long 6
>
> Thanks for the quick response. Is there any way we can avoid copy
> relocations for these problematic types? We tried even giving the
> attribute of protected visibility. And it doesn't seem to help.
>
> -Suresh Siddha
More information about the Binutils
mailing list