This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PATCH: PR gas/12409: --compress-debug-sections doesn't work on empty DWARF sections
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: binutils at sourceware dot org
- Cc: Cary Coutant <ccoutant at google dot com>
- Date: Tue, 18 Jan 2011 10:57:33 -0800
- Subject: PATCH: PR gas/12409: --compress-debug-sections doesn't work on empty DWARF sections
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
Hi,
We shouldn't compress empty DWARF sections. I checked in this patch as
an obvious fix.
H.J.
---
gas/
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
PR gas/12409
* write.c (compress_debug): Return if section size is 0.
gas/testsuite/
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
PR gas/12409
* gas/elf/dwarf2-4.d: New.
* gas/elf/dwarf2-4.s: Likewise.
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;
--- /dev/null 2011-01-10 09:06:52.507000001 -0800
+++ binutils/gas/testsuite/gas/elf/dwarf2-4.d 2011-01-18 10:45:40.219381036 -0800
@@ -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.
--- /dev/null 2011-01-10 09:06:52.507000001 -0800
+++ binutils/gas/testsuite/gas/elf/dwarf2-4.s 2011-01-18 10:43:23.829263858 -0800
@@ -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