How to reclaim .rela.dyn entries for symbols that become hidden?

John David Anglin dave@hiauly1.hia.nrc.ca
Mon Jul 4 16:09:00 GMT 2005


> > Are these provided by the linker's internal script?
> 
> ld/emultempl/elf32.em:
>       gld${EMULATION_NAME}_provide_bound_symbols (".init_array",
>                                                   "__init_array_start",
>                                                   "__init_array_end");

2005-03-22  H.J. Lu  <hongjiu.lu@intel.com>

        * emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols): New
	(gld${EMULATION_NAME}_finish): Call
	gld${EMULATION_NAME}_provide_bound_symbols to provide
	__preinit_array_start, __preinit_array_end, __init_array_start,
	__init_array_end, __fini_array_start and __fini_array_end.

	* scripttempl/elf.sc: Don't provide __preinit_array_start,
	__preinit_array_end, __init_array_start, __init_array_end,
	__fini_array_start nor __fini_array_end.

static void
gld${EMULATION_NAME}_provide_bound_symbols (const char *sec,
                                            const char *start,
					    const char *end)
										{
  asection *s = bfd_get_section_by_name (output_bfd, sec);
  if (s && bfd_section_removed_from_list (output_bfd, s))
    s = NULL;
  _bfd_elf_provide_section_bound_symbols (&link_info, s, start, end);
}

2005-05-04  H.J. Lu  <hongjiu.lu@intel.com>

        * bfd-in.h (_bfd_elf_provide_section_bound_symbols): New.
	* bfd-in2.h: Regenerated.

	* elflink.c (bfd_elf_set_symbol): New.
	(_bfd_elf_provide_symbol): Call it.
	(_bfd_elf_provide_section_bound_symbols): New.
					`
Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)



More information about the Binutils mailing list