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

Michael Matz matz@suse.de
Mon Jan 29 23:14:00 GMT 2018


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).


Ciao,
Michael.



More information about the Binutils mailing list