aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2011-01-18 18:55:59 +0000
committerH.J. Lu <hjl.tools@gmail.com>2011-01-18 18:55:59 +0000
commit24a2d04da085e1e795c6e271ae43235383b53a04 (patch)
tree78eff6f416fc224bed3fe180061170fafcb96849
parent2b52916eef5b07a8651af45db0992936f98263d2 (diff)
downloadgdb-24a2d04da085e1e795c6e271ae43235383b53a04.zip
gdb-24a2d04da085e1e795c6e271ae43235383b53a04.tar.gz
gdb-24a2d04da085e1e795c6e271ae43235383b53a04.tar.bz2
Don't compress empty debug sections.
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.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/testsuite/ChangeLog8
-rw-r--r--gas/testsuite/gas/elf/dwarf2-4.d12
-rw-r--r--gas/testsuite/gas/elf/dwarf2-4.s12
-rw-r--r--gas/testsuite/gas/elf/elf.exp1
-rw-r--r--gas/write.c1
6 files changed, 39 insertions, 0 deletions
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 <hongjiu.lu@intel.com>
+
+ PR gas/12409
+ * write.c (compress_debug): Return if section size is 0.
+
2011-01-18 Mingfeng Wu <mingfeng@faraday-tech.com>
* 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 <hongjiu.lu@intel.com>
+ 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 <hongjiu.lu@intel.com>
+
* 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;