diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf.c | 2 | ||||
-rw-r--r-- | binutils/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/compress.exp | 29 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/dw2-empty.S | 1 |
5 files changed, 44 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2b1e9e3..5ab8525 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,11 @@ 2012-07-03 H.J. Lu <hongjiu.lu@intel.com> + PR binutils/14319 + * elf.c (_bfd_elf_make_section_from_shdr): Don't compress empty + debug section. + +2012-07-03 H.J. Lu <hongjiu.lu@intel.com> + PR ld/3351 * elflink.c (_bfd_elf_update_dynamic_flags): New. (_bfd_elf_merge_symbol): Update both real and indirect symbol @@ -1025,7 +1025,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, else { /* Normal section. Check if we should compress. */ - if ((abfd->flags & BFD_COMPRESS)) + if ((abfd->flags & BFD_COMPRESS) && newsect->size != 0) action = compress; } diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index bb777f1..6b5a418 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2012-07-03 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/14319 + * binutils-all/compress.exp: Test compress empty debug sections. + + * binutils-all/dw2-empty.S: New file. + 2012-06-07 Thomas Schwinge <thomas@codesourcery.com> * binutils-all/i386/i386.exp: Don't skip for x86_64-*-linux*. diff --git a/binutils/testsuite/binutils-all/compress.exp b/binutils/testsuite/binutils-all/compress.exp index 91ed7e4..3b0b485 100644 --- a/binutils/testsuite/binutils-all/compress.exp +++ b/binutils/testsuite/binutils-all/compress.exp @@ -133,3 +133,32 @@ if ![string match "" $got] then { pass "$testname" } } + +set testfile tmpdir/dw2-emty.o + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-empty.S $testfile --nocompress-debug-sections] } then { + unsupported "compressed debug sections" + return +} + +set testname "objcopy compress empty debug sections" +set got [binutils_run $OBJCOPY "--compress-debug-sections $testfile ${copyfile}.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + send_log "cmp $testfile ${copyfile}.o\n" + verbose "cmp $testfile ${copyfile}.o" + set src1 ${testfile} + set src2 ${copyfile}.o + set status [remote_exec build cmp "${src1} ${src2}"] + set exec_output [lindex $status 1] + set exec_output [prune_warnings $exec_output] + + if [string match "" $exec_output] then { + pass "objcopy ($testname)" + } else { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" + } +} diff --git a/binutils/testsuite/binutils-all/dw2-empty.S b/binutils/testsuite/binutils-all/dw2-empty.S new file mode 100644 index 0000000..63a2b90 --- /dev/null +++ b/binutils/testsuite/binutils-all/dw2-empty.S @@ -0,0 +1 @@ + .section .debug_line |