Define __start/__stop symbols when there is only a dynamic def

H.J. Lu
Fri Jan 26 16:56:00 GMT 2018

On Fri, Jan 26, 2018 at 6:04 AM, H.J. Lu <> wrote:
> On Fri, Jan 26, 2018 at 5:43 AM, H.J. Lu <> wrote:
>> On Fri, Jan 26, 2018 at 5:19 AM, Nick Clifton <> 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:
>> 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.".

Something wrong with the ".sizeof." directive.  I opened a bug:


More information about the Binutils mailing list