MaskRay created this revision. MaskRay added reviewers: ckissane, labath. Herald added subscribers: StephenFan, emaste. Herald added a reviewer: alexander-shaposhnikov. Herald added a project: All. MaskRay requested review of this revision. Herald added a project: LLDB. Herald added a subscriber: lldb-commits.
clang 14 removed -gz=zlib-gnu support and ld.lld/llvm-objcopy removed zlib-gnu support recently. Remove lldb support by migrating away from llvm::object::Decompressor::isCompressedELFSection. The API has another user llvm-dwp, so it is not removed in this patch. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D129724 Files: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp lldb/test/Shell/ObjectFile/ELF/compressed-sections.yaml lldb/test/Shell/SymbolFile/DWARF/x86/gnu-style-compression.yaml Index: lldb/test/Shell/SymbolFile/DWARF/x86/gnu-style-compression.yaml =================================================================== --- lldb/test/Shell/SymbolFile/DWARF/x86/gnu-style-compression.yaml +++ /dev/null @@ -1,56 +0,0 @@ -## NB: This is a yaml file because llvm gnu-style writing support in 14.0 -## (2022, D117744). In due time we may want to remove it from lldb as well. - -## Debug info generated from the following sources using clang-13 -## struct A { -## long a = 42; -## }; -## extern constexpr short s = 47; -## extern constexpr A a{}; - -# REQUIRES: zlib - -# RUN: yaml2obj %s > %t -# RUN: %lldb %t -o "target var s a" -b | FileCheck %s - -# CHECK: (const short) s = 47 -# CHECK: (const A) a = (a = 42) - ---- !ELF -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_EXEC - Machine: EM_X86_64 - Entry: 0x401000 -Sections: - - Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - Address: 0x401000 - AddressAlign: 0x8 - Offset: 0x1000 - Content: 2F000000000000002A00000000000000 - - Name: .zdebug_info - Type: SHT_PROGBITS - AddressAlign: 0x1 - Content: 5A4C49420000000000000077789C2B666060606100010E4610A9C820CA00012640CCE407248C81989197939941C0012CC16C01D2130024589998C280540848011F2733074C4124488E35116C28171B48493E480937505B04488A830100368605A7 - - Name: .debug_abbrev - Type: SHT_PROGBITS - AddressAlign: 0x1 - Content: 011101250E1305030E10171B0E0000023400030E49133F193A0B3B0B0218000003260049130000042400030E3E0B0B0B0000051301360B030E0B0B3A0B3B0B0000060D00030E49133A0B3B0B380B000000 - - Name: .debug_line - Type: SHT_PROGBITS - AddressAlign: 0x1 - Content: 3C000000040036000000010101FB0E0D0001010101000000010000012F746D700000676E752D7374796C652D636F6D7072657373696F6E2E6370700001000000 -DWARF: - debug_str: - - clang version 13.0.0 - - '/tmp/gnu-style-compression.cpp' - - '/tmp/my_working_directory' - - s - - short - - a - - long int - - A -... Index: lldb/test/Shell/ObjectFile/ELF/compressed-sections.yaml =================================================================== --- lldb/test/Shell/ObjectFile/ELF/compressed-sections.yaml +++ lldb/test/Shell/ObjectFile/ELF/compressed-sections.yaml @@ -16,6 +16,7 @@ Type: SHT_PROGBITS Flags: [ SHF_COMPRESSED ] Content: deadbeefbaadf00d +## The legacy .zdebug format is not supported, so the content is not uncompressed. - Name: .zdebug_info Type: SHT_PROGBITS Content: 5A4C49420000000000000008789c5330700848286898000009c802c1 @@ -40,5 +41,5 @@ # CHECK: dwarf-info # CHECK: File size: 28 # CHECK: Data: ( -# CHECK-NEXT: 20304050 60708090 +# CHECK-NEXT: 5A4C4942 00000000 00000008 789C5330 70084828 68980000 09C802C1 # CHECK-NEXT: ) Index: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp =================================================================== --- lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -3365,8 +3365,7 @@ return section->GetObjectFile()->ReadSectionData(section, section_data); size_t result = ObjectFile::ReadSectionData(section, section_data); - if (result == 0 || !llvm::object::Decompressor::isCompressedELFSection( - section->Get(), section->GetName().GetStringRef())) + if (result == 0 || !(section->Get() & llvm::ELF::SHF_COMPRESSED)) return result; auto Decompressor = llvm::object::Decompressor::create(
Index: lldb/test/Shell/SymbolFile/DWARF/x86/gnu-style-compression.yaml =================================================================== --- lldb/test/Shell/SymbolFile/DWARF/x86/gnu-style-compression.yaml +++ /dev/null @@ -1,56 +0,0 @@ -## NB: This is a yaml file because llvm gnu-style writing support in 14.0 -## (2022, D117744). In due time we may want to remove it from lldb as well. - -## Debug info generated from the following sources using clang-13 -## struct A { -## long a = 42; -## }; -## extern constexpr short s = 47; -## extern constexpr A a{}; - -# REQUIRES: zlib - -# RUN: yaml2obj %s > %t -# RUN: %lldb %t -o "target var s a" -b | FileCheck %s - -# CHECK: (const short) s = 47 -# CHECK: (const A) a = (a = 42) - ---- !ELF -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_EXEC - Machine: EM_X86_64 - Entry: 0x401000 -Sections: - - Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - Address: 0x401000 - AddressAlign: 0x8 - Offset: 0x1000 - Content: 2F000000000000002A00000000000000 - - Name: .zdebug_info - Type: SHT_PROGBITS - AddressAlign: 0x1 - Content: 5A4C49420000000000000077789C2B666060606100010E4610A9C820CA00012640CCE407248C81989197939941C0012CC16C01D2130024589998C280540848011F2733074C4124488E35116C28171B48493E480937505B04488A830100368605A7 - - Name: .debug_abbrev - Type: SHT_PROGBITS - AddressAlign: 0x1 - Content: 011101250E1305030E10171B0E0000023400030E49133F193A0B3B0B0218000003260049130000042400030E3E0B0B0B0000051301360B030E0B0B3A0B3B0B0000060D00030E49133A0B3B0B380B000000 - - Name: .debug_line - Type: SHT_PROGBITS - AddressAlign: 0x1 - Content: 3C000000040036000000010101FB0E0D0001010101000000010000012F746D700000676E752D7374796C652D636F6D7072657373696F6E2E6370700001000000 -DWARF: - debug_str: - - clang version 13.0.0 - - '/tmp/gnu-style-compression.cpp' - - '/tmp/my_working_directory' - - s - - short - - a - - long int - - A -... Index: lldb/test/Shell/ObjectFile/ELF/compressed-sections.yaml =================================================================== --- lldb/test/Shell/ObjectFile/ELF/compressed-sections.yaml +++ lldb/test/Shell/ObjectFile/ELF/compressed-sections.yaml @@ -16,6 +16,7 @@ Type: SHT_PROGBITS Flags: [ SHF_COMPRESSED ] Content: deadbeefbaadf00d +## The legacy .zdebug format is not supported, so the content is not uncompressed. - Name: .zdebug_info Type: SHT_PROGBITS Content: 5A4C49420000000000000008789c5330700848286898000009c802c1 @@ -40,5 +41,5 @@ # CHECK: dwarf-info # CHECK: File size: 28 # CHECK: Data: ( -# CHECK-NEXT: 20304050 60708090 +# CHECK-NEXT: 5A4C4942 00000000 00000008 789C5330 70084828 68980000 09C802C1 # CHECK-NEXT: ) Index: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp =================================================================== --- lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -3365,8 +3365,7 @@ return section->GetObjectFile()->ReadSectionData(section, section_data); size_t result = ObjectFile::ReadSectionData(section, section_data); - if (result == 0 || !llvm::object::Decompressor::isCompressedELFSection( - section->Get(), section->GetName().GetStringRef())) + if (result == 0 || !(section->Get() & llvm::ELF::SHF_COMPRESSED)) return result; auto Decompressor = llvm::object::Decompressor::create(
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits