+2018-03-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/20882
+ * elflink.c (elf_gc_mark_debug_section): Also check the local
+ debug definition section.
+
2018-03-13 Nick Clifton <nickc@redhat.com>
PR 22113
return NULL;
}
-/* Return the global debug definition section. */
+/* Return the debug definition section. */
static asection *
elf_gc_mark_debug_section (asection *sec ATTRIBUTE_UNUSED,
struct bfd_link_info *info ATTRIBUTE_UNUSED,
Elf_Internal_Rela *rel ATTRIBUTE_UNUSED,
struct elf_link_hash_entry *h,
- Elf_Internal_Sym *sym ATTRIBUTE_UNUSED)
+ Elf_Internal_Sym *sym)
{
- if (h != NULL
- && (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- && (h->root.u.def.section->flags & SEC_DEBUGGING) != 0)
- return h->root.u.def.section;
+ if (h != NULL)
+ {
+ /* Return the global debug definition section. */
+ if ((h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak)
+ && (h->root.u.def.section->flags & SEC_DEBUGGING) != 0)
+ return h->root.u.def.section;
+ }
+ else
+ {
+ /* Return the local debug definition section. */
+ asection *isec = bfd_section_from_elf_index (sec->owner,
+ sym->st_shndx);
+ if ((isec->flags & SEC_DEBUGGING) != 0)
+ return isec;
+ }
return NULL;
}
+2018-03-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/20882
+ * testsuite/ld-gc/pr20882.d: Also dump and check .debug_abbrev
+ section.
+ * testsuite/ld-gc/pr20882b.s: Add .debug_abbrev section.
+
2018-03-14 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/ld-gc/gc.exp: Fix a typo: $LFLAGS -> $LDFLAGS.
#source: pr20882b.s
#source: pr20882c.s
#ld: --gc-sections -e main
-#readelf: -x .debug_info
+#readelf: -x .debug_info -x .debug_abbrev
-#...
- 0x0+ (0a000000 00000000 |00000000 0000000a |06000000 |00000006 |0400|0004)28 .*
+Hex dump of section '\.debug_info':
+ 0x0+ .*
+
+Hex dump of section '\.debug_abbrev':
+ 0x0+ 61626364 +abcd