From d2740bcf5c84d4f5d71e4058b25169034ec8f5e5 Mon Sep 17 00:00:00 2001 From: ShengYi Hung Date: Tue, 7 Oct 2025 21:46:52 +0800 Subject: [PATCH 1/2] [Object, ELF] Implement PN_XNUM extension for program headers In ELF file, there is a possible extended header for those phnum, shnum, and shstrndx larger than the maximum of 16 bits. This extended header use section 0 to record these fields in 32 bits. We implment this feature so that programs rely on ELFFile::program_headers() can get the correct number of segments. Also, the consumers don't have to check the section 0 themselve, insteead, they can use the getPhNum() as an alternative. --- llvm/include/llvm/BinaryFormat/ELF.h | 2 + llvm/include/llvm/Object/ELF.h | 60 +++++++++++++++++++--------- llvm/include/llvm/Object/ELFTypes.h | 5 +++ 3 files changed, 48 insertions(+), 19 deletions(-) diff --git a/llvm/include/llvm/BinaryFormat/ELF.h b/llvm/include/llvm/BinaryFormat/ELF.h index e619b186dfe3d..136f8cfbde818 100644 --- a/llvm/include/llvm/BinaryFormat/ELF.h +++ b/llvm/include/llvm/BinaryFormat/ELF.h @@ -1123,6 +1123,8 @@ struct Elf64_Shdr { Elf64_Xword sh_entsize; }; +enum { PN_XNUM = 0xffff }; + // Special section indices. enum { SHN_UNDEF = 0, // Undefined, missing, irrelevant, or meaningless diff --git a/llvm/include/llvm/Object/ELF.h b/llvm/include/llvm/Object/ELF.h index 59f63eb6b5bb6..3b96c0e2b9d1f 100644 --- a/llvm/include/llvm/Object/ELF.h +++ b/llvm/include/llvm/Object/ELF.h @@ -278,9 +278,16 @@ class ELFFile { std::vector FakeSections; SmallString<0> FakeSectionStrings; + Elf_Word RealPhNum; + Elf_Word RealShNum; + Elf_Word RealShStrNdx; + ELFFile(StringRef Object); public: + Elf_Word getPhNum() const { return RealPhNum; } + Elf_Word getShNum() const { return RealShNum; } + Elf_Word getShStrNdx() const { return RealShStrNdx; } const Elf_Ehdr &getHeader() const { return *reinterpret_cast(base()); } @@ -379,22 +386,21 @@ class ELFFile { /// Iterate over program header table. Expected program_headers() const { - if (getHeader().e_phnum && getHeader().e_phentsize != sizeof(Elf_Phdr)) + if (RealPhNum && getHeader().e_phentsize != sizeof(Elf_Phdr)) return createError("invalid e_phentsize: " + Twine(getHeader().e_phentsize)); - uint64_t HeadersSize = - (uint64_t)getHeader().e_phnum * getHeader().e_phentsize; + uint64_t HeadersSize = (uint64_t)RealPhNum * getHeader().e_phentsize; uint64_t PhOff = getHeader().e_phoff; if (PhOff + HeadersSize < PhOff || PhOff + HeadersSize > getBufSize()) return createError("program headers are longer than binary of size " + Twine(getBufSize()) + ": e_phoff = 0x" + Twine::utohexstr(getHeader().e_phoff) + - ", e_phnum = " + Twine(getHeader().e_phnum) + + ", e_phnum = " + Twine(RealPhNum) + ", e_phentsize = " + Twine(getHeader().e_phentsize)); auto *Begin = reinterpret_cast(base() + PhOff); - return ArrayRef(Begin, Begin + getHeader().e_phnum); + return ArrayRef(Begin, Begin + RealPhNum); } /// Get an iterator over notes in a program header. @@ -772,18 +778,10 @@ template Expected ELFFile::getSectionStringTable(Elf_Shdr_Range Sections, WarningHandler WarnHandler) const { - uint32_t Index = getHeader().e_shstrndx; - if (Index == ELF::SHN_XINDEX) { - // If the section name string table section index is greater than - // or equal to SHN_LORESERVE, then the actual index of the section name - // string table section is contained in the sh_link field of the section - // header at index 0. - if (Sections.empty()) - return createError( - "e_shstrndx == SHN_XINDEX, but the section header table is empty"); - - Index = Sections[0].sh_link; - } + uint32_t Index = RealShStrNdx; + if (Index == ELF::SHN_XINDEX) + return createError( + "e_shstrndx == SHN_XINDEX, but the section header table is empty"); // There is no section name string table. Return FakeSectionStrings which // is non-empty if we have created fake sections. @@ -889,7 +887,31 @@ Expected ELFFile::getDynSymtabSize() const { return 0; } -template ELFFile::ELFFile(StringRef Object) : Buf(Object) {} +template ELFFile::ELFFile(StringRef Object) : Buf(Object) { + const Elf_Ehdr &Header = getHeader(); + RealPhNum = Header.e_phnum; + RealShNum = Header.e_shnum; + RealShStrNdx = Header.e_shstrndx; + if (!Header.hasPhdrNumExtension()) + return; + + // An ELF binary may report `hasExtendedHeader` as true but not actually + // include an extended header. For example, a core dump can contain 65,535 + // segments but no sections at all. We defer reporting an error until section + // 0 is accessed. Consumers should handle and emit the error themselves when + // they attempt to access it. + auto SecOrErr = getSection(0); + if (!SecOrErr) { + consumeError(SecOrErr.takeError()); + return; + } + if (RealPhNum == 0xFFFF) + RealPhNum = (*SecOrErr)->sh_info; + if (RealShNum == ELF::SHN_UNDEF) + RealShNum = (*SecOrErr)->sh_size; + if (RealShStrNdx == ELF::SHN_XINDEX) + RealShStrNdx = (*SecOrErr)->sh_link; +} template Expected> ELFFile::create(StringRef Object) { @@ -956,7 +978,7 @@ Expected ELFFile::sections() const { const Elf_Shdr *First = reinterpret_cast(base() + SectionTableOffset); - uintX_t NumSections = getHeader().e_shnum; + uintX_t NumSections = RealShNum; if (NumSections == 0) NumSections = First->sh_size; diff --git a/llvm/include/llvm/Object/ELFTypes.h b/llvm/include/llvm/Object/ELFTypes.h index 5a26e2fc31458..b791f7486fe97 100644 --- a/llvm/include/llvm/Object/ELFTypes.h +++ b/llvm/include/llvm/Object/ELFTypes.h @@ -529,6 +529,11 @@ struct Elf_Ehdr_Impl { unsigned char getFileClass() const { return e_ident[ELF::EI_CLASS]; } unsigned char getDataEncoding() const { return e_ident[ELF::EI_DATA]; } + bool hasPhdrNumExtension() const { + return (e_phnum == ELF::PN_XNUM || e_shnum == ELF::SHN_UNDEF || + e_shstrndx == ELF::SHN_XINDEX) && + e_shoff != 0; + } }; template From 70f9399bcd8b6a361e0059cf80ae5484590ce33c Mon Sep 17 00:00:00 2001 From: ShengYi Hung Date: Thu, 9 Oct 2025 20:11:22 +0800 Subject: [PATCH 2/2] [llvm-readobj, ELF] Support reading bianry has more than PN_XNUM segments Some binary, like FreeBSD coredump, use program headers to store mmaps informations. It is possible for program to use more than PN_XNUM program headers. Therefore, we implemnet the support of PN_XNBUM in readelf and objcopy. --- .../tools/llvm-objcopy/ELF/many-sections.test | 4 +- .../ELF/Inputs/many-segments.o.gz | Bin 0 -> 952482 bytes .../tools/llvm-readobj/ELF/many-segments.test | 79 ++++++++++++++++++ llvm/tools/llvm-readobj/ELFDumper.cpp | 48 +++++++---- 4 files changed, 113 insertions(+), 18 deletions(-) create mode 100644 llvm/test/tools/llvm-readobj/ELF/Inputs/many-segments.o.gz create mode 100644 llvm/test/tools/llvm-readobj/ELF/many-segments.test diff --git a/llvm/test/tools/llvm-objcopy/ELF/many-sections.test b/llvm/test/tools/llvm-objcopy/ELF/many-sections.test index 6622db237026f..4c618acb5c951 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/many-sections.test +++ b/llvm/test/tools/llvm-objcopy/ELF/many-sections.test @@ -6,8 +6,8 @@ RUN: llvm-readobj --file-headers --sections --symbols %t2 | FileCheck %s RUN: llvm-readelf --symbols %t2 | FileCheck --check-prefix=SYMS %s ## The ELF header should have e_shnum == 0 and e_shstrndx == SHN_XINDEX. -# CHECK: SectionHeaderCount: 0 -# CHECK-NEXT: StringTableSectionIndex: 65535 +# CHECK: SectionHeaderCount: 0 (65540) +# CHECK-NEXT: StringTableSectionIndex: 65535 (65539) ## The first section header should store the real section header count and ## shstrndx in its fields. diff --git a/llvm/test/tools/llvm-readobj/ELF/Inputs/many-segments.o.gz b/llvm/test/tools/llvm-readobj/ELF/Inputs/many-segments.o.gz new file mode 100644 index 0000000000000000000000000000000000000000..0709ed1d6389e9b6d917c2df6ea4ec68d4adf026 GIT binary patch literal 952482 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�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 %t +RUN: llvm-readobj --file-headers --sections --segments %t | FileCheck %s +RUN: llvm-readelf --segments %t | FileCheck --check-prefix=SYMS %s + +## The ELF header should have e_phnum == PN_XNUM +# CHECK: ProgramHeaderCount: 65535 (66549) +## The first section header should store the real program header count in its fields. +# CHECK: Section { +# CHECK-NEXT: Index: 0 +# CHECK-NEXT: Name: +# CHECK-NEXT: Type: SHT_NULL +# CHECK-NEXT: Flags [ +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: +# CHECK-NEXT: Link: +# CHECK-NEXT: Info: 66549 + +## Show that the symbols with segments indexes around the reserved range still +## have the right segment indexes afterwards. +# 65535th segment +# CHECK: Offset: 0x1183B000 +# CHECK-NEXT: VirtualAddress: 0x349139F3000 +# CHECK: } +# CHECK-NEXT ProgramHeader { +# CHECK-NEXT Type: PT_LOAD (0x1) +# CHECK-NEXT Offset: 0x1183C000 +# CHECK-NEXT VirtualAddress: 0x349139F4000 +# CHECK-NEXT PhysicalAddress: 0x0 +# CHECK-NEXT FileSize: 4096 +# CHECK-NEXT MemSize: 4096 +# CHECK-NEXT Flags [ (0x4) +# CHECK-NEXT PF_R (0x4) +# CHECK-NEXT ] +# CHECK-NEXT Alignment: 4096 +# CHECK-NEXT } +# CHECK-NEXT ProgramHeader { +# CHECK-NEXT Type: PT_LOAD (0x1) +# CHECK-NEXT Offset: 0x1183D000 +# CHECK-NEXT VirtualAddress: 0x349139F5000 +# CHECK-NEXT PhysicalAddress: 0x0 +# CHECK-NEXT FileSize: 4096 +# CHECK-NEXT MemSize: 4096 +# CHECK-NEXT Flags [ (0x6) +# CHECK-NEXT PF_R (0x4) +# CHECK-NEXT PF_W (0x2) +# CHECK-NEXT ] +# CHECK-NEXT Alignment: 4096 +# CHECK-NEXT } +# CHECK-NEXT ProgramHeader { +# CHECK-NEXT Type: PT_LOAD (0x1) +# CHECK-NEXT Offset: 0x1183E000 +# CHECK-NEXT VirtualAddress: 0x349139F6000 +# CHECK-NEXT PhysicalAddress: 0x0 +# CHECK-NEXT FileSize: 4096 +# CHECK-NEXT MemSize: 4096 +# CHECK-NEXT Flags [ (0x4) +# CHECK-NEXT PF_R (0x4) +# CHECK-NEXT ] +# CHECK-NEXT Alignment: 4096 +# CHECK-NEXT } +# CHECK ProgramHeader { +# CHECK-NEXT Type: PT_LOAD (0x1) +# CHECK-NEXT Offset: 0x11C31000 +# CHECK-NEXT VirtualAddress: 0x30D8E7868000 +# CHECK-NEXT PhysicalAddress: 0x0 +# CHECK-NEXT FileSize: 8192 +# CHECK-NEXT MemSize: 8192 +# CHECK-NEXT Flags [ (0x6) +# CHECK-NEXT PF_R (0x4) +# CHECK-NEXT PF_W (0x2) +# CHECK-NEXT ] +# CHECK-NEXT Alignment: 4096 +# CHECK-NEXT } + +# SYMS: There are 66549 program headers, starting at offset 64 diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index ab93316907cc6..53d3a439f1e62 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -3572,12 +3572,30 @@ static inline void printFields(formatted_raw_ostream &OS, StringRef Str1, OS.flush(); } +template +static std::string getProgramHeadersNumString(const ELFFile &Obj, + StringRef FileName) { + if (Obj.getHeader().e_phnum != ELF::PN_XNUM) + return to_string(Obj.getHeader().e_phnum); + + Expected> ArrOrErr = Obj.sections(); + if (!ArrOrErr) { + // In this case we can ignore an error, because we have already reported a + // warning about the broken section header table earlier. + consumeError(ArrOrErr.takeError()); + return ""; + } + + if (Obj.getHeader().e_phnum == Obj.getPhNum()) + return "65535"; + return "65535 (" + to_string(Obj.getPhNum()) + ")"; +} + template static std::string getSectionHeadersNumString(const ELFFile &Obj, StringRef FileName) { - const typename ELFT::Ehdr &ElfHeader = Obj.getHeader(); - if (ElfHeader.e_shnum != 0) - return to_string(ElfHeader.e_shnum); + if (Obj.getHeader().e_shnum != 0) + return to_string(Obj.getHeader().e_shnum); Expected> ArrOrErr = Obj.sections(); if (!ArrOrErr) { @@ -3587,17 +3605,16 @@ static std::string getSectionHeadersNumString(const ELFFile &Obj, return ""; } - if (ArrOrErr->empty()) + if (Obj.getHeader().e_shnum == Obj.getShNum()) return "0"; - return "0 (" + to_string((*ArrOrErr)[0].sh_size) + ")"; + return "0 (" + to_string(Obj.getShNum()) + ")"; } template static std::string getSectionHeaderTableIndexString(const ELFFile &Obj, StringRef FileName) { - const typename ELFT::Ehdr &ElfHeader = Obj.getHeader(); - if (ElfHeader.e_shstrndx != SHN_XINDEX) - return to_string(ElfHeader.e_shstrndx); + if (Obj.getHeader().e_shstrndx != SHN_XINDEX) + return to_string(Obj.getHeader().e_shstrndx); Expected> ArrOrErr = Obj.sections(); if (!ArrOrErr) { @@ -3607,10 +3624,9 @@ static std::string getSectionHeaderTableIndexString(const ELFFile &Obj, return ""; } - if (ArrOrErr->empty()) + if (Obj.getHeader().e_shstrndx == Obj.getShStrNdx()) return "65535 (corrupt: out of range)"; - return to_string(ElfHeader.e_shstrndx) + " (" + - to_string((*ArrOrErr)[0].sh_link) + ")"; + return "65535 (" + to_string(Obj.getShStrNdx()) + ")"; } static const EnumEntry *getObjectFileEnumEntry(unsigned Type) { @@ -3765,7 +3781,7 @@ template void GNUELFDumper::printFileHeaders() { printFields(OS, "Size of this header:", Str); Str = to_string(e.e_phentsize) + " (bytes)"; printFields(OS, "Size of program headers:", Str); - Str = to_string(e.e_phnum); + Str = getProgramHeadersNumString(this->Obj, this->FileName); printFields(OS, "Number of program headers:", Str); Str = to_string(e.e_shentsize) + " (bytes)"; printFields(OS, "Size of section headers:", Str); @@ -4778,8 +4794,7 @@ void GNUELFDumper::printProgramHeaders( return; if (PrintProgramHeaders) { - const Elf_Ehdr &Header = this->Obj.getHeader(); - if (Header.e_phnum == 0) { + if (this->Obj.getPhNum() == 0) { OS << "\nThere are no program headers in this file.\n"; } else { printProgramHeaders(); @@ -4798,7 +4813,7 @@ template void GNUELFDumper::printProgramHeaders() { OS << "\nElf file type is " << enumToString(Header.e_type, ArrayRef(ElfObjectFileType)) << "\n" << "Entry point " << format_hex(Header.e_entry, 3) << "\n" - << "There are " << Header.e_phnum << " program headers," + << "There are " << this->Obj.getPhNum() << " program headers," << " starting at offset " << Header.e_phoff << "\n\n" << "Program Headers:\n"; if (ELFT::Is64Bits) @@ -7470,7 +7485,8 @@ template void LLVMELFDumper::printFileHeaders() { W.printFlags("Flags", E.e_flags); W.printNumber("HeaderSize", E.e_ehsize); W.printNumber("ProgramHeaderEntrySize", E.e_phentsize); - W.printNumber("ProgramHeaderCount", E.e_phnum); + W.printString("ProgramHeaderCount", + getProgramHeadersNumString(this->Obj, this->FileName)); W.printNumber("SectionHeaderEntrySize", E.e_shentsize); W.printString("SectionHeaderCount", getSectionHeadersNumString(this->Obj, this->FileName));