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: Define __start/__stop symbols when there is only a dynamic def


On Fri, Jan 26, 2018 at 5:43 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Jan 26, 2018 at 5:19 AM, Nick Clifton <nickc@redhat.com> wrote:
>> Hi Alan,
>>
>>> This patch fixes a case where a user had a C-representable named
>>> section in both the executable and shared libraries, and of course
>>> wanted the size of the local section in the executable, not the
>>> dynamic section.  It does mean that __start and __stop symbols don't
>>> behave exactly like PROVIDEd symbols, but I think that's a reasonable
>>> difference particularly since this is the way they used to behave.
>>
>> Is this distinction now documented ?  Ie can future users still be
>> confused by this behaviour ?
>>
>>> Nick, I'd like to apply this to the branch.  I think it should be
>>> quite safe.
>>>
>>>       * elflink.c (bfd_elf_define_start_stop): Override symbols when
>>>       they are defined dynamically.
>>
>> Fair enough - please apply - although I do also like H.J.'s request
>> for a testcase...
>>
>
> There are testcases for:
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=21964
>
> But they only check __start/__stop symbols are handled correctly.
> __size isn't checked.   Let me see if I can extend them to check
> __size.

It should be the ".sizeof." directive.  One thing which bothers me is
why __start/__stop are OK without the patch.  Why is it needed only
for ".sizeof."  I will find it out with the new testcase for ".sizeof.".


-- 
H.J.


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