mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 12:23:31 +08:00
Mark ARM mapping symbols in object files are precious, so that strip will not remove them.
* elf32-arm.c (elf32_arm_backend_symbol_processing): New function. Marks mapping symbols in object files as precious, so that strip will not remove them. (elf_backend_symbol_processing): Define.
This commit is contained in:
@ -1,3 +1,10 @@
|
||||
2016-06-28 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* elf32-arm.c (elf32_arm_backend_symbol_processing): New
|
||||
function. Marks mapping symbols in object files as precious, so
|
||||
that strip will not remove them.
|
||||
(elf_backend_symbol_processing): Define.
|
||||
|
||||
2016-06-28 James Clarke <jrtc27@jrtc27.com>
|
||||
|
||||
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Don't convert
|
||||
|
@ -18266,6 +18266,24 @@ elf32_arm_copy_special_section_fields (const bfd *ibfd ATTRIBUTE_UNUSED,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Make sure that mapping symbols in object files are not removed via the
|
||||
"strip --strip-unneeded" tool. These symbols are needed in order to
|
||||
correctly generate interworking veneers, and for byte swapping code
|
||||
regions. Once an object file has been linked, it is safe to remove the
|
||||
symbols as they will no longer be needed. */
|
||||
|
||||
static void
|
||||
elf32_arm_backend_symbol_processing (bfd *abfd, asymbol *sym)
|
||||
{
|
||||
if (((abfd->flags & (EXEC_P | DYNAMIC)) == 0)
|
||||
&& sym->name != NULL
|
||||
&& sym->section != bfd_abs_section_ptr
|
||||
&& (strcmp (sym->name, "$a") == 0
|
||||
|| strcmp (sym->name, "$t") == 0
|
||||
|| strcmp (sym->name, "$d") == 0))
|
||||
sym->flags |= BSF_KEEP;
|
||||
}
|
||||
|
||||
#undef elf_backend_copy_special_section_fields
|
||||
#define elf_backend_copy_special_section_fields elf32_arm_copy_special_section_fields
|
||||
|
||||
@ -18324,6 +18342,7 @@ elf32_arm_copy_special_section_fields (const bfd *ibfd ATTRIBUTE_UNUSED,
|
||||
#define elf_backend_begin_write_processing elf32_arm_begin_write_processing
|
||||
#define elf_backend_add_symbol_hook elf32_arm_add_symbol_hook
|
||||
#define elf_backend_count_additional_relocs elf32_arm_count_additional_relocs
|
||||
#define elf_backend_symbol_processing elf32_arm_backend_symbol_processing
|
||||
|
||||
#define elf_backend_can_refcount 1
|
||||
#define elf_backend_can_gc_sections 1
|
||||
|
Reference in New Issue
Block a user