forked from OSchip/llvm-project
[yaml2obj] - Teach yaml2obj to produce SHT_GROUP section with a custom Info field.
This allows to set custom Info field value for SHT_GROUP sections. It is useful to allow this because we would be able to replace at least one binary object committed in LLD and replace it with the yaml2obj based test. Differential revision: https://reviews.llvm.org/D50776 llvm-svn: 339772
This commit is contained in:
parent
e1a04b4659
commit
942e8ed19d
|
@ -0,0 +1,27 @@
|
|||
# RUN: yaml2obj %s -o %t
|
||||
# RUN: llvm-readobj -sections %t | FileCheck %s
|
||||
|
||||
--- !ELF
|
||||
FileHeader:
|
||||
Class: ELFCLASS64
|
||||
Data: ELFDATA2LSB
|
||||
Type: ET_REL
|
||||
Machine: EM_X86_64
|
||||
Sections:
|
||||
- Name: .group
|
||||
Type: SHT_GROUP
|
||||
Link: .symtab
|
||||
Info: 12345
|
||||
Members:
|
||||
- SectionOrType: GRP_COMDAT
|
||||
|
||||
## Check we are able to produce SHT_GROUP section with a custom Info value (12345).
|
||||
# CHECK: Name: .group
|
||||
# CHECK-NEXT: Type: SHT_GROUP
|
||||
# CHECK-NEXT: Flags [
|
||||
# CHECK-NEXT: ]
|
||||
# CHECK-NEXT: Address:
|
||||
# CHECK-NEXT: Offset:
|
||||
# CHECK-NEXT: Size:
|
||||
# CHECK-NEXT: Link:
|
||||
# CHECK-NEXT: Info: 12345
|
|
@ -274,7 +274,7 @@ bool ELFState<ELFT>::initSectionHeaders(std::vector<Elf_Shdr> &SHeaders,
|
|||
return false;
|
||||
} else if (auto S = dyn_cast<ELFYAML::Group>(Sec.get())) {
|
||||
unsigned SymIdx;
|
||||
if (SymN2I.lookup(S->Info, SymIdx)) {
|
||||
if (SymN2I.lookup(S->Info, SymIdx) && !to_integer(S->Info, SymIdx)) {
|
||||
WithColor::error() << "Unknown symbol referenced: '" << S->Info
|
||||
<< "' at YAML section '" << S->Name << "'.\n";
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue