diff options
| author | George Rimar <grimar@accesssoftek.com> | 2016-05-27 12:27:32 +0000 |
|---|---|---|
| committer | George Rimar <grimar@accesssoftek.com> | 2016-05-27 12:27:32 +0000 |
| commit | c91e38c5ebf6f0cfbb29eff66c5ff6db43c3ee45 (patch) | |
| tree | a14a16e1dc028011b7948857c023e27cb000c7c6 /llvm/test | |
| parent | 6af546188f56211feef79a77c74206118549c8d6 (diff) | |
| download | bcm5719-llvm-c91e38c5ebf6f0cfbb29eff66c5ff6db43c3ee45.tar.gz bcm5719-llvm-c91e38c5ebf6f0cfbb29eff66c5ff6db43c3ee45.zip | |
Recommit 270977 - [llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.
Fix: updated clang code which was not updated by mistake.
Original commit message:
[llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.
This patch is strongly based on previously reverted D20331.
(because of gnuutils < 2.26 does not support compressed debug sections in non zlib-gnu style)
Difference that this patch supports both zlib and zlib-gnu styles.
-compress-debug-sections option now supports next values:
-compress-debug-sections=zlib-gnu
-compress-debug-sections=zlib
-compress-debug-sections=none
Previously specifying -compress-debug-sections enabled zlib-gnu compression,
so anyone can put "-compress-debug-sections=zlib-gnu" to restore the behavior
that was before this patch for case when compression was enabled.
Differential revision: http://reviews.llvm.org/D20676
llvm-svn: 270987
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/MC/ELF/compression.s | 69 |
1 files changed, 51 insertions, 18 deletions
diff --git a/llvm/test/MC/ELF/compression.s b/llvm/test/MC/ELF/compression.s index 509b5070aad..0777ee3f903 100644 --- a/llvm/test/MC/ELF/compression.s +++ b/llvm/test/MC/ELF/compression.s @@ -1,27 +1,35 @@ -// RUN: llvm-mc -filetype=obj -compress-debug-sections -triple x86_64-pc-linux-gnu < %s -o %t -// RUN: llvm-objdump -s %t | FileCheck %s +// Check zlib-gnu style +// RUN: llvm-mc -filetype=obj -compress-debug-sections=zlib-gnu -triple x86_64-pc-linux-gnu < %s -o %t +// RUN: llvm-objdump -s %t | FileCheck --check-prefix=CHECK-GNU-STYLE %s // RUN: llvm-dwarfdump -debug-dump=str %t | FileCheck --check-prefix=STR %s -// RUN: llvm-mc -filetype=obj -compress-debug-sections -triple i386-pc-linux-gnu < %s \ -// RUN: | llvm-readobj -symbols - | FileCheck --check-prefix=386-SYMBOLS %s +// RUN: llvm-mc -filetype=obj -compress-debug-sections=zlib-gnu -triple i386-pc-linux-gnu < %s \ +// RUN: | llvm-readobj -symbols - | FileCheck --check-prefix=386-SYMBOLS-GNU %s + +// Check zlib style +// RUN: llvm-mc -filetype=obj -compress-debug-sections=zlib -triple x86_64-pc-linux-gnu < %s -o %t +// RUN: llvm-objdump -s %t | FileCheck --check-prefix=CHECK-ZLIB-STYLE %s +// RUN: llvm-dwarfdump -debug-dump=str %t | FileCheck --check-prefix=STR %s +// RUN: llvm-mc -filetype=obj -compress-debug-sections=zlib -triple i386-pc-linux-gnu < %s \ +// RUN: | llvm-readobj -symbols - | FileCheck --check-prefix=386-SYMBOLS-ZLIB %s +// RUN: llvm-readobj -sections %t | FileCheck --check-prefix=ZLIB-STYLE-FLAGS %s // REQUIRES: zlib // Don't compress small sections, such as this simple debug_abbrev example -// CHECK: Contents of section .debug_abbrev: -// CHECK-NOT: ZLIB -// CHECK-NOT: Contents of +// CHECK-GNU-STYLE: Contents of section .debug_abbrev: +// CHECK-GNU-STYLE-NOT: ZLIB +// CHECK-GNU-STYLE-NOT: Contents of -// CHECK: Contents of section .debug_info: +// CHECK-GNU-STYLE: Contents of section .debug_info: -// CHECK: Contents of section .zdebug_str: +// CHECK-GNU-STYLE: Contents of section .zdebug_str: // Check for the 'ZLIB' file magic at the start of the section only -// CHECK-NEXT: ZLIB -// CHECK-NOT: ZLIB - +// CHECK-GNU-STYLE-NEXT: ZLIB +// CHECK-GNU-STYLE-NOT: ZLIB // FIXME: Handle compressing alignment fragments to support compressing debug_frame -// CHECK: Contents of section .debug_frame: -// CHECK-NOT: ZLIB -// CHECK: Contents of +// CHECK-GNU-STYLE: Contents of section .debug_frame: +// CHECK-GNU-STYLE-NOT: ZLIB +// CHECK-GNU-STYLE: Contents of // Decompress one valid dwarf section just to check that this roundtrips, // we use .zdebug_str section for that @@ -29,9 +37,34 @@ // In x86 32 bit named symbols are used for temporary symbols in merge // sections, so make sure we handle symbols inside compressed sections -// 386-SYMBOLS: Name: .Linfo_string0 -// 386-SYMBOLS-NOT: } -// 386-SYMBOLS: Section: .zdebug_str +// 386-SYMBOLS-GNU: Name: .Linfo_string0 +// 386-SYMBOLS-GNU-NOT: } +// 386-SYMBOLS-GNU: Section: .zdebug_str + +// Now check the zlib style output: + +// Don't compress small sections, such as this simple debug_abbrev example +// CHECK-ZLIB-STYLE: Contents of section .debug_abbrev: +// CHECK-ZLIB-STYLE-NOT: ZLIB +// CHECK-ZLIB-STYLE-NOT: Contents of +// CHECK-ZLIB-STYLE: Contents of section .debug_info: +// FIXME: Handle compressing alignment fragments to support compressing debug_frame +// CHECK-ZLIB-STYLE: Contents of section .debug_frame: +// CHECK-ZLIB-STYLE-NOT: ZLIB +// CHECK-ZLIB-STYLE: Contents of + +// Check that debug_line section was not renamed, so it is +// zlib-style, not zlib-gnu one. Check that SHF_COMPRESSED was set. +// ZLIB-STYLE-FLAGS: Section { +// ZLIB-STYLE-FLAGS: Index: +// ZLIB-STYLE-FLAGS: Name: .debug_str +// ZLIB-STYLE-FLAGS-NEXT: Type: SHT_PROGBITS +// ZLIB-STYLE-FLAGS-NEXT: Flags [ +// ZLIB-STYLE-FLAGS-NEXT: SHF_COMPRESSED + +// 386-SYMBOLS-ZLIB: Name: .Linfo_string0 +// 386-SYMBOLS-ZLIB-NOT: } +// 386-SYMBOLS-ZLIB: Section: .debug_str .section .debug_line,"",@progbits |

