Imported Upstream version 6.10.0.49

Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-01-16 16:38:04 +00:00
parent d94e79959b
commit 468663ddbb
48518 changed files with 2789335 additions and 61176 deletions

View File

@@ -0,0 +1,41 @@
# Ensures that implicitly added sections can be ordered within Sections.
# RUN: yaml2obj %s -o %t
# RUN: llvm-readobj -sections %t | FileCheck %s --check-prefix=SECTION
# RUN: llvm-nm -dynamic %t | FileCheck %s --check-prefix=SYMBOL
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_DYN
Machine: EM_X86_64
Sections:
- Name: .data
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_WRITE ]
DynamicSymbols:
Global:
- Name: dynglobal
Type: STT_OBJECT
Section: .data
Weak:
- Name: dynweak
Type: STT_OBJECT
Section: .data
Local:
- Name: dynlocal
Type: STT_OBJECT
Section: .data
# SECTION: Name: .dynsym
# SECTION-NEXT: Type: SHT_DYNSYM
# SECTION-NEXT: Flags
# SECTION-NEXT: SHF_ALLOC
# SECTION: Name: .dynstr
# SECTION-NEXT: Type: SHT_STRTAB
# SECTION-NEXT: Flags
# SECTION-NEXT: SHF_ALLOC
# SYMBOL-DAG: D dynglobal
# SYMBOL-DAG: V dynweak
# SYMBOL-DAG: d dynlocal

View File

@@ -0,0 +1,10 @@
# Ensure yaml2obj doesn't error on empty optional mappings, such as Symbols
# RUN: yaml2obj %s -o %t
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_DYN
Machine: EM_X86_64
Symbols:

View File

@@ -0,0 +1,29 @@
# This test succeeds but produces an invalid relocation. This test
# documents this behavoir.
# RUN: yaml2obj %s > %t
# RUN: llvm-readobj -relocations %t | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Content: "00000000"
- Name: .rel.text
Type: SHT_REL
Link: .symtab
Info: .text
Relocations:
- Offset: 0x1000
Type: R_X86_64_PC32
#CHECK: Relocations [
#CHECK-NEXT: Section (2) .rel.text {
#CHECK-NEXT: 0x1000 R_X86_64_PC32 - 0x0
#CHECK-NEXT: }
#CHECK-NEXT:]

View File

@@ -0,0 +1,4 @@
# RUN: not yaml2obj -o %p/path/does/not/exist 2>&1 | FileCheck %s
# Don't check the OS-dependent message "No such file or directory".
# CHECK: yaml2obj: Error opening '{{.*}}/path/does/not/exist': {{.*}}

View File

@@ -0,0 +1 @@
config.suffixes = ['.yaml']

View File

@@ -0,0 +1,9 @@
# RUN: not yaml2obj %s 2>&1 | FileCheck %s
---
DummyData:
foo: 0
...
# CHECK: YAML:4:1: error: YAML Object File missing document type tag!
# CHECK: yaml2obj: Failed to parse YAML file!

View File

@@ -0,0 +1,63 @@
# RUN: yaml2obj %s -o %t
# RUN: llvm-readobj -program-headers %t | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
AddressAlign: 0x0000000000000008
Content: "00000000"
- Name: .data
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Content: "00000000"
AddressAlign: 0x0000000000000010
ProgramHeaders:
- Type: PT_LOAD
Flags: [ PF_X, PF_R ]
VAddr: 0xAAAA1030
PAddr: 0xFFFF1030
Align: 0x1000
Sections:
- Section: .text
- Type: PT_LOAD
Flags: [ PF_R ]
VAddr: 0xAAAA2040
PAddr: 0xFFFF2040
Align: 0x1000
Sections:
- Section: .data
#CHECK: ProgramHeaders [
#CHECK-NEXT: ProgramHeader {
#CHECK-NEXT: Type: PT_LOAD
#CHECK-NEXT: Offset: 0x230
#CHECK-NEXT: VirtualAddress: 0xAAAA1030
#CHECK-NEXT: PhysicalAddress: 0xFFFF1030
#CHECK-NEXT: FileSize: 4
#CHECK-NEXT: MemSize: 4
#CHECK-NEXT: Flags [
#CHECK-NEXT: PF_R
#CHECK-NEXT: PF_X
#CHECK-NEXT: ]
#CHECK-NEXT: Alignment: 4096
#CHECK-NEXT: }
#CHECK-NEXT: ProgramHeader {
#CHECK-NEXT: Type: PT_LOAD
#CHECK-NEXT: Offset: 0x240
#CHECK-NEXT: VirtualAddress: 0xAAAA2040
#CHECK-NEXT: PhysicalAddress: 0xFFFF2040
#CHECK-NEXT: FileSize: 4
#CHECK-NEXT: MemSize: 4
#CHECK-NEXT: Flags [
#CHECK-NEXT: PF_R
#CHECK-NEXT: ]
#CHECK-NEXT: Alignment: 4096
#CHECK-NEXT: }
#CHECK-NEXT:]

View File

@@ -0,0 +1,39 @@
# RUN: yaml2obj %s -o %t
# RUN: llvm-readobj -program-headers %t | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .data
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC ]
Content: "00000000"
- Name: .after
Type: SHT_NOBITS
Flags: [ SHF_ALLOC ]
Size: 64
ProgramHeaders:
- Type: PT_LOAD
Flags: [ PF_R ]
Sections:
- Section: .data
- Section: .after
#CHECK: ProgramHeaders [
#CHECK-NEXT: ProgramHeader {
#CHECK-NEXT: Type: PT_LOAD
#CHECK-NEXT: Offset:
#CHECK-NEXT: VirtualAddress:
#CHECK-NEXT: PhysicalAddress:
#CHECK-NEXT: FileSize: 4
#CHECK-NEXT: MemSize: 68
#CHECK-NEXT: Flags [
#CHECK-NEXT: PF_R
#CHECK-NEXT: ]
#CHECK-NEXT: Alignment:
#CHECK-NEXT: }
#CHECK-NEXT:]

View File

@@ -0,0 +1,67 @@
# RUN: yaml2obj %s -o %t
# RUN: llvm-readobj -program-headers %t | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
AddressAlign: 0x0000000000001000
Content: "00000000"
- Name: .init
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Content: "00000000"
AddressAlign: 0x0000000000000010
- Name: .data
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC ]
Content: "00000000"
AddressAlign: 0x0000000000001000
ProgramHeaders:
- Type: PT_LOAD
Flags: [ PF_X, PF_R ]
VAddr: 0xAAAA1000
PAddr: 0xFFFF1000
Sections:
- Section: .text
- Section: .init
- Type: PT_LOAD
Flags: [ PF_R ]
VAddr: 0xAAAA2000
PAddr: 0xFFFF2000
Sections:
- Section: .data
#CHECK: ProgramHeaders [
#CHECK-NEXT: ProgramHeader {
#CHECK-NEXT: Type: PT_LOAD
#CHECK-NEXT: Offset: 0x1000
#CHECK-NEXT: VirtualAddress: 0xAAAA1000
#CHECK-NEXT: PhysicalAddress: 0xFFFF1000
#CHECK-NEXT: FileSize: 20
#CHECK-NEXT: MemSize: 20
#CHECK-NEXT: Flags [
#CHECK-NEXT: PF_R
#CHECK-NEXT: PF_X
#CHECK-NEXT: ]
#CHECK-NEXT: Alignment: 4096
#CHECK-NEXT: }
#CHECK-NEXT: ProgramHeader {
#CHECK-NEXT: Type: PT_LOAD
#CHECK-NEXT: Offset: 0x2000
#CHECK-NEXT: VirtualAddress: 0xAAAA2000
#CHECK-NEXT: PhysicalAddress: 0xFFFF2000
#CHECK-NEXT: FileSize: 4
#CHECK-NEXT: MemSize: 4
#CHECK-NEXT: Flags [
#CHECK-NEXT: PF_R
#CHECK-NEXT: ]
#CHECK-NEXT: Alignment: 4096
#CHECK-NEXT: }
#CHECK-NEXT:]

View File

@@ -0,0 +1,29 @@
# Ensures that implicitly added sections can be ordered within Sections.
# RUN: yaml2obj %s -o %t
# RUN: llvm-readobj -sections %t | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
- Name: .symtab
Type: SHT_SYMTAB
- Name: .data
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_WRITE ]
- Name: .shstrtab
Type: SHT_STRTAB
- Name: .strtab
Type: SHT_STRTAB
# CHECK: Name: .text
# CHECK: Name: .symtab
# CHECK: Name: .data
# CHECK: Name: .shstrtab
# CHECK: Name: .strtab

View File

@@ -0,0 +1,21 @@
# This test insures that the user cannot have both an Index and a Section field.
# RUN: not yaml2obj %s
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Address: 0x1000
AddressAlign: 0x0000000000000010
Content: "0000000000000000"
Symbols:
Global:
- Name: _start
Section: .text
Index: SHN_ABS

View File

@@ -0,0 +1,35 @@
# RUN: yaml2obj %s > %t
# RUN: llvm-readobj -symbols %t | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Symbols:
Global:
- Name: test
Index: SHN_ABS
Value: 0x1234
#CHECK: Symbols [
#CHECK-NEXT: Symbol {
#CHECK-NEXT: Name: (0)
#CHECK-NEXT: Value: 0x0
#CHECK-NEXT: Size: 0
#CHECK-NEXT: Binding: Local (0x0)
#CHECK-NEXT: Type: None (0x0)
#CHECK-NEXT: Other: 0
#CHECK-NEXT: Section: Undefined (0x0)
#CHECK-NEXT: }
#CHECK-NEXT: Symbol {
#CHECK-NEXT: Name: test (1)
#CHECK-NEXT: Value: 0x1234
#CHECK-NEXT: Size: 0
#CHECK-NEXT: Binding: Global (0x1)
#CHECK-NEXT: Type: None (0x0)
#CHECK-NEXT: Other: 0
#CHECK-NEXT: Section: Absolute (0xFFF1)
#CHECK-NEXT: }
#CHECK-NEXT:]

View File

@@ -0,0 +1,21 @@
# Just make sure this isn't an error even though it has no Symbol
# RUN: yaml2obj %s
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Content: "00000000"
- Name: .rel.text
Type: SHT_REL
Link: .symtab
Info: .text
Relocations:
- Offset: 0x1000
Type: R_X86_64_RELATIVE

View File

@@ -0,0 +1,22 @@
# Ensure yaml2obj doesn't crash on unnamed sections
# RUN: yaml2obj %s -o %t
# RUN: llvm-readobj -sections %t | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Type: SHT_PROGBITS
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
# CHECK: Name: (
# CHECK-NEXT: Type: SHT_NULL
# CHECK: Name: (
# CHECK-NEXT: Type: SHT_PROGBITS
# CHECK: Name: .text
# CHECK-NEXT: Type: SHT_PROGBITS

View File

@@ -0,0 +1,8 @@
# RUN: not yaml2obj %s 2>&1 | FileCheck %s
--- !unsupported-tag
DummyData:
foo: 0
...
# CHECK: error: YAML Object File unsupported document type tag '!unsupported-tag'!