From 317974f6831d8c7af613257e190e0dc3125bc4cf Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 5 Apr 2015 08:11:11 -0700 Subject: [PATCH] Xfail the compressed debug sections There is no need to generate compressed debug section if compressed section size is the same as before compression. We should xfail the compressed debug section test if there are no compressed sections binutils/testsuite/ * binutils-all/compress.exp (compression_used): New. Xfail test if compression didn't make the section smaller. gas/ 2015-04-05 H.J. Lu * write.c (compress_debug): Don't write the zlib header if compressed section size is the same as before compression. --- binutils/testsuite/ChangeLog | 5 +++++ binutils/testsuite/binutils-all/compress.exp | 12 ++++++++++++ gas/ChangeLog | 5 +++++ gas/write.c | 2 +- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index 827e836e83..ff77d5160d 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-04-05 H.J. Lu + + * binutils-all/compress.exp (compression_used): New. + Xfail test if compression didn't make the section smaller. + 2015-04-04 H.J. Lu * binutils-all/compress.exp (testfile): Remove suffix. diff --git a/binutils/testsuite/binutils-all/compress.exp b/binutils/testsuite/binutils-all/compress.exp index 02111f1af7..f170aea07b 100644 --- a/binutils/testsuite/binutils-all/compress.exp +++ b/binutils/testsuite/binutils-all/compress.exp @@ -39,6 +39,15 @@ if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S ${compressedfile}.o --com return } +set got [remote_exec host "cmp ${testfile}.o ${compressedfile}.o" "" "/dev/null"] +# Use it to set up xfail. +set exec_output [lindex $got 1] +if [string match "" $exec_output] then { + set compression_used "" +} else { + set compression_used "yes" +} + if { ![binutils_assemble_flags $srcdir/$subdir/dw2-2.S ${compressedfile2}.o --compress-debug-sections] } then { unsupported "compressed debug sections" return @@ -125,6 +134,8 @@ if ![string match "" $got] then { } } +# Xfail this test if there are no compressed sections. +setup_xfail "$compression_used$target_triplet" set testname "objcopy compress debug sections in archive" set got [binutils_run $OBJCOPY "--compress-debug-sections ${copyfile}.a ${compressedcopyfile}.a"] if ![string match "" $got] then { @@ -138,6 +149,7 @@ if ![string match "" $got] then { send_log "\n" } + setup_xfail "$compression_used$target_triplet" if { [regexp_diff tmpdir/libdw2-compressed.out $srcdir/$subdir/libdw2-compressed.out] } then { fail "$testname" } else { diff --git a/gas/ChangeLog b/gas/ChangeLog index a2383a91e3..f2a1bf2258 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2015-04-05 H.J. Lu + + * write.c (compress_debug): Don't write the zlib header if + compressed section size is the same as before compression. + 2015-04-02 Nick Clifton PR gas/18189 diff --git a/gas/write.c b/gas/write.c index 6a781eaa9a..248255b3b6 100644 --- a/gas/write.c +++ b/gas/write.c @@ -1519,7 +1519,7 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED) /* PR binutils/18087: If compression didn't make the section smaller, just keep it uncompressed. */ - if (compressed_size > uncompressed_size) + if (compressed_size >= uncompressed_size) return; memcpy (header, "ZLIB", 4); -- 2.34.1