From 24a2d04da085e1e795c6e271ae43235383b53a04 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 18 Jan 2011 18:55:59 +0000 Subject: Don't compress empty debug sections. gas/ 2011-01-18 H.J. Lu PR gas/12409 * write.c (compress_debug): Return if section size is 0. gas/testsuite/ 2011-01-18 H.J. Lu PR gas/12409 * gas/elf/dwarf2-4.d: New. * gas/elf/dwarf2-4.s: Likewise. --- gas/ChangeLog | 5 +++++ gas/testsuite/ChangeLog | 8 ++++++++ gas/testsuite/gas/elf/dwarf2-4.d | 12 ++++++++++++ gas/testsuite/gas/elf/dwarf2-4.s | 12 ++++++++++++ gas/testsuite/gas/elf/elf.exp | 1 + gas/write.c | 1 + 6 files changed, 39 insertions(+) create mode 100644 gas/testsuite/gas/elf/dwarf2-4.d create mode 100644 gas/testsuite/gas/elf/dwarf2-4.s diff --git a/gas/ChangeLog b/gas/ChangeLog index 30d7609..bb47e72 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2011-01-18 H.J. Lu + + PR gas/12409 + * write.c (compress_debug): Return if section size is 0. + 2011-01-18 Mingfeng Wu * config/tc-arm.c (arm_cpus): Add Faraday ARMv5TE compatible diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 26a1add..2fc1b36 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,5 +1,13 @@ 2011-01-18 H.J. Lu + PR gas/12409 + * gas/elf/dwarf2-4.d: New. + * gas/elf/dwarf2-4.s: Likewise. + + * gas/elf/elf.exp: Run dwarf2-4. + +2011-01-18 H.J. Lu + * gas/i386/intel.d: Updated. * gas/i386/opcode-intel.d: Likewise. * gas/i386/opcode-suffix.d: Likewise. diff --git a/gas/testsuite/gas/elf/dwarf2-4.d b/gas/testsuite/gas/elf/dwarf2-4.d new file mode 100644 index 0000000..39e0326 --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf2-4.d @@ -0,0 +1,12 @@ +#as: --compress-debug-sections +#readelf: -w +#name: DWARF2 4 +#not-target: ia64-*-* + +Contents of the .[z]?debug_abbrev section: + + + +Section '.debug_info' has no debugging data. + +Section '.debug_line' has no debugging data. diff --git a/gas/testsuite/gas/elf/dwarf2-4.s b/gas/testsuite/gas/elf/dwarf2-4.s new file mode 100644 index 0000000..eeb4ace --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf2-4.s @@ -0,0 +1,12 @@ + .file "__dn_comp.c" + .section .debug_abbrev,"",@progbits +.Ldebug_abbrev0: + .section .debug_info,"",@progbits +.Ldebug_info0: + .section .debug_line,"",@progbits +.Ldebug_line0: + .text +.Ltext0: +.Letext0: + .section .debug_abbrev + .byte 0x0 diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index 7f86266..3828151 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -178,5 +178,6 @@ if { ([istarget "*-*-*elf*"] run_dump_test "dwarf2-1" run_dump_test "dwarf2-2" run_dump_test "dwarf2-3" + run_dump_test "dwarf2-4" run_dump_test "bad-section-flag" } diff --git a/gas/write.c b/gas/write.c index 018800e..aabb96d 100644 --- a/gas/write.c +++ b/gas/write.c @@ -1359,6 +1359,7 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED) flagword flags = bfd_get_section_flags (abfd, sec); if (seginfo == NULL + || sec->size == 0 || (flags & (SEC_ALLOC | SEC_HAS_CONTENTS)) == SEC_ALLOC) return; -- cgit v1.1