This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: R_X86_64_COPY bug


On Sat, Apr 6, 2013 at 1:49 AM, Alexander Ivchenko <aivchenk@gmail.com> wrote:
> Have you tried  '-z nocopyrelocs' option for linker which tries to
> avoid COPY relocations?

nocopyreloc gives segfault :(

./test_misc.bin: Symbol `test_dynamic' causes overflow in R_X86_64_32 relocation
Segmentation fault (core dumped)

-Fredrick

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]