When --compress-debug-sections is given, llvm-objcopy do not compress sections that have "ZLIB" header in data. Normally this signature is used in zlib-gnu compression format. But if zlib-gnu used then the name of the compressed section should start from .z* (e.g .zdebug_info). If it does not, then it is not a zlib-gnu format and section should be treated as a normal uncompressed section. Differential revision: https://reviews.llvm.org/D58908 llvm-svn: 355399
42 lines
1.2 KiB
Plaintext
42 lines
1.2 KiB
Plaintext
# REQUIRES: zlib
|
|
|
|
# RUN: yaml2obj %s -o %t1.o
|
|
# RUN: llvm-objcopy --compress-debug-sections %t1.o %t2.o
|
|
# RUN: llvm-readobj -s %t2.o | FileCheck %s
|
|
|
|
# Non-.zdebug* sections whose data does start with "ZLIB" should
|
|
# not be considered as zlib-gnu compressed sections.
|
|
|
|
# In this test we have 2 normal sections, one of them starts with "ZLIB",
|
|
# another starts with "ZZZZ". Check we compress both as expected.
|
|
|
|
# CHECK: Name: .debug_foo
|
|
# CHECK-NEXT: Type: SHT_PROGBITS
|
|
# CHECK-NEXT: Flags [
|
|
# CHECK-NEXT: SHF_COMPRESSED
|
|
# CHECK-NEXT: ]
|
|
|
|
# CHECK: Name: .debug_bar
|
|
# CHECK-NEXT: Type: SHT_PROGBITS
|
|
# CHECK-NEXT: Flags [
|
|
# CHECK-NEXT: SHF_COMPRESSED
|
|
# CHECK-NEXT: ]
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_REL
|
|
Machine: EM_X86_64
|
|
Sections:
|
|
- Name: .debug_foo
|
|
Type: SHT_PROGBITS
|
|
AddressAlign: 0x0000000000000001
|
|
# "ZLIB"
|
|
Content: 5A4C49420000000000000000
|
|
- Name: .debug_bar
|
|
Type: SHT_PROGBITS
|
|
AddressAlign: 0x0000000000000001
|
|
# "ZZZZ"
|
|
Content: 5A5A5A5A0000000000000000
|