- Name: .debug_bar
Type: SHT_PROGBITS
Content: 0000000000000000
+ - Name: .group
+ Type: SHT_GROUP
+ Link: .symtab
+ AddressAlign: 4
+ EntSize: 0x0000000000000004
+ Info: groupname
+ Members:
+ - SectionOrType: GRP_COMDAT
+ - SectionOrType: .text.in.group
+ - SectionOrType: .debug_in_group
+ - Name: .text.in.group
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ]
+ Content: '00'
+ - Name: .debug_in_group
+ Type: SHT_PROGBITS
+ Flags: [ SHF_GROUP ]
+ Content: '00'
Symbols:
Global:
- Name: .debug_foo
Section: .notdebug_foo
- Name: .Linfo_string0
Section: .debug_bar
+ - Name: groupname
+ Section: .group
...
--- /dev/null
+# REQUIRES: zlib
+
+## In this test, we check how llvm-objcopy handles compression/decompression
+## of debug sections included in a COMDAT group.
+
+# RUN: yaml2obj %p/Inputs/compress-debug-sections.yaml -o %t.o
+
+## Check compression of debug sections.
+# RUN: llvm-objcopy --compress-debug-sections %t.o %t-compressed.o
+# RUN: llvm-readobj -s -elf-section-groups %t-compressed.o | \
+# RUN: FileCheck %s --check-prefixes=CHECK,COMPRESS
+
+## Check zlib-gnu compression of debug sections.
+# RUN: llvm-objcopy --compress-debug-sections=zlib-gnu %t.o %t-compressed-gnu.o
+# RUN: llvm-readobj -s -elf-section-groups %t-compressed-gnu.o | \
+# RUN: FileCheck %s --check-prefixes=CHECK,COMPRESSZLIB
+
+## Check decompression of debug sections.
+# RUN: llvm-objcopy --decompress-debug-sections %t-compressed.o %t-decompressed.o
+# RUN: llvm-readobj -elf-section-groups %t-decompressed.o | \
+# RUN: FileCheck %s --check-prefixes=CHECK,DECOMPRESS
+
+## Check decompression of zlib-gnu debug sections.
+# RUN: llvm-objcopy --decompress-debug-sections %t-compressed-gnu.o %t-decompressed-gnu.o
+# RUN: llvm-readobj -elf-section-groups %t-decompressed-gnu.o | \
+# RUN: FileCheck %s --check-prefixes=CHECK,DECOMPRESS
+
+# COMPRESSZLIB: Name: .zdebug_in_group
+# COMPRESSZLIB-NEXT: Type: SHT_PROGBITS
+# COMPRESSZLIB-NEXT: Flags [
+# COMPRESSZLIB-NEXT: SHF_GROUP
+# COMPRESSZLIB-NEXT: ]
+
+# COMPRESS: Name: .debug_in_group
+# COMPRESS-NEXT: Type: SHT_PROGBITS
+# COMPRESS-NEXT: Flags [
+# COMPRESS-NEXT: SHF_COMPRESSED
+# COMPRESS-NEXT: SHF_GROUP
+# COMPRESS-NEXT: ]
+
+# CHECK: Group {
+# CHECK-NEXT: Name: .group
+# CHECK-NEXT: Index:
+# CHECK-NEXT: Link:
+# CHECK-NEXT: Info:
+# CHECK-NEXT: Type: COMDAT
+# CHECK-NEXT: Signature: groupname
+# CHECK-NEXT: Section(s) in group [
+# CHECK-NEXT: .text.in.group
+# COMPRESSZLIB-NEXT: .zdebug_in_group
+# COMPRESS-NEXT: .debug_in_group
+# DECOMPRESS-NEXT: .debug_in_group
+# CHECK-NEXT: ]