[llvm] 73c84f9 - [llvm-objcopy] Remove remnant .zdebug code
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 24 18:52:20 PDT 2022
Author: Fangrui Song
Date: 2022-07-24T18:52:15-07:00
New Revision: 73c84f9c13e96a4722ad489e79f8608925cc9e78
URL: https://github.com/llvm/llvm-project/commit/73c84f9c13e96a4722ad489e79f8608925cc9e78
DIFF: https://github.com/llvm/llvm-project/commit/73c84f9c13e96a4722ad489e79f8608925cc9e78.diff
LOG: [llvm-objcopy] Remove remnant .zdebug code
Added:
Modified:
llvm/lib/ObjCopy/ELF/ELFObject.cpp
Removed:
################################################################################
diff --git a/llvm/lib/ObjCopy/ELF/ELFObject.cpp b/llvm/lib/ObjCopy/ELF/ELFObject.cpp
index 8b44c09023f19..958ffaae7a58a 100644
--- a/llvm/lib/ObjCopy/ELF/ELFObject.cpp
+++ b/llvm/lib/ObjCopy/ELF/ELFObject.cpp
@@ -434,41 +434,24 @@ Error SectionWriter::visit(const OwnedDataSection &Sec) {
return Error::success();
}
-static constexpr std::array<uint8_t, 4> ZlibGnuMagic = {{'Z', 'L', 'I', 'B'}};
-
-static bool isDataGnuCompressed(ArrayRef<uint8_t> Data) {
- return Data.size() > ZlibGnuMagic.size() &&
- std::equal(ZlibGnuMagic.begin(), ZlibGnuMagic.end(), Data.data());
-}
-
template <class ELFT>
static std::tuple<uint64_t, uint64_t>
getDecompressedSizeAndAlignment(ArrayRef<uint8_t> Data) {
- const bool IsGnuDebug = isDataGnuCompressed(Data);
const uint64_t DecompressedSize =
- IsGnuDebug
- ? support::endian::read64be(Data.data() + ZlibGnuMagic.size())
- : reinterpret_cast<const Elf_Chdr_Impl<ELFT> *>(Data.data())->ch_size;
+ reinterpret_cast<const Elf_Chdr_Impl<ELFT> *>(Data.data())->ch_size;
const uint64_t DecompressedAlign =
- IsGnuDebug ? 1
- : reinterpret_cast<const Elf_Chdr_Impl<ELFT> *>(Data.data())
- ->ch_addralign;
+ reinterpret_cast<const Elf_Chdr_Impl<ELFT> *>(Data.data())->ch_addralign;
return std::make_tuple(DecompressedSize, DecompressedAlign);
}
template <class ELFT>
Error ELFSectionWriter<ELFT>::visit(const DecompressedSection &Sec) {
- const size_t DataOffset = isDataGnuCompressed(Sec.OriginalData)
- ? (ZlibGnuMagic.size() + sizeof(Sec.Size))
- : sizeof(Elf_Chdr_Impl<ELFT>);
-
- ArrayRef<uint8_t> CompressedContent(Sec.OriginalData.data() + DataOffset,
- Sec.OriginalData.size() - DataOffset);
+ ArrayRef<uint8_t> Compressed =
+ Sec.OriginalData.slice(sizeof(Elf_Chdr_Impl<ELFT>));
SmallVector<uint8_t, 128> DecompressedContent;
- if (Error Err =
- compression::zlib::uncompress(CompressedContent, DecompressedContent,
- static_cast<size_t>(Sec.Size)))
+ if (Error Err = compression::zlib::uncompress(Compressed, DecompressedContent,
+ static_cast<size_t>(Sec.Size)))
return createStringError(errc::invalid_argument,
"'" + Sec.Name + "': " + toString(std::move(Err)));
@@ -1731,7 +1714,7 @@ Expected<SectionBase &> ELFBuilder<ELFT>::makeSection(const Elf_Shdr &Shdr) {
if (!Name)
return Name.takeError();
- if (Name->startswith(".zdebug") || (Shdr.sh_flags & ELF::SHF_COMPRESSED)) {
+ if (Shdr.sh_flags & ELF::SHF_COMPRESSED) {
uint64_t DecompressedSize, DecompressedAlign;
std::tie(DecompressedSize, DecompressedAlign) =
getDecompressedSizeAndAlignment<ELFT>(*Data);
More information about the llvm-commits
mailing list