diff options
author | Alan Modra <amodra@gmail.com> | 2011-06-14 02:45:12 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2011-06-14 02:45:12 +0000 |
commit | 7f6ab9f8b9a5164d34c5d0b85ad4bfb8d51d89fb (patch) | |
tree | a6bbfb3426ae13110d87c3a0b45b79498d0682ca /bfd/elf32-arm.c | |
parent | c6431bc3708cda380b0bdc35d11827882e803f2d (diff) | |
download | gdb-7f6ab9f8b9a5164d34c5d0b85ad4bfb8d51d89fb.zip gdb-7f6ab9f8b9a5164d34c5d0b85ad4bfb8d51d89fb.tar.gz gdb-7f6ab9f8b9a5164d34c5d0b85ad4bfb8d51d89fb.tar.bz2 |
PR ld/12851
* elflink.c (_bfd_elf_gc_mark_extra_sections): New function.
(elf_gc_sweep): Don't treat debug and sections like .comment
specially here.
(bfd_elf_gc_sections): Treat note sections as gc roots only when
not part of a group. Always call gc_mark_extra_sections.
* elf-bfd.h (_bfd_elf_gc_mark_extra_sections): Declare.
* elfxx-target.h (elf_backend_gc_mark_extra_sections): Default to
_bfd_elf_gc_mark_extra_sections.
* elf32-arm.c (elf32_arm_gc_mark_extra_sections): Call
_bfd_elf_gc_mark_extra_sections.
* elf32-tic6x.c (elf32_tic6x_gc_mark_extra_sections): Likewise.
Diffstat (limited to 'bfd/elf32-arm.c')
-rw-r--r-- | bfd/elf32-arm.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index f5b31c6..b0f315b 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -229,8 +229,8 @@ static reloc_howto_type elf32_arm_howto_table_1[] = bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_CALL", /* name */ FALSE, /* partial_inplace */ - 0x07ff07ff, /* src_mask */ - 0x07ff07ff, /* dst_mask */ + 0x07ff2fff, /* src_mask */ + 0x07ff2fff, /* dst_mask */ TRUE), /* pcrel_offset */ HOWTO (R_ARM_THM_PC8, /* type */ @@ -293,7 +293,7 @@ static reloc_howto_type elf32_arm_howto_table_1[] = HOWTO (R_ARM_XPC25, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ - 25, /* bitsize */ + 24, /* bitsize */ TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ @@ -308,15 +308,15 @@ static reloc_howto_type elf32_arm_howto_table_1[] = HOWTO (R_ARM_THM_XPC22, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ - 22, /* bitsize */ + 24, /* bitsize */ TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_XPC22", /* name */ FALSE, /* partial_inplace */ - 0x07ff07ff, /* src_mask */ - 0x07ff07ff, /* dst_mask */ + 0x07ff2fff, /* src_mask */ + 0x07ff2fff, /* dst_mask */ TRUE), /* pcrel_offset */ /* Dynamic TLS relocations. */ @@ -12467,6 +12467,8 @@ elf32_arm_gc_mark_extra_sections (struct bfd_link_info *info, Elf_Internal_Shdr **elf_shdrp; bfd_boolean again; + _bfd_elf_gc_mark_extra_sections (info, gc_mark_hook); + /* Marking EH data may cause additional code sections to be marked, requiring multiple passes. */ again = TRUE; |