Define __start/__stop symbols when there is only a dynamic def
H.J. Lu
hjl.tools@gmail.com
Mon Jan 29 23:20:00 GMT 2018
On Mon, Jan 29, 2018 at 2:58 PM, Michael Matz <matz@suse.de> wrote:
> Hi,
>
> On Mon, 29 Jan 2018, H.J. Lu wrote:
>
>> > Yes, that's it. (the associated lib.c needs to have a regular ref
>> > symbol to __start___symbol and that lib needs to have something else
>> > than "6" in its __verbose section, in order to test the exact
>> > situation of pacemaker). With the patch from Alan ./app will have
>> > __start___verbose in its symbol table, but not yet in the dynamic
>> > symbol table. So with only Alans patch -E would be necessary. With
>> > the addition of the bfd_elf_link_record_dynamic_symbol() call to
>> > bfd_elf_define_start_stop the above testcase will start working as is
>> > even without -E.
>>
>> I don't think Alan's patch nor yours are correct. Here is mine with
>> your testcase. OK for master?
>
> In which way is the combination not correct? I.e. make a testcase that
> doesn't work with our stuff but with yours.
>
> (Note, in order for the semantics to be the same as before 2.29, these
> symbols must not be created if there's neither a ref_regular ref, nor a
> dynamic definition in any of the shared libs on the link cmdline).
>
I asked specially if the testcase is correct:
https://sourceware.org/ml/binutils/2018-01/msg00421.html
There is no reference to __start___verbose from executable nor
from dynamic object.
BTW, your patch:
https://sourceware.org/ml/binutils/2018-01/msg00416.html
may make .startof symbols dynamic.
--
H.J.
More information about the Binutils
mailing list