bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/18277] --compress-debug-sections=zlib may generate larger debug


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/18277] --compress-debug-sections=zlib may generate larger debug sections
Date: Thu, 23 Apr 2015 23:38:51 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=18277

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by H.J. Lu <address@hidden>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3e19fb8f990e4ce8a08f9cf2817cd9e9398648d5

commit 3e19fb8f990e4ce8a08f9cf2817cd9e9398648d5
Author: H.J. Lu <address@hidden>
Date:   Thu Apr 23 16:37:44 2015 -0700

    Delay setting up compressed debug section names

    When we set up st_name for output section name in elf_fake_sections, we
    don't know if the compressed DWARF debug section will be smaller. We may
    end up with compressed DWARF debug sections which are bigger than the
    uncompressed ones.  This patch delays setting up st_name for output DWARF
    debug section to _bfd_elf_assign_file_positions_for_non_load which will
    compress the output debug section.  We also postpone placement of shstrtab
    section after DWARF debug sections have been compressed.  The net effect
    is .shstrtab section is now placed after .symtab and .strtab sections.

    bfd/

        PR ld/18277
        * compress.c (bfd_compress_section_contents): Remove the
        write_compress argument.
        (bfd_init_section_compress_status): Updated.
        (bfd_compress_section): Likewise.
        * elf.c (_bfd_elf_set_reloc_sh_name): New.
        (_bfd_elf_init_reloc_shdr): Add delay_st_name_p.  Set sh_name
        to (unsigned int) -1 if delay_st_name_p is TRUE.  Use
        _bfd_elf_set_reloc_sh_name.
        (elf_fake_sections): Don't rename DWARF debug section for
        linker output if it will be compressed.  Instead, set
        delay_st_name_p to TRUE and pass it to _bfd_elf_init_reloc_shdr.
        (assign_section_numbers): Call _bfd_elf_strtab_addref only if
        sh_name != (unsigned int) -1.  Don't finalize nor assign
        shstrtab section here.  Delay setting output section names to
        _bfd_elf_write_object_contents.
        (_bfd_elf_compute_section_file_positions): Update comments on
        sh_offset for shstrtab section.
        (assign_file_positions_for_non_load_sections): Set sh_offset to
        -1 for shstrtab section.
        (assign_file_positions_except_relocs): Likewise.
        (_bfd_elf_assign_file_positions_for_non_load): Set up sh_name
        when compressing DWARF debug sections.  Place shstrtab section
        after DWARF debug sections have been compressed.
        (_bfd_elf_write_object_contents): Setting sh_name for output
        sections.

    ld/testsuite/

        PR ld/18277
        * ld-elf/compressed1d.d: New.
        * ld-elf/compressed1e.d: Likewise.

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]