__start/__stop symbols not always defined
Alan Modra
amodra@gmail.com
Tue Jan 23 02:34:00 GMT 2018
On Mon, Jan 22, 2018 at 03:31:19PM +0100, Michael Matz wrote:
> Hi,
>
> On Fri, 19 Jan 2018, Alan Modra wrote:
>
> > Right, and that documentation goes all the way back to 2008-05-21.
> >
> > I'm not discounting your comments about dlopen and dlsym, but I believe
> > the current behaviour is reasonable and likely gives what most people
> > want, particularly those who are concerned about symbol table size.
>
> Okay, I can live with this; the pacemaker guys will have to invent
> something then (or stay with what they invented already :) ). (Though
> symbol table size ... hmm, it's only for C-representable names, i.e. by
> default none)
I know the symbol table size argument is weak. ;-)
> > -u __start___verbose on the ld command line ought to work.
>
> Yeah, I should have mentioned this. I tried before writing the mail and
> it doesn't work completely. When you have a library providing those
> symbols already:
Ah, yes, that would stop the symbols being provided. We don't set
ref_regular on -u symbols.
> (or a mirroring change in the predicate of bfd_elf_define_start_stop
> rejecting only-dynamic definitions as satisfying)
That makes some sense to me. It does mean that __start and __stop
symbols don't behave exactly like PROVIDEd symbols, but perhaps that's
not unreasonable. Should be safe.
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list