diff --git a/llvm/lib/Object/ELF.cpp b/llvm/lib/Object/ELF.cpp --- a/llvm/lib/Object/ELF.cpp +++ b/llvm/lib/Object/ELF.cpp @@ -255,6 +255,8 @@ STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_ADDRSIG); STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_DEPENDENT_LIBRARIES); STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_SYMPART); + STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_PART_EHDR); + STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_PART_PHDR); STRINGIFY_ENUM_CASE(ELF, SHT_GNU_ATTRIBUTES); STRINGIFY_ENUM_CASE(ELF, SHT_GNU_HASH); STRINGIFY_ENUM_CASE(ELF, SHT_GNU_verdef); diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp --- a/llvm/lib/ObjectYAML/ELFYAML.cpp +++ b/llvm/lib/ObjectYAML/ELFYAML.cpp @@ -463,6 +463,9 @@ ECase(SHT_LLVM_CALL_GRAPH_PROFILE); ECase(SHT_LLVM_ADDRSIG); ECase(SHT_LLVM_DEPENDENT_LIBRARIES); + ECase(SHT_LLVM_SYMPART); + ECase(SHT_LLVM_PART_EHDR); + ECase(SHT_LLVM_PART_PHDR); ECase(SHT_GNU_ATTRIBUTES); ECase(SHT_GNU_HASH); ECase(SHT_GNU_verdef); diff --git a/llvm/test/tools/llvm-readobj/elf-section-types.test b/llvm/test/tools/llvm-readobj/elf-section-types.test --- a/llvm/test/tools/llvm-readobj/elf-section-types.test +++ b/llvm/test/tools/llvm-readobj/elf-section-types.test @@ -51,6 +51,14 @@ # LLVM: Type: SHT_LLVM_CALL_GRAPH_PROFILE # LLVM: Name: llvm_addrsig # LLVM: Type: SHT_LLVM_ADDRSIG +# LLVM: Name: .deplibs +# LLVM: Type: SHT_LLVM_DEPENDENT_LIBRARIES +# LLVM: Name: .llvm_sympart.f +# LLVM: Type: SHT_LLVM_SYMPART +# LLVM: Name: part1 +# LLVM: Type: SHT_LLVM_PART_EHDR +# LLVM: Name: .phdrs +# LLVM: Type: SHT_LLVM_PART_PHDR # LLVM: Name: gnu_attributes # LLVM: Type: SHT_GNU_ATTRIBUTES # LLVM: Name: gnu_hash @@ -107,6 +115,10 @@ # GNU-NEXT: linker_options LLVM_LINKER_OPTIONS # GNU-NEXT: llvm_call_graph_profile LLVM_CALL_GRAPH_PROFILE # GNU-NEXT: llvm_addrsig LLVM_ADDRSIG +# GNU-NEXT: .deplibs LLVM_DEPENDENT_LIBRARIES +# GNU-NEXT: .llvm_sympart.f LLVM_SYMPART +# GNU-NEXT: part1 LLVM_PART_EHDR +# GNU-NEXT: .phdrs LLVM_PART_PHDR # GNU-NEXT: gnu_attributes ATTRIBUTES # GNU-NEXT: gnu_hash GNU_HASH # GNU-NEXT: gnu_verdef VERDEF @@ -183,6 +195,14 @@ Type: SHT_LLVM_CALL_GRAPH_PROFILE - Name: llvm_addrsig Type: SHT_LLVM_ADDRSIG + - Name: .deplibs + Type: SHT_LLVM_DEPENDENT_LIBRARIES + - Name: .llvm_sympart.f + Type: SHT_LLVM_SYMPART + - Name: part1 + Type: SHT_LLVM_PART_EHDR + - Name: .phdrs + Type: SHT_LLVM_PART_PHDR - Name: gnu_attributes Type: SHT_GNU_ATTRIBUTES - Name: gnu_hash diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -3111,6 +3111,12 @@ return "LLVM_ADDRSIG"; case SHT_LLVM_DEPENDENT_LIBRARIES: return "LLVM_DEPENDENT_LIBRARIES"; + case SHT_LLVM_SYMPART: + return "LLVM_SYMPART"; + case SHT_LLVM_PART_EHDR: + return "LLVM_PART_EHDR"; + case SHT_LLVM_PART_PHDR: + return "LLVM_PART_PHDR"; // FIXME: Parse processor specific GNU attributes case SHT_GNU_ATTRIBUTES: return "ATTRIBUTES";