- if (sec->compress_status == COMPRESS_SECTION_DONE
- && (abfd->flags & BFD_COMPRESS_GABI) == 0
- && name[1] == 'd')
- {
- /* If section is compressed with zlib-gnu, convert
- section name from .debug_* to .zdebug_*. */
- char *new_name = bfd_debug_name_to_zdebug (abfd, name);
- if (new_name == NULL)
- return false;
- name = new_name;
- }
- /* Add section name to section name section. */
- if (shdrp->sh_name != (unsigned int) -1)
- abort ();
- shdrp->sh_name
- = (unsigned int) _bfd_elf_strtab_add (elf_shstrtab (abfd),
- name, false);
- d = elf_section_data (sec);
-
- /* Add reloc section name to section name section. */
- if (d->rel.hdr
- && !_bfd_elf_set_reloc_sh_name (abfd, d->rel.hdr,
- name, false))
- return false;
- if (d->rela.hdr
- && !_bfd_elf_set_reloc_sh_name (abfd, d->rela.hdr,
- name, true))
- return false;
+ /* Compress DWARF debug sections. */
+ if (!bfd_compress_section (abfd, sec, shdrp->contents))
+ return false;