[yaml2obj] Add new command line option -docnum.

Input YAML file might contain multiple object file definitions.
New option `-docnum` allows to specify an ordinal number (starting from 1)
of definition used for an object file generation.

Patch reviewed by Sean Silva.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209967 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Simon Atanasyan
2014-05-31 04:51:07 +00:00
parent 44c6354015
commit df96c562a5
8 changed files with 187 additions and 15 deletions

View File

@@ -0,0 +1,91 @@
# RUN: yaml2obj -format=coff -docnum=1 %s \
# RUN: | llvm-readobj -symbols - | FileCheck -check-prefix=DOC1 %s
# RUN: yaml2obj -format=coff -docnum=2 %s \
# RUN: | llvm-readobj -symbols - | FileCheck -check-prefix=DOC2 %s
# RUN: not yaml2obj -format=coff -docnum=3 %s 2>&1 \
# RUN: | FileCheck -check-prefix=DOC3 %s
# DOC1: Name: _sym1
# DOC2: Name: _sym2
# DOC3: yaml2obj: Cannot find the 3rd document
---
header:
Machine: IMAGE_FILE_MACHINE_I386
Characteristics: [ IMAGE_FILE_DEBUG_STRIPPED ]
sections:
- Name: .text
Alignment: 16
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE,
IMAGE_SCN_MEM_READ ]
SectionData: "00000000"
symbols:
- Name: .text
Value: 0
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_STATIC
SectionDefinition:
Length: 36
NumberOfRelocations: 3
NumberOfLinenumbers: 0
CheckSum: 0
Number: 1
- Name: _main
Value: 0
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
- Name: _sym1
Value: 0
SectionNumber: 0
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
---
header:
Machine: IMAGE_FILE_MACHINE_I386
Characteristics: [ IMAGE_FILE_DEBUG_STRIPPED ]
sections:
- Name: .text
Alignment: 16
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE,
IMAGE_SCN_MEM_READ ]
SectionData: "00000000"
symbols:
- Name: .text
Value: 0
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_STATIC
SectionDefinition:
Length: 36
NumberOfRelocations: 3
NumberOfLinenumbers: 0
CheckSum: 0
Number: 1
- Name: _main
Value: 0
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
- Name: _sym2
Value: 0
SectionNumber: 0
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
...

View File

@@ -0,0 +1,56 @@
# RUN: yaml2obj -format=elf -docnum=1 %s \
# RUN: | llvm-readobj -symbols - | FileCheck -check-prefix=DOC1 %s
# RUN: yaml2obj -format=elf -docnum=2 %s \
# RUN: | llvm-readobj -symbols - | FileCheck -check-prefix=DOC2 %s
# RUN: not yaml2obj -format=elf -docnum=3 %s 2>&1 \
# RUN: | FileCheck -check-prefix=DOC3 %s
# DOC1: Name: T1 (1)
# DOC2: Name: T2 (1)
# DOC3: yaml2obj: Cannot find the 3rd document
--- !ELF
FileHeader: !FileHeader
Class: ELFCLASS32
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_MIPS
Flags: [EF_MIPS_CPIC]
Sections:
- Name: .text
Type: SHT_PROGBITS
Content: "0000000000000000"
AddressAlign: 16
Flags: [SHF_EXECINSTR, SHF_ALLOC]
Symbols:
Global:
- Name: T1
Section: .text
Type: STT_FUNC
Value: 0x0
Size: 8
--- !ELF
FileHeader: !FileHeader
Class: ELFCLASS32
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_MIPS
Sections:
- Name: .text
Type: SHT_PROGBITS
Content: "00000000"
AddressAlign: 16
Flags: [SHF_EXECINSTR, SHF_ALLOC]
Symbols:
Global:
- Name: T2
Section: .text
Type: STT_FUNC
Value: 0x0
Size: 4
...