diff options
Diffstat (limited to 'test/elf')
465 files changed, 0 insertions, 23926 deletions
diff --git a/test/elf/AArch64/Inputs/fn.c b/test/elf/AArch64/Inputs/fn.c deleted file mode 100644 index 54939a2426b2..000000000000 --- a/test/elf/AArch64/Inputs/fn.c +++ /dev/null @@ -1,4 +0,0 @@ -int fn() -{ - return 0; -} diff --git a/test/elf/AArch64/Inputs/fn.o b/test/elf/AArch64/Inputs/fn.o Binary files differdeleted file mode 100644 index 53e47ad37742..000000000000 --- a/test/elf/AArch64/Inputs/fn.o +++ /dev/null diff --git a/test/elf/AArch64/Inputs/initfini-option.c b/test/elf/AArch64/Inputs/initfini-option.c deleted file mode 100644 index 6021fb57ffa9..000000000000 --- a/test/elf/AArch64/Inputs/initfini-option.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <stdio.h> - -void init() { - printf("%s\n", __FUNCTION__); -} - -void fini() { - printf("%s\n", __FUNCTION__); -} - -int main() { -} diff --git a/test/elf/AArch64/Inputs/initfini-option.o b/test/elf/AArch64/Inputs/initfini-option.o Binary files differdeleted file mode 100644 index c75079b013fa..000000000000 --- a/test/elf/AArch64/Inputs/initfini-option.o +++ /dev/null diff --git a/test/elf/AArch64/Inputs/initfini.c b/test/elf/AArch64/Inputs/initfini.c deleted file mode 100644 index 8369d68a8dab..000000000000 --- a/test/elf/AArch64/Inputs/initfini.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <stdio.h> - -void __attribute__ ((constructor)) constructor() { - printf("%s\n", __FUNCTION__); -} - -void __attribute__ ((destructor)) destructor() { - printf("%s\n", __FUNCTION__); -} - -int main() { - return 0; -} diff --git a/test/elf/AArch64/Inputs/initfini.o b/test/elf/AArch64/Inputs/initfini.o Binary files differdeleted file mode 100644 index 030fe59878be..000000000000 --- a/test/elf/AArch64/Inputs/initfini.o +++ /dev/null diff --git a/test/elf/AArch64/Inputs/main.c b/test/elf/AArch64/Inputs/main.c deleted file mode 100644 index 0280c9127076..000000000000 --- a/test/elf/AArch64/Inputs/main.c +++ /dev/null @@ -1,4 +0,0 @@ -int main() { - fn(); - return 0; -} diff --git a/test/elf/AArch64/Inputs/main.o b/test/elf/AArch64/Inputs/main.o Binary files differdeleted file mode 100644 index 8c0f049da6a8..000000000000 --- a/test/elf/AArch64/Inputs/main.o +++ /dev/null diff --git a/test/elf/AArch64/Inputs/no-interp-section.c b/test/elf/AArch64/Inputs/no-interp-section.c deleted file mode 100644 index 3981c038ed33..000000000000 --- a/test/elf/AArch64/Inputs/no-interp-section.c +++ /dev/null @@ -1 +0,0 @@ -int c = 10; diff --git a/test/elf/AArch64/Inputs/no-interp-section.o b/test/elf/AArch64/Inputs/no-interp-section.o Binary files differdeleted file mode 100644 index 36b41fdbf782..000000000000 --- a/test/elf/AArch64/Inputs/no-interp-section.o +++ /dev/null diff --git a/test/elf/AArch64/Inputs/zerosizedsection.o b/test/elf/AArch64/Inputs/zerosizedsection.o Binary files differdeleted file mode 100644 index 10123fcef90d..000000000000 --- a/test/elf/AArch64/Inputs/zerosizedsection.o +++ /dev/null diff --git a/test/elf/AArch64/Inputs/zerosizedsection.s b/test/elf/AArch64/Inputs/zerosizedsection.s deleted file mode 100644 index 651ee3aab503..000000000000 --- a/test/elf/AArch64/Inputs/zerosizedsection.s +++ /dev/null @@ -1,3 +0,0 @@ -.text -.data -.word .text diff --git a/test/elf/AArch64/defsym.test b/test/elf/AArch64/defsym.test deleted file mode 100644 index 8bf492d4a38a..000000000000 --- a/test/elf/AArch64/defsym.test +++ /dev/null @@ -1,22 +0,0 @@ -RUN: lld -flavor gnu -target aarch64--linux-gnu --defsym=main=fn \ -RUN: --noinhibit-exec %p/Inputs/fn.o -o %t -RUN: llvm-readobj -symbols %t | FileCheck %s - -CHECK: Symbol { -CHECK: Name: main (1) -CHECK: Value: 0x4001A4 -CHECK: Size: 0 -CHECK: Binding: Global (0x1) -CHECK: Type: Function (0x2) -CHECK: Other: 0 -CHECK: Section: .text (0x5) -CHECK: } -CHECK: Symbol { -CHECK: Name: fn (11) -CHECK: Value: 0x4001A4 -CHECK: Size: 8 -CHECK: Binding: Global (0x1) -CHECK: Type: Function (0x2) -CHECK: Other: 0 -CHECK: Section: .text (0x5) -CHECK: } diff --git a/test/elf/AArch64/dontignorezerosize-sections.test b/test/elf/AArch64/dontignorezerosize-sections.test deleted file mode 100644 index ac593abcc368..000000000000 --- a/test/elf/AArch64/dontignorezerosize-sections.test +++ /dev/null @@ -1,9 +0,0 @@ -# This tests that lld is not ignoring zero sized sections -RUN: lld -flavor gnu -target aarch64--linux-gnu %p/Inputs/zerosizedsection.o \ -RUN: --noinhibit-exec --output-filetype=yaml -o %t -RUN: FileCheck %s < %t - -CHECK: references: -CHECK: - kind: layout-after -CHECK: offset: 0 -CHECK: target: L000 diff --git a/test/elf/AArch64/dynlib-nointerp-section.test b/test/elf/AArch64/dynlib-nointerp-section.test deleted file mode 100644 index 9365b4d5b3e9..000000000000 --- a/test/elf/AArch64/dynlib-nointerp-section.test +++ /dev/null @@ -1,5 +0,0 @@ -RUN: lld -flavor gnu -target aarch64--linux-gnu %p/Inputs/no-interp-section.o \ -RUN: -o %t -shared -RUN: llvm-objdump -section-headers %t | FileCheck %s - -CHECK-NOT: .interp diff --git a/test/elf/AArch64/initfini.test b/test/elf/AArch64/initfini.test deleted file mode 100644 index 887e44ea105b..000000000000 --- a/test/elf/AArch64/initfini.test +++ /dev/null @@ -1,23 +0,0 @@ -# This tests the functionality that lld is able to read -# init_array/fini_array sections in the input ELF. This -# corresponds to the the .init_array/.fini_array sections -# in the output ELF. - -RUN: lld -flavor gnu -target aarch64--linux-gnu %p/Inputs/initfini.o \ -RUN: --noinhibit-exec --output-filetype=yaml -o %t -RUN: FileCheck %s < %t - -CHECK: type: data -CHECK: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ] -CHECK: section-name: .init_array -CHECK: references: -CHECK: - kind: R_AARCH64_ABS64 -CHECK: offset: 0 -CHECK: target: constructor -CHECK: type: data -CHECK: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ] -CHECK: section-name: .fini_array -CHECK: references: -CHECK: - kind: R_AARCH64_ABS64 -CHECK: offset: 0 -CHECK: target: destructor diff --git a/test/elf/AArch64/rel-abs32-overflow.test b/test/elf/AArch64/rel-abs32-overflow.test deleted file mode 100644 index e32fce173c51..000000000000 --- a/test/elf/AArch64/rel-abs32-overflow.test +++ /dev/null @@ -1,53 +0,0 @@ -# Check handling of R_AARCH64_ABS32 relocation overflow. -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: not lld -flavor gnu -target arm64 -o %t-exe %t-obj 2>&1 | FileCheck %s - -# CHECK-DAG: Relocation out of range in file {{.*}}: reference from data1+0 to data2+34359738369 of type 258 (R_AARCH64_ABS32) -# CHECK-DAG: Relocation out of range in file {{.*}}: reference from data2+0 to data1+34359738369 of type 258 (R_AARCH64_ABS32) - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_AARCH64 - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "00000000" - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_EXECINSTR] -- Name: .data - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_WRITE] - -- Name: .rela.data - Type: SHT_RELA - Info: .data - AddressAlign: 8 - Relocations: - - Offset: 0x0 - Symbol: data2 - Type: R_AARCH64_ABS32 - Addend: 0x800000001 - - Offset: 0x4 - Symbol: data1 - Type: R_AARCH64_ABS32 - Addend: 0x800000001 - -Symbols: - Global: - - Name: _start - Section: .text - Value: 0x0 - Size: 4 - - Name: data1 - Section: .data - Size: 4 - - Name: data2 - Section: .data - Value: 0x4 - Size: 4 diff --git a/test/elf/AArch64/rel-abs32.test b/test/elf/AArch64/rel-abs32.test deleted file mode 100644 index edd7b69e428d..000000000000 --- a/test/elf/AArch64/rel-abs32.test +++ /dev/null @@ -1,59 +0,0 @@ -# Check handling of R_AARCH64_ABS32 relocation. -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target arm64 -o %t-exe %t-obj -# RUN: llvm-objdump -s -t %t-exe | FileCheck %s - -# CHECK: Contents of section .data: -# CHECK-NEXT: 401060 65104080 61104080 e.@.a.@. -# ^^ data2 + 0x80000001 = 0x80401069 -# ^^ data1 + 0x80000001 = 0x80401061 -# CHECK: SYMBOL TABLE: -# CHECK: 00401060 g .data 00000004 data1 -# CHECK: 00401064 g .data 00000004 data2 - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_AARCH64 - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "00000000" - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_EXECINSTR] -- Name: .data - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_WRITE] - -- Name: .rela.data - Type: SHT_RELA - Info: .data - AddressAlign: 8 - Relocations: - - Offset: 0x0 - Symbol: data2 - Type: R_AARCH64_ABS32 - Addend: 0x80000001 - - Offset: 0x4 - Symbol: data1 - Type: R_AARCH64_ABS32 - Addend: 0x80000001 - -Symbols: - Global: - - Name: _start - Section: .text - Value: 0x0 - Size: 4 - - Name: data1 - Section: .data - Size: 4 - - Name: data2 - Section: .data - Value: 0x4 - Size: 4 diff --git a/test/elf/AArch64/rel-abs64.test b/test/elf/AArch64/rel-abs64.test deleted file mode 100644 index c125e3f2450d..000000000000 --- a/test/elf/AArch64/rel-abs64.test +++ /dev/null @@ -1,59 +0,0 @@ -# Check handling of R_AARCH64_ABS64 relocation. -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target arm64 -o %t-exe %t-obj -# RUN: llvm-objdump -s -t %t-exe | FileCheck %s - -# CHECK: Contents of section .data: -# CHECK-NEXT: 401060 69104000 00000080 61104000 00000080 i.@.....a.@..... -# ^^ data2 + 0x8000000000000001 = 0x8000000000401069 -# ^^ data1 + 0x8000000000000001 = 0x8000000000401061 -# CHECK: SYMBOL TABLE: -# CHECK: 00401060 g .data 00000008 data1 -# CHECK: 00401068 g .data 00000008 data2 - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_AARCH64 - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "00000000" - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_EXECINSTR] -- Name: .data - Type: SHT_PROGBITS - Content: "00000000000000000000000000000000" - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_WRITE] - -- Name: .rela.data - Type: SHT_RELA - Info: .data - AddressAlign: 8 - Relocations: - - Offset: 0x0 - Symbol: data2 - Type: R_AARCH64_ABS64 - Addend: -9223372036854775807 - - Offset: 0x8 - Symbol: data1 - Type: R_AARCH64_ABS64 - Addend: -9223372036854775807 - -Symbols: - Global: - - Name: _start - Section: .text - Value: 0x0 - Size: 4 - - Name: data1 - Section: .data - Size: 8 - - Name: data2 - Section: .data - Value: 0x8 - Size: 8 diff --git a/test/elf/AArch64/rel-bad.test b/test/elf/AArch64/rel-bad.test deleted file mode 100644 index 6b9e831146f3..000000000000 --- a/test/elf/AArch64/rel-bad.test +++ /dev/null @@ -1,44 +0,0 @@ -# Check handling of a bad relocation (in this case dynamic in a static object). -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: not lld -flavor gnu -target arm64 -o %t-exe %t-obj 2>&1 | FileCheck %s - -# CHECK: Unhandled reference type in file {{.*}}: reference from data1+4 to data1+0 of type 1024 (R_AARCH64_COPY) - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_AARCH64 - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "00000000" - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_EXECINSTR] -- Name: .data - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_WRITE] - -- Name: .rela.data - Type: SHT_RELA - Info: .data - AddressAlign: 8 - Relocations: - - Offset: 0x4 - Symbol: data1 - Type: R_AARCH64_COPY - Addend: 0 - -Symbols: - Global: - - Name: _start - Section: .text - Value: 0x0 - Size: 4 - - Name: data1 - Section: .data - Size: 8 diff --git a/test/elf/ARM/arm-symbols.test b/test/elf/ARM/arm-symbols.test deleted file mode 100644 index b99960697679..000000000000 --- a/test/elf/ARM/arm-symbols.test +++ /dev/null @@ -1,52 +0,0 @@ -# Check that symbols formed from ARM instructions are valid: -# 1. Symbol address. -# 2. Symbol content size. -# 3. Symbol content. - -# RUN: yaml2obj -format=elf %s > %t-a.o -# RUN: lld -flavor gnu -target arm-linux-gnu \ -# RUN: -Bstatic --noinhibit-exec %t-a.o -o %t-a -# RUN: llvm-readobj -symbols %t-a | FileCheck -check-prefix=SYM-ADDR %s -# RUN: llvm-readobj -symbols %t-a | FileCheck -check-prefix=SYM-SIZE %s -# RUN: llvm-objdump -s -t %t-a | FileCheck -check-prefix=SYM-CONTENT %s - -# SYM-ADDR: Name: main (1) -# SYM-ADDR-NEXT: Value: 0x400074 - -# SYM-SIZE: Name: main (1) -# SYM-SIZE-NEXT: Value: 0x{{[0-9a-f]+}} -# SYM-SIZE-NEXT: Size: 28 - -# SYM-CONTENT: Contents of section .text: -# SYM-CONTENT-NEXT: 400074 04b02de5 00b08de2 0030a0e3 0300a0e1 ..-......0...... -# SYM-CONTENT-NEXT: 400084 00d04be2 04b09de4 1eff2fe1 ..K......./. - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 04B02DE500B08DE20030A0E30300A0E100D04BE204B09DE41EFF2FE1 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: main - Type: STT_FUNC - Section: .text -... diff --git a/test/elf/ARM/defsym.test b/test/elf/ARM/defsym.test deleted file mode 100644 index 0cd1736d924e..000000000000 --- a/test/elf/ARM/defsym.test +++ /dev/null @@ -1,51 +0,0 @@ -# Check that defined symbols are present in the generated executable - -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm-linux-gnu --defsym=main=fn \ -# RUN: -Bstatic --noinhibit-exec %t-o.o -o %t -# RUN: llvm-readobj -symbols %t | FileCheck %s - -# CHECK: Name: main (1) -# CHECK-NEXT: Value: 0x400074 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .text (0x1) -# CHECK: Name: fn (6) -# CHECK-NEXT: Value: 0x400074 -# CHECK-NEXT: Size: {{[0-9]+}} -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .text (0x1) - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 04B02DE500B08DE20030A0E30300A0E100D04BE204B09DE41EFF2FE1 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: fn - Type: STT_FUNC - Section: .text -... diff --git a/test/elf/ARM/entry-point.test b/test/elf/ARM/entry-point.test deleted file mode 100644 index d168bb6463c6..000000000000 --- a/test/elf/ARM/entry-point.test +++ /dev/null @@ -1,77 +0,0 @@ -# 1. Check entry point address for ARM code - should be even. -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-arm.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-arm.o -o %t-arm -# RUN: llvm-readobj -file-headers %t-arm | FileCheck -check-prefix=ARM-ENTRY %s -# -# ARM-ENTRY: Entry: 0x400074 - -# 2. Check entry point address for Thumb code - should be odd. -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-thm.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-thm.o -o %t-thm -# RUN: llvm-readobj -file-headers %t-thm | FileCheck -check-prefix=THM-ENTRY %s -# -# THM-ENTRY: Entry: 0x400075 - -# arm.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 04B02DE500B08DE20030A0E30300A0E100D04BE204B09DE41EFF2FE1 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _start - Type: STT_FUNC - Section: .text - -# thm.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B400AF00231846BD465DF8047B7047 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _start - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 -... diff --git a/test/elf/ARM/missing-symbol.test b/test/elf/ARM/missing-symbol.test deleted file mode 100644 index f9b3e26ea1a3..000000000000 --- a/test/elf/ARM/missing-symbol.test +++ /dev/null @@ -1,39 +0,0 @@ -# Check that _MISSING_SYMBOL_ symbol is not resolved - -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t 2>&1 | FileCheck %s - -# CHECK: Undefined symbol: {{.*}}: _MISSING_SYMBOL_ - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B483B000AF40F20003C0F200037B60002318460C37BD465DF8047B704700BF - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - - Name: _MISSING_SYMBOL_ -... diff --git a/test/elf/ARM/rel-abs32.test b/test/elf/ARM/rel-abs32.test deleted file mode 100644 index 57d323100feb..000000000000 --- a/test/elf/ARM/rel-abs32.test +++ /dev/null @@ -1,59 +0,0 @@ -# Check handling of R_ARM_ABS32 relocation. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .data: -# CHECK-NEXT: 401000 84004000 -# data = 0x400084 ^^ -# data main addr content -# 0x400084 = 0x400074 + 0x10 -# CHECK: SYMBOL TABLE: -# CHECK: 00400074 g F .text {{[0-9a-f]+}} main -# CHECK: 00401000 g .data 00000004 data - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 04B02DE500B08DE20030A0E30300A0E100D04BE204B09DE41EFF2FE1 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '10000000' - - Name: .rel.data - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .data - Relocations: - - Offset: 0x0000000000000000 - Symbol: main - Type: R_ARM_ABS32 - Addend: 0 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x000000000000001C - - Name: data - Type: STT_OBJECT - Section: .data - Size: 0x0000000000000004 -... diff --git a/test/elf/ARM/rel-arm-call.test b/test/elf/ARM/rel-arm-call.test deleted file mode 100644 index 234b34eae92d..000000000000 --- a/test/elf/ARM/rel-arm-call.test +++ /dev/null @@ -1,60 +0,0 @@ -# Check handling of R_ARM_CALL relocation. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK: 400084 1eff2fe1 00482de9 04b08de2 f7ffffeb -# offset = -0x24 ^^ -# call site offset PC(arm) _Z1fv addr -# 0x400090 + (-0x24) + 0x8 = 0x400074 -# CHECK: SYMBOL TABLE: -# CHECK: 00400074 g F .text {{[0-9a-f]+}} _Z1fv -# CHECK: 00400088 g F .text {{[0-9a-f]+}} main - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 04B02DE500B08DE200D04BE204B09DE41EFF2FE100482DE904B08DE2FEFFFFEB0030A0E30300A0E10088BDE8 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x000000000000001C - Symbol: _Z1fv - Type: R_ARM_CALL - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _Z1fv - Type: STT_FUNC - Section: .text - Size: 0x0000000000000014 - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000014 - Size: 0x0000000000000018 -... diff --git a/test/elf/ARM/rel-arm-jump24-veneer-b.test b/test/elf/ARM/rel-arm-jump24-veneer-b.test deleted file mode 100644 index 4caeac083b8d..000000000000 --- a/test/elf/ARM/rel-arm-jump24-veneer-b.test +++ /dev/null @@ -1,101 +0,0 @@ -# Check veneer generation for R_ARM_JUMP24 relocation (B instruction call). - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-arm.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-thm.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-arm.o %t-thm.o -o %t - -# RUN: llvm-objdump -s -t %t | FileCheck -check-prefix=B-VENEER %s -# RUN: llvm-objdump -s -t %t | FileCheck -check-prefix=B-ADDR %s - -# B-VENEER: Contents of section .text: -# B-VENEER: 400074 010000ea -# Call from main: -# offset = 0x4 ^^ -# call site offset PC(arm) ___Z1fv_from_arm addr -# 0x400074 + 0x4 + 0x8 = 0x400080 -# -# Code of the veneer: -# B-VENEER: {{[0-9a-f]+}} {{[0-9a-f]+}} 04f01fe5 -# B-VENEER: 400084 79004000 -# call addr = 0x400079 ^^ -# call addr _Z1fv addr Thumb mode -# 0x400079 = 0x400078 | 0x1 -# -# B-ADDR: SYMBOL TABLE: -# B-ADDR: 00400080 l F .text {{[0-9a-f]+}} ___Z1fv_from_arm -# B-ADDR: 00400074 g F .text {{[0-9a-f]+}} main -# B-ADDR: 00400078 g F .text {{[0-9a-f]+}} _Z1fv - -# arm.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: FEFFFFEA - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000000 - Symbol: _Z1fv - Type: R_ARM_JUMP24 - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: main - Type: STT_FUNC - Section: .text - - Name: _Z1fv - -# thm.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 4FF0000318467047 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _Z1fv - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 -... diff --git a/test/elf/ARM/rel-arm-jump24-veneer-bl.test b/test/elf/ARM/rel-arm-jump24-veneer-bl.test deleted file mode 100644 index cd386dc5b1a4..000000000000 --- a/test/elf/ARM/rel-arm-jump24-veneer-bl.test +++ /dev/null @@ -1,100 +0,0 @@ -# Check veneer generation for R_ARM_JUMP24 relocation (BL<c> instruction call). - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-arm.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-thm.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-arm.o %t-thm.o -o %t - -# RUN: llvm-objdump -s -t %t | FileCheck -check-prefix=BL-VENEER %s -# RUN: llvm-objdump -s -t %t | FileCheck -check-prefix=BL-ADDR %s - -# BL-VENEER: Contents of section .text: -# BL-VENEER: 400084 0400000b -# Call from main: -# offset = 0x10 ^^ -# call site offset PC(arm) ___Z1fv_from_arm addr -# 0x400084 + 0x10 + 0x8 = 0x40009c -# -# Code of the veneer: -# BL-VENEER: 400094 {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} 95004000 -# call addr = 0x400095 ^^ -# call addr _Z1fv addr Thumb mode -# 0x400095 = 0x400094 | 0x1 -# -# BL-ADDR: SYMBOL TABLE: -# BL-ADDR: 0040009c l F .text {{[0-9a-f]+}} ___Z1fv_from_arm -# BL-ADDR: 00400074 g F .text {{[0-9a-f]+}} main -# BL-ADDR: 00400094 g F .text {{[0-9a-f]+}} _Z1fv - -# arm.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 00482DE904B08DE20030A0E3000053E3FEFFFF0B0030A0E30300A0E10088BDE8 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000010 - Symbol: _Z1fv - Type: R_ARM_JUMP24 - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: main - Type: STT_FUNC - Section: .text - - Name: _Z1fv - -# thm.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 4FF0000318467047 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _Z1fv - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 -... diff --git a/test/elf/ARM/rel-arm-jump24.test b/test/elf/ARM/rel-arm-jump24.test deleted file mode 100644 index 18eb8397d7b5..000000000000 --- a/test/elf/ARM/rel-arm-jump24.test +++ /dev/null @@ -1,58 +0,0 @@ -# Check handling of R_ARM_JUMP24 relocation. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK: 400094 04b08de2 f5ffffea 0030a0e1 0300a0e1 -# offset = -0x2C ^^ -# call site offset PC(arm) _Z1fv addr -# 0x400098 + (-0x2C) + 0x8 = 0x400074 -# CHECK: SYMBOL TABLE: -# CHECK: 00400074 g F .text {{[0-9a-f]+}} _Z1fv -# CHECK: 00400090 g F .text {{[0-9a-f]+}} main - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 04B02DE500B08DE20030A0E30300A0E100D04BE204B09DE41EFF2FE100482DE904B08DE2FEFFFFEA0030A0E10300A0E10088BDE8 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000024 - Symbol: _Z1fv - Type: R_ARM_JUMP24 - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _Z1fv - Type: STT_FUNC - Section: .text - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x000000000000001C -... diff --git a/test/elf/ARM/rel-arm-mov.test b/test/elf/ARM/rel-arm-mov.test deleted file mode 100644 index e50aea4bb206..000000000000 --- a/test/elf/ARM/rel-arm-mov.test +++ /dev/null @@ -1,64 +0,0 @@ -# Check handling of R_ARM_MOVW_ABS_NC and R_ARM_MOVT_ABS relocation pair. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK: 400074 04b02de5 00b08de2 003001e3 403040e3 -# addrL = 0x1000 ^^ -# addrH = 0x40 ^^ -# addrH addrL _ZL5data1 addr -# (0x40 << 16) + 0x1000 = 0x401000 -# CHECK: SYMBOL TABLE: -# CHECK: 00401000 l .bss 00000004 _ZL5data1 -# CHECK: 00400074 g F .text {{[0-9a-f]+}} main - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 04B02DE500B08DE2003000E3003040E30A20A0E3002083E50030A0E30300A0E100D04BE204B09DE41EFF2FE1 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000008 - Symbol: _ZL5data1 - Type: R_ARM_MOVW_ABS_NC - Addend: 0 - - Offset: 0x000000000000000C - Symbol: _ZL5data1 - Type: R_ARM_MOVT_ABS - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: 411C0000 -Symbols: - Local: - - Name: _ZL5data1 - Type: STT_OBJECT - Section: .bss - Size: 0x0000000000000004 - Global: - - Name: main - Type: STT_FUNC - Section: .text -... diff --git a/test/elf/ARM/rel-arm-prel31.test b/test/elf/ARM/rel-arm-prel31.test deleted file mode 100644 index 1effc4eceb0e..000000000000 --- a/test/elf/ARM/rel-arm-prel31.test +++ /dev/null @@ -1,47 +0,0 @@ -# Check handling of R_ARM_PREL31 relocation. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .ARM.extab: -# CHECK: 4000a4 b1fffe7f -# CHECK: SYMBOL TABLE: -# CHECK: 00400054 g F .text {{[0-9a-f]+}} __gxx_personality_v0 - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .ARM.extab - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x4 - Content: 0000FF7F84019701B0B0B008FFFF01080E2432003A040000 - - Name: .rel.ARM.extab - Type: SHT_REL - Link: .symtab - AddressAlign: 0x4 - Info: .ARM.extab - Relocations: - - Offset: 0 - Symbol: __gxx_personality_v0 - Type: R_ARM_PREL31 - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x4 - Content: 80B400AF00231846BD465DF8047B704780B582B000AF3B1D1846FFF7FEFFFFF7FEFFFFF7FEFF0420FFF7FEFF0346184601230360002240F20001C0F20001FFF7FEFF3B1D1846FFF7FEFFFFF7FEFF00BF -Symbols: - Local: - Global: - - Name: __gxx_personality_v0 - Type: STT_FUNC - Section: .text - Value: 0x1 -... - diff --git a/test/elf/ARM/rel-arm-thm-interwork.test b/test/elf/ARM/rel-arm-thm-interwork.test deleted file mode 100644 index 8ee9186b48db..000000000000 --- a/test/elf/ARM/rel-arm-thm-interwork.test +++ /dev/null @@ -1,123 +0,0 @@ -# Check ARM <=> Thumb interwork. -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-arm.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-thm.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-arm.o %t-thm.o -o %t - -# Check R_ARM_CALL veneer to call Thumb code -# RUN: llvm-objdump -s -t %t | FileCheck -check-prefix=ARM-CALL %s - -# ARM-CALL: Contents of section .text: -# ARM-CALL: 400074 00482de9 04b08de2 000000fa 0088bde8 -# offset = 0x0 ^^ -# call site offset PC(arm) _Z2f2v addr -# 0x40007C + 0x0 + 0x8 = 0x400084 -# ARM-CALL: SYMBOL TABLE: -# ARM-CALL: 00400074 g F .text {{[0-9a-f]+}} _Z1fv -# ARM-CALL: 00400084 g F .text {{[0-9a-f]+}} _Z2f2v -# ARM-CALL: 00400090 g F .text {{[0-9a-f]+}} main - -# Check R_ARM_THM_CALL veneer to call ARM code -# RUN: llvm-objdump -s -t %t | FileCheck -check-prefix=THM-CALL %s - -# THM-CALL: Contents of section .text: -# THM-CALL: 400094 00bffff7 eeef0023 184680bd -# offset = -0x24 ^^ -# call site aligned = Align(0x400096, 4) = 0x400094 -# call site aligned offset PC(thm) _Z1fv addr -# 0x400094 + (-0x24) + 0x4 = 0x400074 -# THM-CALL: SYMBOL TABLE: -# THM-CALL: 00400074 g F .text {{[0-9a-f]+}} _Z1fv -# THM-CALL: 00400084 g F .text {{[0-9a-f]+}} _Z2f2v -# THM-CALL: 00400090 g F .text {{[0-9a-f]+}} main - -# arm.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 00482DE904B08DE2FEFFFFEB0088BDE8 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000008 - Symbol: _Z2f2v - Type: R_ARM_CALL - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _Z1fv - Type: STT_FUNC - Section: .text - Size: 0x0000000000000010 - - Name: _Z2f2v - -# thm.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B400AFBD465DF8047B704780B500AF00BFFFF7FEFF0023184680BD - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000012 - Symbol: _Z1fv - Type: R_ARM_THM_CALL - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _Z2f2v - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - Size: 0x000000000000000C - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x000000000000000D - Size: 0x0000000000000010 - - Name: _Z1fv -... diff --git a/test/elf/ARM/rel-rel32.test b/test/elf/ARM/rel-rel32.test deleted file mode 100644 index 47779ac918e3..000000000000 --- a/test/elf/ARM/rel-rel32.test +++ /dev/null @@ -1,57 +0,0 @@ -# Check handling of R_ARM_REL32 relocation. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK-NEXT: 400074 {{[0-9a-f]+}} 880fff00 -# CHECK: SYMBOL TABLE: -# CHECK: 00400074 g F .text {{[0-9a-f]+}} main -# CHECK: 00401000 g .bss {{[0-9a-f]+}} _myref - ---- ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B400AF0000FF0000231846BD465DF8047B7047 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000004 - Symbol: _myref - Type: R_ARM_REL32 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' -Symbols: - Global: - - Name: _myref - Type: STT_OBJECT - Section: .bss - Size: 0x0000000000000004 - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - Size: 0x0000000000000014 -... diff --git a/test/elf/ARM/rel-thm-call.test b/test/elf/ARM/rel-thm-call.test deleted file mode 100644 index b9bf8cefc0b8..000000000000 --- a/test/elf/ARM/rel-thm-call.test +++ /dev/null @@ -1,61 +0,0 @@ -# Check handling of R_ARM_THM_CALL relocation. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK: 400084 fff7f6ff 00231846 80bd00bf -# ^^ offset = -0x14 -# call site offset PC(thm) _Z1fv addr -# 0x400084 + (-0x14) + 0x4 = 0x400074 -# CHECK: SYMBOL TABLE: -# CHECK: 00400074 g F .text {{[0-9a-f]+}} _Z1fv -# CHECK: 00400080 g F .text {{[0-9a-f]+}} main - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B400AFBD465DF8047B704780B500AFFFF7FEFF0023184680BD00BF - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000010 - Symbol: _Z1fv - Type: R_ARM_THM_CALL - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _Z1fv - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - Size: 0x000000000000000C - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x000000000000000D - Size: 0x000000000000000E -... diff --git a/test/elf/ARM/rel-thm-jump11.test b/test/elf/ARM/rel-thm-jump11.test deleted file mode 100644 index 4998c2b96c97..000000000000 --- a/test/elf/ARM/rel-thm-jump11.test +++ /dev/null @@ -1,141 +0,0 @@ -# Check handling of R_ARM_THM_JUMP11 relocation. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK: 4001a4 0021c7e7 -# CHECK: SYMBOL TABLE: -# CHECK: 00400138 g F .text 00000060 __gnu_h2f_internal -# CHECK: 004001a4 g F .text 00000004 __gnu_h2f_alternative - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 70B4020CC0F3C754FF2CC0F3160302F4004080B241D0002C08BF002B3BD0A4F17F0543F4000315F10E0FA8BF41F6FF7209DA15F1190FA3BFA4F166066FF07F42F2406FF07F4212EA03060CD001325208964208BF03EA42021344B3F1807F24BF5B08A4F17E0501B30F2D26DC15F1180F11DB15F10E0FB5BF4FF6F2710E35CFF6FF71AD02B7BF491BAAB2CB40002202EB5333034398B270BC70470029FBD040EA533370BC43F4FC407047102DDEDD6FEAD0336FEAC33398B2EDE740F4F84398B2E9E700BFC0F3842310B4A3F11F040029B4FA84F400F400424FEA541408BF0024C0F309002146140481B943B14203703302EBC35343EA04005DF8044B704760B1B0FA80F3153B98405B42EFE744EA40305DF8044B40F0FF40704720465DF8044B704700BF01216BE70121FEE7002167E70021FEE7 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x000000000000012A - Symbol: __gnu_h2f_internal - Type: R_ARM_THM_JUMP11 - - Offset: 0x0000000000000132 - Symbol: __gnu_h2f_internal - Type: R_ARM_THM_JUMP11 - - Name: .text.startup - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 0020FFF7FEBF00BF - - Name: .rel.text.startup - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text.startup - Relocations: - - Offset: 0x0000000000000002 - Symbol: __gnu_h2f_alternative - Type: R_ARM_THM_JUMP24 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 004743433A202863726F7373746F6F6C2D4E47206C696E61726F2D312E31332E312D342E392D323031342E3039202D204C696E61726F2047434320342E392D323031342E30392920342E392E32203230313430393034202870726572656C656173652900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .ARM.attributes - Type: SHT_ARM_ATTRIBUTES - AddressAlign: 0x0000000000000001 - Content: 4134000000616561626900012A00000005372D4100060A0741080109020A041204140115011703180119011A021B031C011E022201 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .text.startup - Type: STT_SECTION - Section: .text.startup - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .ARM.attributes - Type: STT_SECTION - Section: .ARM.attributes - - Name: '$t' - Section: .text - - Name: __gnu_f2h_internal - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - Size: 0x00000000000000C2 - Global: - - Name: __gnu_f2h_alternative - Type: STT_FUNC - Section: .text - Value: 0x000000000000012D - Size: 0x0000000000000004 - Visibility: STV_HIDDEN - - Name: __gnu_h2f_alternative - Type: STT_FUNC - Section: .text - Value: 0x0000000000000131 - Size: 0x0000000000000004 - Visibility: STV_HIDDEN - - Name: __gnu_h2f_ieee - Type: STT_FUNC - Section: .text - Value: 0x0000000000000129 - Size: 0x0000000000000004 - Visibility: STV_HIDDEN - - Name: main - Type: STT_FUNC - Section: .text.startup - Value: 0x0000000000000001 - Size: 0x0000000000000006 - - Name: __gnu_f2h_ieee - Type: STT_FUNC - Section: .text - Value: 0x0000000000000125 - Size: 0x0000000000000004 - Visibility: STV_HIDDEN - - Name: __gnu_h2f_internal - Type: STT_FUNC - Section: .text - Value: 0x00000000000000C5 - Size: 0x000000000000005E - Visibility: STV_HIDDEN -... diff --git a/test/elf/ARM/rel-thm-jump24-veneer.test b/test/elf/ARM/rel-thm-jump24-veneer.test deleted file mode 100644 index fffce44ca477..000000000000 --- a/test/elf/ARM/rel-thm-jump24-veneer.test +++ /dev/null @@ -1,100 +0,0 @@ -# Check veneer generation for R_ARM_THM_JUMP24 relocation (B instruction call). - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-arm.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-thm.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-arm.o %t-thm.o -o %t - -# RUN: llvm-objdump -s -t %t | FileCheck -check-prefix=B-VENEER %s -# RUN: llvm-objdump -s -t %t | FileCheck -check-prefix=B-ADDR %s - -# B-VENEER: Contents of section .text: -# B-VENEER: 400074 {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} 00f000b8 -# Call from main: -# offset = 0x0 ^^ -# call site offset PC(thm) ___Z1fv_from_thumb addr -# 0x400080 + 0x0 + 0x4 = 0x400084 -# -# Code of the veneer: -# B-VENEER: 400084 78470000 f9ffffea -# offset = -0x1C ^^ -# call site offset PC(arm) _Z1fv -# 0x400088 + (-0x1C) + 0x8 = 0x400074 -# -# B-ADDR: SYMBOL TABLE: -# B-ADDR: 00400084 l F .text {{[0-9a-f]+}} ___Z1fv_from_thumb -# B-ADDR: 00400074 g F .text {{[0-9a-f]+}} _Z1fv -# B-ADDR: 00400080 g F .text {{[0-9a-f]+}} main - -# arm.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 0030A0E30300A0E11EFF2FE1 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _Z1fv - Type: STT_FUNC - Section: .text - -# thm.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: FFF7FEBF - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000000 - Symbol: _Z1fv - Type: R_ARM_THM_JUMP24 - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - - Name: _Z1fv -... diff --git a/test/elf/ARM/rel-thm-jump24.test b/test/elf/ARM/rel-thm-jump24.test deleted file mode 100644 index 6c9b63447c9d..000000000000 --- a/test/elf/ARM/rel-thm-jump24.test +++ /dev/null @@ -1,59 +0,0 @@ -# Check handling of R_ARM_THM_JUMP24 relocation. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK: 400084 80b500af fff7f4bf 03461846 80bd00bf -# ^^ offset = -0x18 -# call site offset PC(thm) _Z1fv addr -# 0x400088 + (-0x18) + 0x4 = 0x400074 -# CHECK: SYMBOL TABLE: -# CHECK: 00400074 g F .text {{[0-9a-f]+}} _Z1fv -# CHECK: 00400084 g F .text {{[0-9a-f]+}} main - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B400AF00231846BD465DF8047B704780B500AFFFF7FEBF0346184680BD00BF - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000014 - Symbol: _Z1fv - Type: R_ARM_THM_JUMP24 - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: _Z1fv - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000011 -... diff --git a/test/elf/ARM/rel-thm-mov.test b/test/elf/ARM/rel-thm-mov.test deleted file mode 100644 index 25edc4cda4b9..000000000000 --- a/test/elf/ARM/rel-thm-mov.test +++ /dev/null @@ -1,70 +0,0 @@ -# 1. Check handling of R_ARM_THM_MOVW_ABS_NC and R_THM_ARM_MOVT_ABS relocation pair. -# 2. Check that instructions are not cropped for symbols that address Thumb code. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s -# RUN: llvm-objdump -s -t %t | FileCheck -check-prefix=INSN-CROP %s - -# CHECK: Contents of section .text: -# CHECK: 400074 {{[0-9a-f]+}} 41f20003 c0f24003 0a221a60 -# addrL = 0x1000 ^^ -# addrH = 0x40 ^^ -# addrH addrL _ZL5data1 addr -# (0x40 << 16) + 0x1000 = 0x401000 -# CHECK: SYMBOL TABLE: -# CHECK: 00401000 l .bss 00000004 _ZL5data1 -# CHECK: 00400074 g F .text {{[0-9a-f]+}} main -# -# INSN-CROP: Contents of section .text: -# INSN-CROP: 400074 80b400af - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B400AF40F20003C0F200030A221A6000231846BD465DF8047B7047 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000004 - Symbol: _ZL5data1 - Type: R_ARM_THM_MOVW_ABS_NC - Addend: 0 - - Offset: 0x0000000000000008 - Symbol: _ZL5data1 - Type: R_ARM_THM_MOVT_ABS - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: 411C0000 -Symbols: - Local: - - Name: _ZL5data1 - Type: STT_OBJECT - Section: .bss - Size: 0x0000000000000004 - Global: - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 -... diff --git a/test/elf/ARM/rel-tls-ie32.test b/test/elf/ARM/rel-tls-ie32.test deleted file mode 100644 index 7b65c2f194c7..000000000000 --- a/test/elf/ARM/rel-tls-ie32.test +++ /dev/null @@ -1,109 +0,0 @@ -# Check handling of R_ARM_TLS_IE32 relocation. -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-tls.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-tlsv.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-tls.o %t-tlsv.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .got: -# CHECK: 401008 08000000 0c000000 -# tp_off(i) = 0x08 ^^ ^^ tp_off(j) = 0x0c -# tp_off(i) + sizeof(i) = tp_off(j) -# 0x08 + 0x04 = 0x0c -# CHECK: SYMBOL TABLE: -# CHECK: 00400094 g F .text {{[0-9a-f]+}} main -# CHECK: 00000000 g .tdata 00000004 i -# sizeof(i) = 0x04 ^^ -# CHECK: 00000004 g .tdata 00000004 j - -# tls.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B400AF0C4B7B441B681DEE702FD2580A4B7B441B681DEE701FCB581A44084B7B441B681DEE701FCB585B0013441846BD465DF8047B70472E000000260000001C000000 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000038 - Symbol: i - Type: R_ARM_TLS_IE32 - - Offset: 0x000000000000003C - Symbol: i - Type: R_ARM_TLS_IE32 - - Offset: 0x0000000000000040 - Symbol: j - Type: R_ARM_TLS_IE32 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - - Name: i - Type: STT_TLS - - Name: j - Type: STT_TLS - -# tlsv.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x0000000000000004 - Content: 05000000FBFFFFFF -Symbols: - Global: - - Name: i - Type: STT_TLS - Section: .tdata - Size: 0x0000000000000004 - - Name: j - Type: STT_TLS - Section: .tdata - Value: 0x0000000000000004 - Size: 0x0000000000000004 -... diff --git a/test/elf/ARM/rel-tls-le32.test b/test/elf/ARM/rel-tls-le32.test deleted file mode 100644 index d0d3d5b6821a..000000000000 --- a/test/elf/ARM/rel-tls-le32.test +++ /dev/null @@ -1,61 +0,0 @@ -# Check handling of R_ARM_TLS_LE32 relocation. -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-o.o -o %t -# RUN: llvm-objdump -s -t %t | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK: 4000b4 {{[0-9a-f]+}} 08000000 -# tp_off = 0x000008 ^^ -# CHECK: SYMBOL TABLE: -# CHECK: 00400094 g F .text {{[0-9a-f]+}} main -# CHECK: 00000000 g .tdata 00000004 i - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 04B02DE500B08DE2703F1DEE10209FE5023093E70300A0E100D04BE204B09DE41EFF2FE100000000 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: .text - Relocations: - - Offset: 0x0000000000000024 - Symbol: i - Type: R_ARM_TLS_LE32 - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x0000000000000004 - Content: '05000000' -Symbols: - Global: - - Name: i - Type: STT_TLS - Section: .tdata - Size: 0x0000000000000004 - - Name: main - Type: STT_FUNC - Section: .text -... diff --git a/test/elf/ARM/thm-symbols.test b/test/elf/ARM/thm-symbols.test deleted file mode 100644 index c91505c98100..000000000000 --- a/test/elf/ARM/thm-symbols.test +++ /dev/null @@ -1,52 +0,0 @@ -# Check that symbols formed from Thumb instructions are valid: -# 1. Symbol address. -# 2. Symbol content size. -# 3. Symbol content. - -# RUN: yaml2obj -format=elf %s > %t-t.o -# RUN: lld -flavor gnu -target arm-linux-gnu \ -# RUN: -Bstatic --noinhibit-exec %t-t.o -o %t-t -# RUN: llvm-readobj -symbols %t-t | FileCheck -check-prefix=SYM-ADDR %s -# RUN: llvm-readobj -symbols %t-t | FileCheck -check-prefix=SYM-SIZE %s -# RUN: llvm-objdump -s -t %t-t | FileCheck -check-prefix=SYM-CONTENT %s - -# SYM-ADDR: Name: main (1) -# SYM-ADDR-NEXT: Value: 0x400075 - -# SYM-SIZE: Name: main (1) -# SYM-SIZE-NEXT: Value: 0x{{[0-9a-f]+}} -# SYM-SIZE-NEXT: Size: 16 - -# SYM-CONTENT: Contents of section .text: -# SYM-CONTENT-NEXT: 400074 80b400af 00231846 bd465df8 047b7047 .....#.F.F]..{pG - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B400AF00231846BD465DF8047B7047 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 -... diff --git a/test/elf/ARM/undef-lazy-symbol.test b/test/elf/ARM/undef-lazy-symbol.test deleted file mode 100644 index f32549e85be4..000000000000 --- a/test/elf/ARM/undef-lazy-symbol.test +++ /dev/null @@ -1,135 +0,0 @@ -# Check that _GLOBAL_OFFSET_TABLE_ symbol is resolved - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-got.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-got.o -o %t -# RUN: llvm-readobj -symbols %t | FileCheck -check-prefix=GOT %s - -# GOT: Name: _GLOBAL_OFFSET_TABLE_ (185) -# GOT-NEXT: Value: {{[0-9]+}} -# GOT-NEXT: Size: 0 -# GOT-NEXT: Binding: Global (0x1) -# GOT-NEXT: Type: Object (0x1) -# GOT-NEXT: Other: 0 -# GOT-NEXT: Section: Absolute (0xFFF1) - -# Check that __exidx_start/_end symbols are resolved - -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-exidx.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --defsym=main=fn --noinhibit-exec %t-exidx.o -o %t -# RUN: llvm-readobj -symbols %t | FileCheck -check-prefix=EXIDX %s - -# EXIDX: Name: __exidx_start (188) -# EXIDX-NEXT: Value: {{[0-9]+}} -# EXIDX-NEXT: Size: 0 -# EXIDX-NEXT: Binding: Global (0x1) -# EXIDX-NEXT: Type: Object (0x1) -# EXIDX-NEXT: Other: 0 -# EXIDX-NEXT: Section: Absolute (0xFFF1) -# -# EXIDX: Name: __exidx_end (202) -# EXIDX-NEXT: Value: {{[0-9]+}} -# EXIDX-NEXT: Size: 0 -# EXIDX-NEXT: Binding: Global (0x1) -# EXIDX-NEXT: Type: Object (0x1) -# EXIDX-NEXT: Other: 0 -# EXIDX-NEXT: Section: Absolute (0xFFF1) - -# Check that all symbols are resolved - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-got.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-exidx.o -# RUN: lld -flavor gnu -target arm -m armelf_linux_eabi -Bstatic \ -# RUN: --noinhibit-exec %t-got.o %t-exidx.o -o %t -# RUN: llvm-readobj -symbols %t | FileCheck -check-prefix=SYMS %s - -# SYMS: Name: _GLOBAL_OFFSET_TABLE_ (188) -# SYMS-NEXT: Value: {{[0-9]+}} -# SYMS-NEXT: Size: 0 -# SYMS-NEXT: Binding: Global (0x1) -# SYMS-NEXT: Type: Object (0x1) -# SYMS-NEXT: Other: 0 -# SYMS-NEXT: Section: Absolute (0xFFF1) -# -# SYMS: Name: __exidx_start (210) -# SYMS-NEXT: Value: {{[0-9]+}} -# SYMS-NEXT: Size: 0 -# SYMS-NEXT: Binding: Global (0x1) -# SYMS-NEXT: Type: Object (0x1) -# SYMS-NEXT: Other: 0 -# SYMS-NEXT: Section: Absolute (0xFFF1) -# -# SYMS: Name: __exidx_end (224) -# SYMS-NEXT: Value: {{[0-9]+}} -# SYMS-NEXT: Size: 0 -# SYMS-NEXT: Binding: Global (0x1) -# SYMS-NEXT: Type: Object (0x1) -# SYMS-NEXT: Other: 0 -# SYMS-NEXT: Section: Absolute (0xFFF1) - -# got.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B483B000AF40F20003C0F200037B60002318460C37BD465DF8047B704700BF - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - - Name: _GLOBAL_OFFSET_TABLE_ - -# exidx.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 80B483B000AF40F20003C0F200037B60002318460C37BD465DF8047B704700BF - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Global: - - Name: fn - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - - Name: __exidx_start - - Name: __exidx_end -... diff --git a/test/elf/Hexagon/Inputs/dynobj-data.c b/test/elf/Hexagon/Inputs/dynobj-data.c deleted file mode 100644 index 0f4ea9b80526..000000000000 --- a/test/elf/Hexagon/Inputs/dynobj-data.c +++ /dev/null @@ -1,3 +0,0 @@ -int d = 10; - -int fn() { return d; } diff --git a/test/elf/Hexagon/Inputs/dynobj-data.o b/test/elf/Hexagon/Inputs/dynobj-data.o Binary files differdeleted file mode 100644 index 13d283cd0eff..000000000000 --- a/test/elf/Hexagon/Inputs/dynobj-data.o +++ /dev/null diff --git a/test/elf/Hexagon/Inputs/dynobj.c b/test/elf/Hexagon/Inputs/dynobj.c deleted file mode 100644 index f17fdadd6945..000000000000 --- a/test/elf/Hexagon/Inputs/dynobj.c +++ /dev/null @@ -1,26 +0,0 @@ -extern int shankar; -static int a; -static int b; -int c; -int fn2() { - return 0; -} - -int fn1() { - return 0; -} - -int fn() { - a = 10; - b = 20; - c = 10; - shankar = 20; - return 0; -} - -int fn3() { - fn(); - fn1(); - fn2(); - return 0; -} diff --git a/test/elf/Hexagon/Inputs/dynobj.o b/test/elf/Hexagon/Inputs/dynobj.o Binary files differdeleted file mode 100644 index 6c184f2edd60..000000000000 --- a/test/elf/Hexagon/Inputs/dynobj.o +++ /dev/null diff --git a/test/elf/Hexagon/Inputs/got-plt-order.c b/test/elf/Hexagon/Inputs/got-plt-order.c deleted file mode 100644 index 621f670ef7c5..000000000000 --- a/test/elf/Hexagon/Inputs/got-plt-order.c +++ /dev/null @@ -1,6 +0,0 @@ -int c = 10; -int fn() { c = 20; return 0; } - -int fn1() { - return fn(); -} diff --git a/test/elf/Hexagon/Inputs/got-plt-order.o b/test/elf/Hexagon/Inputs/got-plt-order.o Binary files differdeleted file mode 100644 index e97678b739bd..000000000000 --- a/test/elf/Hexagon/Inputs/got-plt-order.o +++ /dev/null diff --git a/test/elf/Hexagon/Inputs/libMaxAlignment.a b/test/elf/Hexagon/Inputs/libMaxAlignment.a Binary files differdeleted file mode 100644 index cc5461a09ae4..000000000000 --- a/test/elf/Hexagon/Inputs/libMaxAlignment.a +++ /dev/null diff --git a/test/elf/Hexagon/Inputs/sda-base.o b/test/elf/Hexagon/Inputs/sda-base.o Binary files differdeleted file mode 100644 index 410a3d47d320..000000000000 --- a/test/elf/Hexagon/Inputs/sda-base.o +++ /dev/null diff --git a/test/elf/Hexagon/Inputs/sdata1.c b/test/elf/Hexagon/Inputs/sdata1.c deleted file mode 100644 index 77c2a54c36a1..000000000000 --- a/test/elf/Hexagon/Inputs/sdata1.c +++ /dev/null @@ -1,3 +0,0 @@ -static int a = 0; - -int b = 10; diff --git a/test/elf/Hexagon/Inputs/sdata1.o b/test/elf/Hexagon/Inputs/sdata1.o Binary files differdeleted file mode 100644 index bf908fed27e9..000000000000 --- a/test/elf/Hexagon/Inputs/sdata1.o +++ /dev/null diff --git a/test/elf/Hexagon/Inputs/sdata2.c b/test/elf/Hexagon/Inputs/sdata2.c deleted file mode 100644 index 96b37271d773..000000000000 --- a/test/elf/Hexagon/Inputs/sdata2.c +++ /dev/null @@ -1,6 +0,0 @@ -int sdata1 = 10; -int sdata2 = 20; -int sdata3 = 30; - -int sbss1 = 0; - diff --git a/test/elf/Hexagon/Inputs/sdata2.o b/test/elf/Hexagon/Inputs/sdata2.o Binary files differdeleted file mode 100644 index e4ec810866e5..000000000000 --- a/test/elf/Hexagon/Inputs/sdata2.o +++ /dev/null diff --git a/test/elf/Hexagon/Inputs/use-shared.hexagon b/test/elf/Hexagon/Inputs/use-shared.hexagon Binary files differdeleted file mode 100644 index 9e5ffb42d36a..000000000000 --- a/test/elf/Hexagon/Inputs/use-shared.hexagon +++ /dev/null diff --git a/test/elf/Hexagon/dynlib-data.test b/test/elf/Hexagon/dynlib-data.test deleted file mode 100644 index f3260ba4847b..000000000000 --- a/test/elf/Hexagon/dynlib-data.test +++ /dev/null @@ -1,9 +0,0 @@ -RUN: lld -flavor gnu -target hexagon %p/Inputs/dynobj-data.o \ -RUN: -o %t --noinhibit-exec -shared -RUN: llvm-objdump -s %t > %t1 -RUN: FileCheck -check-prefix=CHECKRELOCS %s < %t1 - -CHECKRELOCS: Contents of section .text: -CHECKRELOCS: 00f8 01c09da0 01d89da1 3c400000 18c4496a ........<@....Ij -CHECKRELOCS: 0108 ff7fff0f 00ff9897 00c08091 38c09d91 ............8... -CHECKRELOCS: 0118 1ec01e96 .... diff --git a/test/elf/Hexagon/dynlib-gotoff.test b/test/elf/Hexagon/dynlib-gotoff.test deleted file mode 100644 index 752d3acd4c08..000000000000 --- a/test/elf/Hexagon/dynlib-gotoff.test +++ /dev/null @@ -1,128 +0,0 @@ -# This tests GOT's and PLT's for dynamic libraries for Hexagon -RUN: lld -flavor gnu -target hexagon %p/Inputs/dynobj.o \ -RUN: -o %t --output-filetype=yaml -shared --noinhibit-exec -RUN: FileCheck -check-prefix=CHECKGOTPLT %s < %t - - - name: .PLT0 -CHECKGOTPLT: type: stub -CHECKGOTPLT: content: [ 00, 40, 00, 00, 1C, C0, 49, 6A, 0E, 42, 9C, E2, -CHECKGOTPLT: 4F, 40, 9C, 91, 3C, C0, 9C, 91, 0E, 42, 0E, 8C, -CHECKGOTPLT: 00, C0, 9C, 52 ] -CHECKGOTPLT: alignment: 2^4 -CHECKGOTPLT: section-name: .plt -CHECKGOTPLT: references: -CHECKGOTPLT: - kind: R_HEX_B32_PCREL_X -CHECKGOTPLT: offset: 0 - target: __got0 -CHECKGOTPLT: - kind: R_HEX_6_PCREL_X -CHECKGOTPLT: offset: 4 - target: __got0 -CHECKGOTPLT: addend: 4 - - name: __plt_fn -CHECKGOTPLT: type: stub -CHECKGOTPLT: content: [ 00, 40, 00, 00, 0E, C0, 49, 6A, 1C, C0, 8E, 91, -CHECKGOTPLT: 00, C0, 9C, 52 ] -CHECKGOTPLT: alignment: 2^4 -CHECKGOTPLT: section-name: .plt -CHECKGOTPLT: references: -CHECKGOTPLT: - kind: R_HEX_B32_PCREL_X -CHECKGOTPLT: offset: 0 - target: __got_fn -CHECKGOTPLT: - kind: R_HEX_6_PCREL_X -CHECKGOTPLT: offset: 4 - target: __got_fn -CHECKGOTPLT: addend: 4 - - name: __plt_fn1 -CHECKGOTPLT: type: stub -CHECKGOTPLT: content: [ 00, 40, 00, 00, 0E, C0, 49, 6A, 1C, C0, 8E, 91, -CHECKGOTPLT: 00, C0, 9C, 52 ] -CHECKGOTPLT: alignment: 2^4 -CHECKGOTPLT: section-name: .plt -CHECKGOTPLT: references: -CHECKGOTPLT: - kind: R_HEX_B32_PCREL_X -CHECKGOTPLT: offset: 0 - target: __got_fn1 -CHECKGOTPLT: - kind: R_HEX_6_PCREL_X -CHECKGOTPLT: offset: 4 - target: __got_fn1 -CHECKGOTPLT: addend: 4 - - name: __plt_fn2 -CHECKGOTPLT: type: stub -CHECKGOTPLT: content: [ 00, 40, 00, 00, 0E, C0, 49, 6A, 1C, C0, 8E, 91, -CHECKGOTPLT: 00, C0, 9C, 52 ] -CHECKGOTPLT: alignment: 2^4 -CHECKGOTPLT: section-name: .plt -CHECKGOTPLT: references: -CHECKGOTPLT: - kind: R_HEX_B32_PCREL_X -CHECKGOTPLT: offset: 0 - target: __got_fn2 -CHECKGOTPLT: - kind: R_HEX_6_PCREL_X -CHECKGOTPLT: offset: 4 - target: __got_fn2 -CHECKGOTPLT: addend: 4 - - name: __got0 -CHECKGOTPLT: type: got -CHECKGOTPLT: content: [ 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, -CHECKGOTPLT: 00, 00, 00, 00 ] -CHECKGOTPLT: alignment: 2^3 -CHECKGOTPLT: section-name: .got.plt -CHECKGOTPLT: permissions: rw- - - name: __got_c -CHECKGOTPLT: type: got -CHECKGOTPLT: content: [ 00, 00, 00, 00 ] -CHECKGOTPLT: alignment: 2^2 -CHECKGOTPLT: section-name: .got -CHECKGOTPLT: permissions: rw- -CHECKGOTPLT: references: -CHECKGOTPLT: - kind: R_HEX_GLOB_DAT -CHECKGOTPLT: offset: 0 -CHECKGOTPLT: target: c - - name: __got_shankar -CHECKGOTPLT: type: got -CHECKGOTPLT: content: [ 00, 00, 00, 00 ] -CHECKGOTPLT: alignment: 2^2 -CHECKGOTPLT: section-name: .got -CHECKGOTPLT: permissions: rw- -CHECKGOTPLT: references: -CHECKGOTPLT: - kind: R_HEX_GLOB_DAT -CHECKGOTPLT: offset: 0 -CHECKGOTPLT: target: shankar - - name: __got_fn -CHECKGOTPLT: type: got -CHECKGOTPLT: content: [ 00, 00, 00, 00 ] -CHECKGOTPLT: alignment: 2^2 -CHECKGOTPLT: section-name: .got.plt -CHECKGOTPLT: permissions: rw- -CHECKGOTPLT: references: -CHECKGOTPLT: - kind: R_HEX_JMP_SLOT -CHECKGOTPLT: offset: 0 -CHECKGOTPLT: target: fn -CHECKGOTPLT: - kind: R_HEX_32 -CHECKGOTPLT: offset: 0 - target: .PLT0 - - name: __got_fn1 -CHECKGOTPLT: type: got -CHECKGOTPLT: content: [ 00, 00, 00, 00 ] -CHECKGOTPLT: alignment: 2^2 -CHECKGOTPLT: section-name: .got.plt -CHECKGOTPLT: permissions: rw- -CHECKGOTPLT: references: -CHECKGOTPLT: - kind: R_HEX_JMP_SLOT -CHECKGOTPLT: offset: 0 -CHECKGOTPLT: target: fn1 -CHECKGOTPLT: - kind: R_HEX_32 -CHECKGOTPLT: offset: 0 - target: .PLT0 - - name: __got_fn2 -CHECKGOTPLT: type: got -CHECKGOTPLT: content: [ 00, 00, 00, 00 ] -CHECKGOTPLT: alignment: 2^2 -CHECKGOTPLT: section-name: .got.plt -CHECKGOTPLT: permissions: rw- -CHECKGOTPLT: references: -CHECKGOTPLT: - kind: R_HEX_JMP_SLOT -CHECKGOTPLT: offset: 0 -CHECKGOTPLT: target: fn2 -CHECKGOTPLT: - kind: R_HEX_32 -CHECKGOTPLT: offset: 0 - target: .PLT0 diff --git a/test/elf/Hexagon/dynlib-hash.test b/test/elf/Hexagon/dynlib-hash.test deleted file mode 100644 index f93176492348..000000000000 --- a/test/elf/Hexagon/dynlib-hash.test +++ /dev/null @@ -1,9 +0,0 @@ -RUN: lld -flavor gnu -target hexagon %p/Inputs/dynobj.o \ -RUN: -o %t --noinhibit-exec -shared -RUN: llvm-objdump -s %t > %t1 -RUN: FileCheck -check-prefix=CHECKHASH %s < %t1 - -CHECKHASH: Contents of section .hash: -CHECKHASH: 0094 03000000 07000000 06000000 01000000 -CHECKHASH: 00a4 04000000 00000000 00000000 00000000 -CHECKHASH: 00b4 00000000 03000000 02000000 05000000 diff --git a/test/elf/Hexagon/dynlib-rela.test b/test/elf/Hexagon/dynlib-rela.test deleted file mode 100644 index 81617349e2f7..000000000000 --- a/test/elf/Hexagon/dynlib-rela.test +++ /dev/null @@ -1,9 +0,0 @@ -# Tests that the relocation sections have the right alignment. -RUN: lld -flavor gnu -target hexagon %p/Inputs/use-shared.hexagon -shared -o %t1 -RUN: llvm-readobj -sections %t1 > %t2 -RUN: FileCheck -check-prefix=SECTIONS %s < %t2 - -SECTIONS: Section { -SECTIONS: Name: .rela.plt (23) -SECTIONS: AddressAlignment: 4 -SECTIONS: } diff --git a/test/elf/Hexagon/dynlib-syms.test b/test/elf/Hexagon/dynlib-syms.test deleted file mode 100644 index e649230d9e90..000000000000 --- a/test/elf/Hexagon/dynlib-syms.test +++ /dev/null @@ -1,7 +0,0 @@ -RUN: lld -flavor gnu -target hexagon %p/Inputs/dynobj.o \ -RUN: -o %t --noinhibit-exec -shared -RUN: llvm-nm -n -M %t > %t1 -RUN: FileCheck -check-prefix=CHECKSYMS %s < %t1 - -CHECKSYMS: 0000025c A _DYNAMIC -CHECKSYMS: 00001008 A _GLOBAL_OFFSET_TABLE_ diff --git a/test/elf/Hexagon/dynlib.test b/test/elf/Hexagon/dynlib.test deleted file mode 100644 index c5bf23fdf229..000000000000 --- a/test/elf/Hexagon/dynlib.test +++ /dev/null @@ -1,36 +0,0 @@ -RUN: lld -flavor gnu -target hexagon %p/Inputs/use-shared.hexagon -shared -o %t1 -RUN: llvm-readobj -dyn-symbols %t1 > %t2 -RUN: FileCheck -check-prefix=DYNSYMS %s < %t2 -RUN: llvm-readobj -program-headers %t1 | FileCheck %s - -DYNSYMS: DynamicSymbols [ -DYNSYMS: Symbol { -DYNSYMS: Name: fn2 -DYNSYMS-NEXT: Value: -DYNSYMS-NEXT: Size: -DYNSYMS-NEXT: Binding: Global -DYNSYMS-NEXT: Type: Function -DYNSYMS-NEXT: Other: -DYNSYMS-NEXT: Section: .text -DYNSYMS: } -DYNSYMS: Symbol { -DYNSYMS: Name: fn1 -DYNSYMS-NEXT: Value: -DYNSYMS-NEXT: Size: -DYNSYMS-NEXT: Binding: Global -DYNSYMS-NEXT: Type: Function -DYNSYMS-NEXT: Other: -DYNSYMS-NEXT: Section: .text -DYNSYMS: } -DYNSYMS: Symbol { -DYNSYMS: Name: fn3 -DYNSYMS-NEXT: Value: -DYNSYMS-NEXT: Size: -DYNSYMS-NEXT: Binding: Global -DYNSYMS-NEXT: Type: Function -DYNSYMS-NEXT: Other: -DYNSYMS-NEXT: Section: .text -DYNSYMS-NEXT: } -DYNSYMS-NEXT: ] - -CHECK-NOT: PT_PHDR diff --git a/test/elf/Hexagon/hexagon-got-plt-order.test b/test/elf/Hexagon/hexagon-got-plt-order.test deleted file mode 100644 index 7600ebe59fc5..000000000000 --- a/test/elf/Hexagon/hexagon-got-plt-order.test +++ /dev/null @@ -1,5 +0,0 @@ -RUN: lld -flavor gnu -target hexagon %p/Inputs/got-plt-order.o -o %t -shared -RUN: llvm-objdump -section-headers %t | FileCheck %s - -CHECK: .got -CHECK-NEXT: .got.plt diff --git a/test/elf/Hexagon/hexagon-plt-setup.test b/test/elf/Hexagon/hexagon-plt-setup.test deleted file mode 100644 index 15c4e22ed9c5..000000000000 --- a/test/elf/Hexagon/hexagon-plt-setup.test +++ /dev/null @@ -1,12 +0,0 @@ -RUN: lld -flavor gnu -target hexagon %p/Inputs/use-shared.hexagon \ -RUN: --output-filetype=yaml --noinhibit-exec -o %t2 -RUN: FileCheck %s < %t2 - -CHECK: - name: fn3 -CHECK: references: -CHECK: - kind: R_HEX_B22_PCREL -CHECK: offset: 4 - target: -CHECK: - kind: R_HEX_B22_PCREL -CHECK: offset: 8 - target: diff --git a/test/elf/Hexagon/maxalignment.test b/test/elf/Hexagon/maxalignment.test deleted file mode 100644 index cac1c200734f..000000000000 --- a/test/elf/Hexagon/maxalignment.test +++ /dev/null @@ -1,8 +0,0 @@ -# This tests that we lld is able to get the contentType properly for archives -# when they intermittently get loaded at an address whose alignment is 2 - -RUN: lld -flavor gnu -target hexagon --whole-archive %p/Inputs/libMaxAlignment.a \ -RUN: --noinhibit-exec -static -o %t -RUN: llvm-nm %t | FileCheck %s - -CHECK: {{[0-9a-f]+}} D a diff --git a/test/elf/Hexagon/rela-order.test b/test/elf/Hexagon/rela-order.test deleted file mode 100644 index 925a82c29290..000000000000 --- a/test/elf/Hexagon/rela-order.test +++ /dev/null @@ -1,9 +0,0 @@ -RUN: lld -flavor gnu -target hexagon %p/Inputs/dynobj.o -shared \ -RUN: --noinhibit-exec -o %t -RUN: llvm-objdump -section-headers %t | FileCheck %s - -CHECK: .dynsym -CHECK-NEXT: .dynstr -CHECK-NEXT: .rela.dyn -CHECK-NEXT: .rela.plt -CHECK-NEXT: .plt diff --git a/test/elf/Hexagon/sda-base.test b/test/elf/Hexagon/sda-base.test deleted file mode 100644 index 0bab92abf685..000000000000 --- a/test/elf/Hexagon/sda-base.test +++ /dev/null @@ -1,4 +0,0 @@ -RUN: lld -flavor gnu -target hexagon %p/Inputs/sda-base.o -o %t1 --noinhibit-exec -RUN: llvm-nm -n %t1 | FileCheck %s -check-prefix=sdabase - -sdabase: 00002000 A _SDA_BASE_ diff --git a/test/elf/Hexagon/zerofillquick-sdata.test b/test/elf/Hexagon/zerofillquick-sdata.test deleted file mode 100644 index 5488e19f5c44..000000000000 --- a/test/elf/Hexagon/zerofillquick-sdata.test +++ /dev/null @@ -1,18 +0,0 @@ -# This tests that a typeZeroFillFast atom is associated with a section that has -# the correct memory size. - -RUN: lld -flavor gnu -target hexagon %p/Inputs/sdata1.o %p/Inputs/sdata2.o \ -RUN: -o %t --noinhibit-exec -static -RUN: llvm-readobj -sections %t | FileCheck -check-prefix=CHECKSECTIONSANDSIZE %s - -CHECKSECTIONSANDSIZE: Section { -CHECKSECTIONSANDSIZE: Name: .sdata (13) -CHECKSECTIONSANDSIZE: Address: 0x1000 -CHECKSECTIONSANDSIZE: Offset: 0x1000 -CHECKSECTIONSANDSIZE: Size: 24 -CHECKSECTIONSANDSIZE: } -CHECKSECTIONSANDSIZE: Section { -CHECKSECTIONSANDSIZE: Name: .bss (20) -CHECKSECTIONSANDSIZE: Address: 0x1018 -CHECKSECTIONSANDSIZE: Offset: 0x1018 -CHECKSECTIONSANDSIZE: } diff --git a/test/elf/Inputs/abs-test.i386 b/test/elf/Inputs/abs-test.i386 Binary files differdeleted file mode 100644 index 8556c24da551..000000000000 --- a/test/elf/Inputs/abs-test.i386 +++ /dev/null diff --git a/test/elf/Inputs/bar.o.x86-64 b/test/elf/Inputs/bar.o.x86-64 Binary files differdeleted file mode 100644 index 467485f0bb96..000000000000 --- a/test/elf/Inputs/bar.o.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/branch-test.hexagon b/test/elf/Inputs/branch-test.hexagon Binary files differdeleted file mode 100644 index 1ffb47228e32..000000000000 --- a/test/elf/Inputs/branch-test.hexagon +++ /dev/null diff --git a/test/elf/Inputs/branch-test.ppc b/test/elf/Inputs/branch-test.ppc Binary files differdeleted file mode 100644 index 4698941e7503..000000000000 --- a/test/elf/Inputs/branch-test.ppc +++ /dev/null diff --git a/test/elf/Inputs/consecutive-weak-defs.o.yaml b/test/elf/Inputs/consecutive-weak-defs.o.yaml deleted file mode 100644 index 144c2426bae1..000000000000 --- a/test/elf/Inputs/consecutive-weak-defs.o.yaml +++ /dev/null @@ -1,66 +0,0 @@ ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 554889E5E8000000005DC3554889E5B8640000005DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000005 - Symbol: my_weak_func - Type: R_X86_64_PC32 - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: my_func - Type: STT_FUNC - Section: .text - Size: 0x000000000000000B - Weak: - - Name: my_weak_func - Type: STT_FUNC - Section: .text - Value: 0x000000000000000B - Size: 0x000000000000000B - - Name: my_weak_func2 - Type: STT_FUNC - Section: .text - Value: 0x000000000000000B - Size: 0x000000000000000B - - Name: my_weak_func3 - Type: STT_FUNC - Section: .text - Value: 0x000000000000000B - Size: 0x000000000000000B -... diff --git a/test/elf/Inputs/constants-merge.x86-64 b/test/elf/Inputs/constants-merge.x86-64 Binary files differdeleted file mode 100644 index 0087eb8f8cb5..000000000000 --- a/test/elf/Inputs/constants-merge.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/constdata.x86-64 b/test/elf/Inputs/constdata.x86-64 Binary files differdeleted file mode 100644 index d877a5535357..000000000000 --- a/test/elf/Inputs/constdata.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/foo.o.x86-64 b/test/elf/Inputs/foo.o.x86-64 Binary files differdeleted file mode 100644 index 72a89eefa8ed..000000000000 --- a/test/elf/Inputs/foo.o.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/globalconst.c b/test/elf/Inputs/globalconst.c deleted file mode 100644 index 08395a88e7ca..000000000000 --- a/test/elf/Inputs/globalconst.c +++ /dev/null @@ -1,2 +0,0 @@ -/* compile the code with -fmerge-all-constants */ -const char mystr[] = "foobar"; diff --git a/test/elf/Inputs/globalconst.o.x86-64 b/test/elf/Inputs/globalconst.o.x86-64 Binary files differdeleted file mode 100644 index d8e266e76334..000000000000 --- a/test/elf/Inputs/globalconst.o.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/gotpcrel.S b/test/elf/Inputs/gotpcrel.S deleted file mode 100644 index 300675f59612..000000000000 --- a/test/elf/Inputs/gotpcrel.S +++ /dev/null @@ -1,11 +0,0 @@ - .text - .globl main - .align 16, 0x90 - .type main,@function -main: # @main - movq blah@GOTPCREL(%rip), %rax - movq main@GOTPCREL(%rip), %rax - ret - - .weak blah - .type blah,@function diff --git a/test/elf/Inputs/gotpcrel.x86-64 b/test/elf/Inputs/gotpcrel.x86-64 Binary files differdeleted file mode 100644 index f9c61d0edf15..000000000000 --- a/test/elf/Inputs/gotpcrel.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/group-cmd-search-1.ls b/test/elf/Inputs/group-cmd-search-1.ls deleted file mode 100644 index 965369309a20..000000000000 --- a/test/elf/Inputs/group-cmd-search-1.ls +++ /dev/null @@ -1 +0,0 @@ -GROUP ( shared.so-x86-64 ) diff --git a/test/elf/Inputs/group-cmd-search-2.ls b/test/elf/Inputs/group-cmd-search-2.ls deleted file mode 100644 index f1eee6a35efa..000000000000 --- a/test/elf/Inputs/group-cmd-search-2.ls +++ /dev/null @@ -1 +0,0 @@ -GROUP ( /shared.so-x86-64 ) diff --git a/test/elf/Inputs/group-cmd-search-3.ls b/test/elf/Inputs/group-cmd-search-3.ls deleted file mode 100644 index 83ce0ca62fb1..000000000000 --- a/test/elf/Inputs/group-cmd-search-3.ls +++ /dev/null @@ -1 +0,0 @@ -GROUP ( -l:shared.so-x86-64 -lfnarchive ) diff --git a/test/elf/Inputs/ifunc.S b/test/elf/Inputs/ifunc.S deleted file mode 100644 index 0ac1f5a5b0bb..000000000000 --- a/test/elf/Inputs/ifunc.S +++ /dev/null @@ -1,21 +0,0 @@ - .text - .globl hey; - .type hey, @function; -hey: - .type hey, @gnu_indirect_function; - leaq __hey_1(%rip), %rax - ret - - .text - .type __hey_1, @function; - .globl __hey_1; -__hey_1: - movq $42, %rax - ret - - .text - .type plt, @function; - .globl plt; -plt: - call hey@PLT - ret diff --git a/test/elf/Inputs/ifunc.cpp b/test/elf/Inputs/ifunc.cpp deleted file mode 100644 index 2e520277d36c..000000000000 --- a/test/elf/Inputs/ifunc.cpp +++ /dev/null @@ -1,3 +0,0 @@ -extern "C" int hey(); - -int main() { return hey(); } diff --git a/test/elf/Inputs/ifunc.cpp.x86-64 b/test/elf/Inputs/ifunc.cpp.x86-64 Binary files differdeleted file mode 100644 index 20c812cabd2c..000000000000 --- a/test/elf/Inputs/ifunc.cpp.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/ifunc.x86-64 b/test/elf/Inputs/ifunc.x86-64 Binary files differdeleted file mode 100644 index 36c8e04ca837..000000000000 --- a/test/elf/Inputs/ifunc.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/init_array.x86-64 b/test/elf/Inputs/init_array.x86-64 Binary files differdeleted file mode 100644 index 2425c227fd42..000000000000 --- a/test/elf/Inputs/init_array.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/libfnarchive.a b/test/elf/Inputs/libfnarchive.a Binary files differdeleted file mode 100644 index 753acd6e2c65..000000000000 --- a/test/elf/Inputs/libfnarchive.a +++ /dev/null diff --git a/test/elf/Inputs/libifunc.x86-64.so b/test/elf/Inputs/libifunc.x86-64.so Binary files differdeleted file mode 100644 index 0f05b308ce78..000000000000 --- a/test/elf/Inputs/libifunc.x86-64.so +++ /dev/null diff --git a/test/elf/Inputs/libundef.so b/test/elf/Inputs/libundef.so Binary files differdeleted file mode 100644 index 41f2a668f360..000000000000 --- a/test/elf/Inputs/libundef.so +++ /dev/null diff --git a/test/elf/Inputs/libweaksym.so b/test/elf/Inputs/libweaksym.so Binary files differdeleted file mode 100755 index 7ff4ea56ae60..000000000000 --- a/test/elf/Inputs/libweaksym.so +++ /dev/null diff --git a/test/elf/Inputs/main-with-global-def.o.yaml b/test/elf/Inputs/main-with-global-def.o.yaml deleted file mode 100644 index 55029614e1e8..000000000000 --- a/test/elf/Inputs/main-with-global-def.o.yaml +++ /dev/null @@ -1,56 +0,0 @@ ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: 554889E5B8C80000005DC3554889E54883EC10C745FC00000000B000E8000000004883C4105DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x000000000000001D - Symbol: my_func - Type: R_X86_64_PC32 - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x000000000000000B - Size: 0x000000000000001C - - Name: my_weak_func2 - Type: STT_FUNC - Section: .text - Size: 0x000000000000000B - - Name: my_func -... diff --git a/test/elf/Inputs/mainobj.x86_64 b/test/elf/Inputs/mainobj.x86_64 Binary files differdeleted file mode 100644 index d0f29418237d..000000000000 --- a/test/elf/Inputs/mainobj.x86_64 +++ /dev/null diff --git a/test/elf/Inputs/object-test.elf-hexagon b/test/elf/Inputs/object-test.elf-hexagon Binary files differdeleted file mode 100644 index bfc85a7d0b76..000000000000 --- a/test/elf/Inputs/object-test.elf-hexagon +++ /dev/null diff --git a/test/elf/Inputs/object-test.elf-i386 b/test/elf/Inputs/object-test.elf-i386 Binary files differdeleted file mode 100644 index 872684c7fcc1..000000000000 --- a/test/elf/Inputs/object-test.elf-i386 +++ /dev/null diff --git a/test/elf/Inputs/phdr.i386 b/test/elf/Inputs/phdr.i386 Binary files differdeleted file mode 100644 index 7c83dd314891..000000000000 --- a/test/elf/Inputs/phdr.i386 +++ /dev/null diff --git a/test/elf/Inputs/quickdata-sort-test.o.elf-hexagon b/test/elf/Inputs/quickdata-sort-test.o.elf-hexagon Binary files differdeleted file mode 100644 index 03d028707129..000000000000 --- a/test/elf/Inputs/quickdata-sort-test.o.elf-hexagon +++ /dev/null diff --git a/test/elf/Inputs/quickdata-sortcommon-test.o.elf-hexagon b/test/elf/Inputs/quickdata-sortcommon-test.o.elf-hexagon Binary files differdeleted file mode 100644 index 410a3d47d320..000000000000 --- a/test/elf/Inputs/quickdata-sortcommon-test.o.elf-hexagon +++ /dev/null diff --git a/test/elf/Inputs/quickdata-test.elf-hexagon b/test/elf/Inputs/quickdata-test.elf-hexagon Binary files differdeleted file mode 100644 index c3ae53a6babe..000000000000 --- a/test/elf/Inputs/quickdata-test.elf-hexagon +++ /dev/null diff --git a/test/elf/Inputs/reloc-test.elf-i386 b/test/elf/Inputs/reloc-test.elf-i386 Binary files differdeleted file mode 100644 index 1a5558131fff..000000000000 --- a/test/elf/Inputs/reloc-test.elf-i386 +++ /dev/null diff --git a/test/elf/Inputs/reloc-xb.x86 b/test/elf/Inputs/reloc-xb.x86 Binary files differdeleted file mode 100644 index 4d9770aa2356..000000000000 --- a/test/elf/Inputs/reloc-xb.x86 +++ /dev/null diff --git a/test/elf/Inputs/reloc-xt.x86 b/test/elf/Inputs/reloc-xt.x86 Binary files differdeleted file mode 100644 index dcdfbfb09f71..000000000000 --- a/test/elf/Inputs/reloc-xt.x86 +++ /dev/null diff --git a/test/elf/Inputs/relocs-dynamic.x86-64 b/test/elf/Inputs/relocs-dynamic.x86-64 Binary files differdeleted file mode 100644 index 0c44924d18e6..000000000000 --- a/test/elf/Inputs/relocs-dynamic.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/relocs.x86-64 b/test/elf/Inputs/relocs.x86-64 Binary files differdeleted file mode 100644 index 112dfa733db9..000000000000 --- a/test/elf/Inputs/relocs.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/responsefile b/test/elf/Inputs/responsefile deleted file mode 100644 index 2fe657a0e3b0..000000000000 --- a/test/elf/Inputs/responsefile +++ /dev/null @@ -1 +0,0 @@ ---inresponsefile diff --git a/test/elf/Inputs/rodata-test.hexagon b/test/elf/Inputs/rodata-test.hexagon Binary files differdeleted file mode 100644 index f448748e2abe..000000000000 --- a/test/elf/Inputs/rodata-test.hexagon +++ /dev/null diff --git a/test/elf/Inputs/rodata-test.i386 b/test/elf/Inputs/rodata-test.i386 Binary files differdeleted file mode 100644 index 09f71eb59969..000000000000 --- a/test/elf/Inputs/rodata-test.i386 +++ /dev/null diff --git a/test/elf/Inputs/rodata.c b/test/elf/Inputs/rodata.c deleted file mode 100644 index b43c9c945898..000000000000 --- a/test/elf/Inputs/rodata.c +++ /dev/null @@ -1,4 +0,0 @@ -const unsigned char *str = "llvm"; -int foo() { - return str[0]; -} diff --git a/test/elf/Inputs/rodata.o b/test/elf/Inputs/rodata.o Binary files differdeleted file mode 100644 index f13ddc9bba98..000000000000 --- a/test/elf/Inputs/rodata.o +++ /dev/null diff --git a/test/elf/Inputs/section-test.i386 b/test/elf/Inputs/section-test.i386 Binary files differdeleted file mode 100644 index 2b447a9f8f5b..000000000000 --- a/test/elf/Inputs/section-test.i386 +++ /dev/null diff --git a/test/elf/Inputs/shared.c b/test/elf/Inputs/shared.c deleted file mode 100644 index 2be91c4b9e45..000000000000 --- a/test/elf/Inputs/shared.c +++ /dev/null @@ -1,16 +0,0 @@ -#include <stdio.h> - -extern int i; -int i = 42; - -// Undefined weak function in a dynamic library. -__attribute__((weak)) void weakfoo(); - -// Regular function in a dynamic library. -void foo() { - // Try to call weakfoo so that the reference to weekfoo will be included in - // the resulting .so file. - if (weakfoo) - weakfoo(); - puts("Fooo!!"); -} diff --git a/test/elf/Inputs/shared.so-x86-64 b/test/elf/Inputs/shared.so-x86-64 Binary files differdeleted file mode 100644 index 0240f0e67431..000000000000 --- a/test/elf/Inputs/shared.so-x86-64 +++ /dev/null diff --git a/test/elf/Inputs/stripped-empty.x86_64 b/test/elf/Inputs/stripped-empty.x86_64 Binary files differdeleted file mode 100644 index 7368ba280d79..000000000000 --- a/test/elf/Inputs/stripped-empty.x86_64 +++ /dev/null diff --git a/test/elf/Inputs/target-test.hexagon b/test/elf/Inputs/target-test.hexagon Binary files differdeleted file mode 100644 index 7da114561920..000000000000 --- a/test/elf/Inputs/target-test.hexagon +++ /dev/null diff --git a/test/elf/Inputs/target-test.ppc b/test/elf/Inputs/target-test.ppc Binary files differdeleted file mode 100644 index 001be338c20d..000000000000 --- a/test/elf/Inputs/target-test.ppc +++ /dev/null diff --git a/test/elf/Inputs/tls.S b/test/elf/Inputs/tls.S deleted file mode 100644 index 7d9eab647b53..000000000000 --- a/test/elf/Inputs/tls.S +++ /dev/null @@ -1,50 +0,0 @@ - .text - .globl main - .align 16, 0x90 - .type main,@function -main: # @main - callq GOTTPOFF - addl %fs:tls1@TPOFF, %eax - addl %fs:tls0@TPOFF, %eax - addl %fs:tls2@TPOFF, %eax - ret - - .text - .globl GOTTPOFF - .type GOTTPOFF,@function -GOTTPOFF: - movq tls2@GOTTPOFF(%rip), %rax - movl %fs:0(%rax), %eax - ret - - .text - .globl TLSLD - .type TLSLD,@function -TLSLD: - leaq tls0@tlsld(%rip), %rdi - call __tls_get_addr@plt - leaq tls0@dtpoff(%rax), %rax - ret - - .type tls0,@object # @tls0 - .section .tbss,"awT",@nobits - .globl tls0 - .align 4 -tls0: - .long 0 # 0x0 - .size tls0, 4 - - .type tls1,@object # @tls1 - .globl tls1 - .align 4 -tls1: - .long 0 # 0x0 - .size tls1, 4 - - .type tls2,@object # @tls2 - .section .tdata,"awT",@progbits - .globl tls2 - .align 4 -tls2: - .long 1 # 0x1 - .size tls2, 4 diff --git a/test/elf/Inputs/tls.c b/test/elf/Inputs/tls.c deleted file mode 100644 index 672350756562..000000000000 --- a/test/elf/Inputs/tls.c +++ /dev/null @@ -1,11 +0,0 @@ -extern __thread int tls0; -extern __thread int tls1; -extern __thread int tls2; - -__thread int tls0 = 0; -__thread int tls1 = 0; -__thread int tls2 = 1; - -int main() { - return tls0 + tls1 + tls2; -} diff --git a/test/elf/Inputs/tls.x86-64 b/test/elf/Inputs/tls.x86-64 Binary files differdeleted file mode 100644 index b420ce89b19b..000000000000 --- a/test/elf/Inputs/tls.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/tlsAddr.x86-64 b/test/elf/Inputs/tlsAddr.x86-64 Binary files differdeleted file mode 100644 index 16cc9ab25abf..000000000000 --- a/test/elf/Inputs/tlsAddr.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/tlsaddr.c b/test/elf/Inputs/tlsaddr.c deleted file mode 100644 index f62d57b3bfb4..000000000000 --- a/test/elf/Inputs/tlsaddr.c +++ /dev/null @@ -1,8 +0,0 @@ -__thread int tls0 = 0; -__thread int tls1 = 0; -__thread int tls2 = 1; -__thread int tls3 = 2; - -int main() { - return tls0 + tls1 + tls2; -} diff --git a/test/elf/Inputs/undef-from-main-so.c b/test/elf/Inputs/undef-from-main-so.c deleted file mode 100644 index f1cb63db7ada..000000000000 --- a/test/elf/Inputs/undef-from-main-so.c +++ /dev/null @@ -1 +0,0 @@ -int x[2] = {1, 2}; diff --git a/test/elf/Inputs/undef-from-main.c b/test/elf/Inputs/undef-from-main.c deleted file mode 100644 index 366d934dd84f..000000000000 --- a/test/elf/Inputs/undef-from-main.c +++ /dev/null @@ -1,5 +0,0 @@ -extern int x[2]; - -int main() { - x[0] = 2; -} diff --git a/test/elf/Inputs/undef-pc32.o b/test/elf/Inputs/undef-pc32.o Binary files differdeleted file mode 100644 index 954916d59991..000000000000 --- a/test/elf/Inputs/undef-pc32.o +++ /dev/null diff --git a/test/elf/Inputs/undef.o b/test/elf/Inputs/undef.o Binary files differdeleted file mode 100644 index 3c9b60c6ca33..000000000000 --- a/test/elf/Inputs/undef.o +++ /dev/null diff --git a/test/elf/Inputs/undef2-so.o.yaml b/test/elf/Inputs/undef2-so.o.yaml deleted file mode 100644 index 9ecf374ced11..000000000000 --- a/test/elf/Inputs/undef2-so.o.yaml +++ /dev/null @@ -1,50 +0,0 @@ ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000001 - Content: 554889E5488B05000000008B005DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000007 - Symbol: myexportedsymbol - Type: R_X86_64_GOTPCREL - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: func - Type: STT_FUNC - Section: .text - Size: 0x000000000000000F - - Name: _GLOBAL_OFFSET_TABLE_ - - Name: myexportedsymbol diff --git a/test/elf/Inputs/use-shared-32s.c b/test/elf/Inputs/use-shared-32s.c deleted file mode 100644 index 63054cb036ea..000000000000 --- a/test/elf/Inputs/use-shared-32s.c +++ /dev/null @@ -1,8 +0,0 @@ -void foo(); - -void (*func)(); - -int main() { - func = foo; - func(); -} diff --git a/test/elf/Inputs/use-shared-32s.x86-64 b/test/elf/Inputs/use-shared-32s.x86-64 Binary files differdeleted file mode 100644 index 7e223677b93f..000000000000 --- a/test/elf/Inputs/use-shared-32s.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/use-shared.c b/test/elf/Inputs/use-shared.c deleted file mode 100644 index b370eaa4fac2..000000000000 --- a/test/elf/Inputs/use-shared.c +++ /dev/null @@ -1,7 +0,0 @@ -extern int i; -void foo(); - -int main() { - foo(); - return i; -} diff --git a/test/elf/Inputs/use-shared.x86-64 b/test/elf/Inputs/use-shared.x86-64 Binary files differdeleted file mode 100644 index 25e1eb87a2b4..000000000000 --- a/test/elf/Inputs/use-shared.x86-64 +++ /dev/null diff --git a/test/elf/Inputs/weaksym.o b/test/elf/Inputs/weaksym.o Binary files differdeleted file mode 100644 index 010ce704a313..000000000000 --- a/test/elf/Inputs/weaksym.o +++ /dev/null diff --git a/test/elf/Inputs/writersyms.o b/test/elf/Inputs/writersyms.o Binary files differdeleted file mode 100644 index 7cd472d99d77..000000000000 --- a/test/elf/Inputs/writersyms.o +++ /dev/null diff --git a/test/elf/Inputs/x86-64-relocs.S b/test/elf/Inputs/x86-64-relocs.S deleted file mode 100644 index 2547c0f19bb0..000000000000 --- a/test/elf/Inputs/x86-64-relocs.S +++ /dev/null @@ -1,12 +0,0 @@ - .text - .globl main - .align 16, 0x90 - .type main,@function -main: # @main - call foo@PLT - ret - - .globl foo - .type foo,@function -foo: - ret diff --git a/test/elf/Mips/base-address-64.test b/test/elf/Mips/base-address-64.test deleted file mode 100644 index 07110e7f918f..000000000000 --- a/test/elf/Mips/base-address-64.test +++ /dev/null @@ -1,78 +0,0 @@ -# Check executable base address configuration. Base address should be -# equal to 0x400000 and the MIPS_BASE_ADDRESS dynamic tag's value should -# be the same. -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mips64el --noinhibit-exec -o %t.exe %t.o -# RUN: llvm-readobj -dynamic-table -program-headers %t.exe | FileCheck %s - -# CHECK: DynamicSection [ (13 entries) -# CHECK: Tag Type Name/Value -# CHECK-NEXT: 0x0000000000000004 HASH 0x{{[0-9A-F]+}} -# CHECK-NEXT: 0x0000000000000005 STRTAB 0x{{[0-9A-F]+}} -# CHECK-NEXT: 0x0000000000000006 SYMTAB 0x{{[0-9A-F]+}} -# CHECK-NEXT: 0x000000000000000A STRSZ 1 (bytes) -# CHECK-NEXT: 0x000000000000000B SYMENT 24 (bytes) -# CHECK-NEXT: 0x0000000070000001 MIPS_RLD_VERSION 1 -# CHECK-NEXT: 0x0000000070000005 MIPS_FLAGS NOTPOT -# CHECK-NEXT: 0x0000000070000006 MIPS_BASE_ADDRESS 0x120000000 -# CHECK-NEXT: 0x000000007000000A MIPS_LOCAL_GOTNO 2 -# CHECK-NEXT: 0x0000000070000011 MIPS_SYMTABNO 1 -# CHECK-NEXT: 0x0000000070000013 MIPS_GOTSYM 0x1 -# CHECK-NEXT: 0x0000000000000003 PLTGOT 0x120001000 -# CHECK-NEXT: 0x0000000000000000 NULL 0x0 -# CHECK-NEXT: ] - -# CHECK: ProgramHeaders [ -# CHECK: ProgramHeader { -# CHECK: Type: PT_PHDR (0x6) -# CHECK: Offset: 0x40 -# CHECK: VirtualAddress: 0x{{[0-9A-F]+}} -# CHECK: } -# CHECK: ProgramHeader { -# CHECK: Type: PT_INTERP (0x3) -# CHECK: Offset: 0x190 -# CHECK: VirtualAddress: 0x{{[0-9A-F]+}} -# CHECK: } -# CHECK: ProgramHeader { -# CHECK: Type: PT_LOAD (0x1) -# CHECK-NEXT: Offset: 0x0 -# CHECK-NEXT: VirtualAddress: 0x120000000 - -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ARCH_64R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x10 - Size: 0x00 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x10 - Size: 0x00 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: main - Section: .text diff --git a/test/elf/Mips/base-address.test b/test/elf/Mips/base-address.test deleted file mode 100644 index f55091f84c33..000000000000 --- a/test/elf/Mips/base-address.test +++ /dev/null @@ -1,109 +0,0 @@ -# Check executable base address configuration. Base address should be -# equal to 0x400000 and the MIPS_BASE_ADDRESS dynamic tag's value should -# be the same. -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel --noinhibit-exec -o %t.exe %t.o -# RUN: llvm-readobj -dynamic-table -program-headers %t.exe | FileCheck %s - -# CHECK: DynamicSection [ (13 entries) -# CHECK: Tag Type Name/Value -# CHECK-NEXT: 0x00000004 HASH 0x{{[0-9A-F]+}} -# CHECK-NEXT: 0x00000005 STRTAB 0x{{[0-9A-F]+}} -# CHECK-NEXT: 0x00000006 SYMTAB 0x{{[0-9A-F]+}} -# CHECK-NEXT: 0x0000000A STRSZ 1 (bytes) -# CHECK-NEXT: 0x0000000B SYMENT 16 (bytes) -# CHECK-NEXT: 0x70000001 MIPS_RLD_VERSION 1 -# CHECK-NEXT: 0x70000005 MIPS_FLAGS NOTPOT -# CHECK-NEXT: 0x70000006 MIPS_BASE_ADDRESS 0x400000 -# CHECK-NEXT: 0x7000000A MIPS_LOCAL_GOTNO 2 -# CHECK-NEXT: 0x70000011 MIPS_SYMTABNO 1 -# CHECK-NEXT: 0x70000013 MIPS_GOTSYM 0x1 -# CHECK-NEXT: 0x00000003 PLTGOT 0x401000 -# CHECK-NEXT: 0x00000000 NULL 0x0 -# CHECK-NEXT: ] - -# CHECK: ProgramHeaders [ -# CHECK: ProgramHeader { -# CHECK: Type: PT_PHDR (0x6) -# CHECK: Offset: 0x34 -# CHECK: VirtualAddress: 0x{{[0-9A-F]+}} -# CHECK: } -# CHECK: ProgramHeader { -# CHECK: Type: PT_INTERP (0x3) -# CHECK: Offset: 0xF4 -# CHECK: VirtualAddress: 0x{{[0-9A-F]+}} -# CHECK: } -# CHECK: ProgramHeader { -# CHECK: Type: PT_LOAD (0x1) -# CHECK: Offset: 0x0 -# CHECK: VirtualAddress: 0x{{[0-9A-F]+}} -# CHECK: } -# CHECK: ProgramHeader { -# CHECK: Type: PT_LOAD (0x1) -# CHECK: Offset: 0x1000 -# CHECK: VirtualAddress: 0x{{[0-9A-F]+}} -# CHECK: } -# CHECK: ProgramHeader { -# CHECK: Type: PT_LOAD (0x1) -# CHECK: Offset: 0x2000 -# CHECK: VirtualAddress: 0x{{[0-9A-F]+}} -# CHECK: } -# CHECK: ProgramHeader { -# CHECK: Type: PT_DYNAMIC (0x2) -# CHECK: Offset: 0x12C -# CHECK: VirtualAddress: 0x{{[0-9A-F]+}} -# CHECK: } -# CHECK: ] - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x00 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x00 - - Name: .reginfo - Type: SHT_MIPS_REGINFO - Flags: [ SHF_ALLOC ] - AddressAlign: 0x01 - Size: 0x18 - - Name: .MIPS.abiflags - Type: SHT_MIPS_ABIFLAGS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x08 - Content: '000020010101000100000000000000000000000000000000' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .reginfo - Type: STT_SECTION - Section: .reginfo - - Name: .MIPS.abiflags - Type: STT_SECTION - Section: .MIPS.abiflags - Global: - - Name: main - Section: .text diff --git a/test/elf/Mips/ctors-order.test b/test/elf/Mips/ctors-order.test deleted file mode 100644 index 344dcd5fc516..000000000000 --- a/test/elf/Mips/ctors-order.test +++ /dev/null @@ -1,163 +0,0 @@ -# Check ordering of .ctors.* sections. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-crtbeginS.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-crtendS.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-obj.o -# RUN: lld -flavor gnu -target mipsel -shared --output-filetype=yaml \ -# RUN: %t-crtbeginS.o %t-obj.o %t-crtendS.o | FileCheck %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so \ -# RUN: %t-crtbeginS.o %t-obj.o %t-crtendS.o -# RUN: llvm-objdump -s %t.so | FileCheck -check-prefix=RAW %s - -# CHECK: defined-atoms: -# CHECK-NEXT: - type: data -# CHECK-NEXT: alignment: 2^2 -# CHECK-NEXT: section-choice: custom-required -# CHECK-NEXT: section-name: .ctors -# CHECK-NEXT: references: -# CHECK-NEXT: - kind: layout-after -# CHECK-NEXT: offset: 0 -# CHECK-NEXT: target: __CTOR_LIST__ -# CHECK-NEXT: - name: __CTOR_LIST__ -# CHECK-NEXT: type: data -# CHECK-NEXT: content: [ FF, FF, FF, FF ] -# CHECK-NEXT: alignment: 2^2 -# CHECK-NEXT: section-choice: custom-required -# CHECK-NEXT: section-name: .ctors -# CHECK-NEXT: - type: data -# CHECK-NEXT: content: [ 11, 11, 11, 11 ] -# CHECK-NEXT: alignment: 2^2 -# CHECK-NEXT: section-choice: custom-required -# CHECK-NEXT: section-name: .ctors.1 -# CHECK-NEXT: - type: data -# CHECK-NEXT: content: [ 22, 22, 22, 22 ] -# CHECK-NEXT: alignment: 2^2 -# CHECK-NEXT: section-choice: custom-required -# CHECK-NEXT: section-name: .ctors.2 -# CHECK-NEXT: - ref-name: L003 -# CHECK-NEXT: type: data -# CHECK-NEXT: alignment: 2^2 -# CHECK-NEXT: section-choice: custom-required -# CHECK-NEXT: section-name: .ctors -# CHECK-NEXT: references: -# CHECK-NEXT: - kind: layout-after -# CHECK-NEXT: offset: 0 -# CHECK-NEXT: target: __CTOR_END__ -# CHECK-NEXT: - name: __CTOR_END__ -# CHECK-NEXT: type: data -# CHECK-NEXT: content: [ 00, 00, 00, 00 ] -# CHECK-NEXT: alignment: 2^2 -# CHECK-NEXT: section-choice: custom-required -# CHECK-NEXT: section-name: .ctors - -# RAW: Contents of section .ctors: -# RAW-NEXT: 1000 ffffffff 11111111 22222222 00000000 -# crtbeginS.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .ctors - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Content: 'FFFFFFFF' - -Symbols: - Local: - - Name: .ctors - Type: STT_SECTION - Section: .ctors - - Name: __CTOR_LIST__ - Type: STT_OBJECT - Section: .ctors - -# crtendS.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x0F - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: .ctors - Type: R_MIPS_HI16 - - Offset: 0x04 - Symbol: .ctors - Type: R_MIPS_LO16 - - Offset: 0x08 - Symbol: .ctors - Type: R_MIPS_HI16 - - Offset: 0x0C - Symbol: .ctors - Type: R_MIPS_LO16 - - Name: .ctors - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .ctors - Type: STT_SECTION - Section: .ctors - - Name: __CTOR_END__ - Type: STT_OBJECT - Section: .ctors - - Name: __do_global_ctors_aux - Type: STT_FUNC - Section: .text - -# obj.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .ctors.2 - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Content: '22222222' - - Name: .ctors.1 - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Content: '11111111' - -Symbols: - Local: - - Name: .ctors.2 - Type: STT_SECTION - Section: .ctors.2 - - Name: .ctors.1 - Type: STT_SECTION - Section: .ctors.1 -... diff --git a/test/elf/Mips/dt-textrel-64.test b/test/elf/Mips/dt-textrel-64.test deleted file mode 100644 index 32cc99e54b2f..000000000000 --- a/test/elf/Mips/dt-textrel-64.test +++ /dev/null @@ -1,74 +0,0 @@ -# Check that if a dynamic relocation R_MIPS_64 modify a read-only section, -# .dynamic section contains the DT_TEXTREL tag. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mips64el -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mips64el -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dynamic-table %t.exe | FileCheck %s - -# CHECK: 0x{{[0-9A-F]+}} TEXTREL - -# so.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x4 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 0x08 - -# o.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x4 - Size: 0x8 - - - Name: .rel.text - Type: SHT_RELA - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0 - Symbol: T1 - Type: R_MIPS_64 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x8 - - Name: T1 -... diff --git a/test/elf/Mips/dt-textrel.test b/test/elf/Mips/dt-textrel.test deleted file mode 100644 index ca854dff8e58..000000000000 --- a/test/elf/Mips/dt-textrel.test +++ /dev/null @@ -1,74 +0,0 @@ -# Check that if a dynamic relocation modify a read-only section, -# .dynamic section contains the DT_TEXTREL tag. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dynamic-table %t.exe | FileCheck %s - -# CHECK: 0x{{[0-9A-F]+}} TEXTREL - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x04 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 0x04 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Content: '00000000' - - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0 - Symbol: T1 - Type: R_MIPS_32 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x04 - - Name: T1 -... diff --git a/test/elf/Mips/dynlib-dynamic.test b/test/elf/Mips/dynlib-dynamic.test deleted file mode 100644 index 54afdec263a6..000000000000 --- a/test/elf/Mips/dynlib-dynamic.test +++ /dev/null @@ -1,110 +0,0 @@ -# Check MIPS specific tags in the dynamic table. - -# Build shared library -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec -o %t.so %t.o -# RUN: llvm-readobj -dynamic-table %t.so | FileCheck %s - -# CHECK: Format: ELF32-mips -# CHECK: Arch: mipsel -# CHECK: AddressSize: 32bit -# CHECK: LoadName: -# CHECK: DynamicSection [ (13 entries) -# CHECK: Tag Type Name/Value -# CHECK-NEXT: 0x00000004 HASH 0x{{[0-9A-F]+}} -# CHECK-NEXT: 0x00000005 STRTAB 0x{{[0-9A-F]+}} -# CHECK-NEXT: 0x00000006 SYMTAB 0x{{[0-9A-F]+}} -# CHECK-NEXT: 0x0000000A STRSZ 17 (bytes) -# CHECK-NEXT: 0x0000000B SYMENT 16 (bytes) -# CHECK-NEXT: 0x70000001 MIPS_RLD_VERSION 1 -# CHECK-NEXT: 0x70000005 MIPS_FLAGS NOTPOT -# CHECK-NEXT: 0x70000006 MIPS_BASE_ADDRESS 0x0 -# CHECK-NEXT: 0x7000000A MIPS_LOCAL_GOTNO 4 -# CHECK-NEXT: 0x70000011 MIPS_SYMTABNO 4 -# CHECK-NEXT: 0x70000013 MIPS_GOTSYM 0x2 -# CHECK-NEXT: 0x00000003 PLTGOT 0x1000 -# CHECK-NEXT: 0x00000000 NULL 0x0 -# CHECK-NEXT: ] - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x18 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: '$.str1' - Type: R_MIPS_GOT16 - - Offset: 0x04 - Symbol: '$.str1' - Type: R_MIPS_LO16 - - Offset: 0x08 - Symbol: '$.str2' - Type: R_MIPS_GOT16 - - Offset: 0x0C - Symbol: '$.str2' - Type: R_MIPS_LO16 - - Offset: 0x10 - Symbol: glob2 - Type: R_MIPS_CALL16 - - Offset: 0x14 - Symbol: ext1 - Type: R_MIPS_CALL16 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x00 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x00 - - Name: .rodata.str1 - Type: SHT_PROGBITS - AddressAlign: 0x01 - Size: 0x05 - - Name: .rodata.str2 - Type: SHT_PROGBITS - AddressAlign: 0x01 - Size: 0x05 - -Symbols: - Local: - - Name: '$.str1' - Section: .rodata.str1 - - Name: '$.str2' - Section: .rodata.str2 - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .rodata.str1 - Type: STT_SECTION - Section: .rodata.str1 - - Name: .rodata.str2 - Type: STT_SECTION - Section: .rodata.str2 - Global: - - Name: glob - Section: .text - - Name: ext1 - - Name: glob2 diff --git a/test/elf/Mips/dynlib-dynsym-micro.test b/test/elf/Mips/dynlib-dynsym-micro.test deleted file mode 100644 index 4d75945af7b0..000000000000 --- a/test/elf/Mips/dynlib-dynsym-micro.test +++ /dev/null @@ -1,208 +0,0 @@ -# 1. Check sorting of .dynsym content accordingly to .got section -# in case of using microMIPS relocations. -# 2. Check that microMIPS records in a dynamic symbol table have: -# - cleared the STO_MIPS_MICROMIPS flag -# - adjusted adress - -# Build shared library -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec -o %t-so %t.o -# RUN: llvm-readobj -dyn-symbols %t-so | FileCheck -check-prefix=CHECK-DYN %s - -# Build shared library (yaml format) -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec \ -# RUN: --output-filetype=yaml -o %t-yaml %t.o -# RUN: FileCheck -check-prefix=CHECK-GOT %s < %t-yaml - -# CHECK-DYN: Format: ELF32-mips -# CHECK-DYN: Arch: mipsel -# CHECK-DYN: AddressSize: 32bit -# CHECK-DYN: LoadName: -# CHECK-DYN: DynamicSymbols [ -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: @ (0) -# CHECK-DYN: Value: 0x0 -# CHECK-DYN: Size: 0 -# CHECK-DYN: Binding: Local (0x0) -# CHECK-DYN: Type: None (0x0) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: Undefined (0x0) -# CHECK-DYN: } -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: bar@ (5) -# CHECK-DYN: Value: 0x139 -# CHECK-DYN: Size: 4 -# CHECK-DYN: Binding: Global (0x1) -# CHECK-DYN: Type: Function (0x2) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: .text (0x4) -# CHECK-DYN: } -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: foo@ (1) -# CHECK-DYN: Value: 0x121 -# CHECK-DYN: Size: 24 -# CHECK-DYN: Binding: Global (0x1) -# CHECK-DYN: Type: Function (0x2) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: .text (0x4) -# CHECK-DYN: } -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: ext1@ (9) -# CHECK-DYN: Value: 0x0 -# CHECK-DYN: Size: 0 -# CHECK-DYN: Binding: Global (0x1) -# CHECK-DYN: Type: None (0x0) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: Undefined (0x0) -# CHECK-DYN: } -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: ext2@ (14) -# CHECK-DYN: Value: 0x0 -# CHECK-DYN: Size: 0 -# CHECK-DYN: Binding: Global (0x1) -# CHECK-DYN: Type: None (0x0) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: Undefined (0x0) -# CHECK-DYN: } -# CHECK-DYN: ] - -# CHECK-GOT: - type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: - type: got -# CHECK-GOT: content: [ 00, 00, 00, 80 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: - ref-name: L000 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_32_HI16 -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: L007 -# CHECK-GOT: - ref-name: L002 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_32_HI16 -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: L008 -# CHECK-GOT: - ref-name: L004 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_GLOBAL_GOT -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: foo -# CHECK-GOT: - ref-name: L005 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_GLOBAL_GOT -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: ext1 -# CHECK-GOT: - ref-name: L006 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_GLOBAL_GOT -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: ext2 - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x1C - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: .rodata.str1 - Type: R_MICROMIPS_GOT16 - - Offset: 0x04 - Symbol: .rodata.str1 - Type: R_MICROMIPS_LO16 - - Offset: 0x08 - Symbol: .rodata.str2 - Type: R_MICROMIPS_GOT16 - - Offset: 0x0C - Symbol: .rodata.str2 - Type: R_MICROMIPS_LO16 - - Offset: 0x10 - Symbol: foo - Type: R_MICROMIPS_CALL16 - - Offset: 0x14 - Symbol: ext1 - Type: R_MICROMIPS_CALL16 - - Offset: 0x18 - Symbol: ext2 - Type: R_MICROMIPS_CALL16 - - Name: .rodata.str1 - Type: SHT_PROGBITS - AddressAlign: 0x01 - Size: 0x05 - - Name: .rodata.str2 - Type: SHT_PROGBITS - AddressAlign: 0x01 - Size: 0x05 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .rodata.str1 - Type: STT_SECTION - Section: .rodata.str1 - - Name: .rodata.str2 - Type: STT_SECTION - Section: .rodata.str2 - Global: - - Name: bar - Section: .text - Value: 0x18 - Other: [ STO_MIPS_MICROMIPS ] - - Name: foo - Section: .text - Other: [ STO_MIPS_MICROMIPS ] - - Name: ext1 - - Name: ext2 -... diff --git a/test/elf/Mips/dynlib-dynsym.test b/test/elf/Mips/dynlib-dynsym.test deleted file mode 100644 index d480c3cbbe41..000000000000 --- a/test/elf/Mips/dynlib-dynsym.test +++ /dev/null @@ -1,202 +0,0 @@ -# Check sorting of .dynsym content accordingly to .got section. - -# Build shared library -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec -o %t-so %t.o -# RUN: llvm-readobj -dyn-symbols %t-so | FileCheck -check-prefix=CHECK-DYN %s - -# Build shared library (yaml format) -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec \ -# RUN: --output-filetype=yaml -o %t-yaml %t.o -# RUN: FileCheck -check-prefix=CHECK-GOT %s < %t-yaml - -# CHECK-DYN: Format: ELF32-mips -# CHECK-DYN: Arch: mipsel -# CHECK-DYN: AddressSize: 32bit -# CHECK-DYN: LoadName: -# CHECK-DYN: DynamicSymbols [ -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: @ (0) -# CHECK-DYN: Value: 0x0 -# CHECK-DYN: Size: 0 -# CHECK-DYN: Binding: Local (0x0) -# CHECK-DYN: Type: None (0x0) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: Undefined (0x0) -# CHECK-DYN: } -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: bar@ (5) -# CHECK-DYN: Value: 0x138 -# CHECK-DYN: Size: 4 -# CHECK-DYN: Binding: Global (0x1) -# CHECK-DYN: Type: Function (0x2) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: .text (0x4) -# CHECK-DYN: } -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: foo@ (1) -# CHECK-DYN: Value: 0x120 -# CHECK-DYN: Size: 24 -# CHECK-DYN: Binding: Global (0x1) -# CHECK-DYN: Type: Function (0x2) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: .text (0x4) -# CHECK-DYN: } -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: ext1@ (9) -# CHECK-DYN: Value: 0x0 -# CHECK-DYN: Size: 0 -# CHECK-DYN: Binding: Global (0x1) -# CHECK-DYN: Type: None (0x0) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: Undefined (0x0) -# CHECK-DYN: } -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: ext2@ (14) -# CHECK-DYN: Value: 0x0 -# CHECK-DYN: Size: 0 -# CHECK-DYN: Binding: Global (0x1) -# CHECK-DYN: Type: None (0x0) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: Undefined (0x0) -# CHECK-DYN: } -# CHECK-DYN: ] - -# CHECK-GOT: - type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: - type: got -# CHECK-GOT: content: [ 00, 00, 00, 80 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: - ref-name: L000 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_32_HI16 -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: L007 -# CHECK-GOT: - ref-name: L002 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_32_HI16 -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: L008 -# CHECK-GOT: - ref-name: L004 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_GLOBAL_GOT -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: foo -# CHECK-GOT: - ref-name: L005 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_GLOBAL_GOT -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: ext1 -# CHECK-GOT: - ref-name: L006 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_GLOBAL_GOT -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: ext2 - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x1C - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: .rodata.str1 - Type: R_MIPS_GOT16 - - Offset: 0x04 - Symbol: .rodata.str1 - Type: R_MIPS_LO16 - - Offset: 0x08 - Symbol: .rodata.str2 - Type: R_MIPS_GOT16 - - Offset: 0x0C - Symbol: .rodata.str2 - Type: R_MIPS_LO16 - - Offset: 0x10 - Symbol: foo - Type: R_MIPS_CALL16 - - Offset: 0x14 - Symbol: ext1 - Type: R_MIPS_CALL16 - - Offset: 0x18 - Symbol: ext2 - Type: R_MIPS_CALL16 - - Name: .rodata.str1 - Type: SHT_PROGBITS - AddressAlign: 0x01 - Size: 0x05 - - Name: .rodata.str2 - Type: SHT_PROGBITS - AddressAlign: 0x01 - Size: 0x05 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .rodata.str1 - Type: STT_SECTION - Section: .rodata.str1 - - Name: .rodata.str2 - Type: STT_SECTION - Section: .rodata.str2 - Global: - - Name: bar - Section: .text - Value: 0x18 - - Name: foo - Section: .text - - Name: ext1 - - Name: ext2 -... diff --git a/test/elf/Mips/dynlib-fileheader-64.test b/test/elf/Mips/dynlib-fileheader-64.test deleted file mode 100644 index 206f4fa7794d..000000000000 --- a/test/elf/Mips/dynlib-fileheader-64.test +++ /dev/null @@ -1,72 +0,0 @@ -# Check ELF Header for 64-bit shared library. - -# Build shared library -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mips64el -shared -o %t.so %t.o -# RUN: llvm-readobj -file-headers %t.so | FileCheck %s - -# CHECK: Format: ELF64-mips -# CHECK: Arch: mips64el -# CHECK: AddressSize: 64bit -# CHECK: LoadName: -# CHECK: ElfHeader { -# CHECK: Ident { -# CHECK: Magic: (7F 45 4C 46) -# CHECK: Class: 64-bit (0x2) -# CHECK: DataEncoding: LittleEndian (0x1) -# CHECK: FileVersion: 1 -# CHECK: OS/ABI: SystemV (0x0) -# CHECK: ABIVersion: 0 -# CHECK: Unused: (00 00 00 00 00 00 00) -# CHECK: } -# CHECK: Type: SharedObject (0x3) -# CHECK: Machine: EM_MIPS (0x8) -# CHECK: Version: 1 -# CHECK: Entry: 0x170 -# CHECK: ProgramHeaderOffset: 0x40 -# CHECK: SectionHeaderOffset: 0x2140 -# CHECK: Flags [ (0x80000006) -# CHECK: EF_MIPS_ARCH_64R2 (0x80000000) -# CHECK: EF_MIPS_CPIC (0x4) -# CHECK: EF_MIPS_PIC (0x2) -# CHECK: ] -# CHECK: HeaderSize: 64 -# CHECK: ProgramHeaderEntrySize: 56 -# CHECK: ProgramHeaderCount: 4 -# CHECK: SectionHeaderEntrySize: 64 -# CHECK: SectionHeaderCount: 11 -# CHECK: StringTableSectionIndex: 8 -# CHECK: } - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - Global: - - Name: data - Type: STT_OBJECT - Section: .data - Size: 0x04 -... diff --git a/test/elf/Mips/dynlib-fileheader-micro-64.test b/test/elf/Mips/dynlib-fileheader-micro-64.test deleted file mode 100644 index c03a951671ea..000000000000 --- a/test/elf/Mips/dynlib-fileheader-micro-64.test +++ /dev/null @@ -1,75 +0,0 @@ -# Check ELF Header for shared library in case of microMIPS symbols. - -# Build shared library -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mips64el -shared -o %t.so %t.o -# RUN: llvm-readobj -file-headers %t.so | FileCheck %s - -# CHECK: Format: ELF64-mips -# CHECK-NEXT: Arch: mips64el -# CHECK-NEXT: AddressSize: 64bit -# CHECK-NEXT: LoadName: -# CHECK-NEXT: ElfHeader { -# CHECK-NEXT: Ident { -# CHECK-NEXT: Magic: (7F 45 4C 46) -# CHECK-NEXT: Class: 64-bit (0x2) -# CHECK-NEXT: DataEncoding: LittleEndian (0x1) -# CHECK-NEXT: FileVersion: 1 -# CHECK-NEXT: OS/ABI: SystemV (0x0) -# CHECK-NEXT: ABIVersion: 0 -# CHECK-NEXT: Unused: (00 00 00 00 00 00 00) -# CHECK-NEXT: } -# CHECK-NEXT: Type: SharedObject (0x3) -# CHECK-NEXT: Machine: EM_MIPS (0x8) -# CHECK-NEXT: Version: 1 -# CHECK-NEXT: Entry: 0x170 -# CHECK-NEXT: ProgramHeaderOffset: 0x40 -# CHECK-NEXT: SectionHeaderOffset: 0x2140 -# CHECK-NEXT: Flags [ (0x82000007) -# CHECK-NEXT: EF_MIPS_ARCH_64R2 (0x80000000) -# CHECK-NEXT: EF_MIPS_CPIC (0x4) -# CHECK-NEXT: EF_MIPS_MICROMIPS (0x2000000) -# CHECK-NEXT: EF_MIPS_NOREORDER (0x1) -# CHECK-NEXT: EF_MIPS_PIC (0x2) -# CHECK-NEXT: ] -# CHECK-NEXT: HeaderSize: 64 -# CHECK-NEXT: ProgramHeaderEntrySize: 56 -# CHECK-NEXT: ProgramHeaderCount: 4 -# CHECK-NEXT: SectionHeaderEntrySize: 64 -# CHECK-NEXT: SectionHeaderCount: 11 -# CHECK-NEXT: StringTableSectionIndex: 8 -# CHECK-NEXT:} - -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_MICROMIPS, EF_MIPS_ARCH_64R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Size: 0x08 - Other: [ STO_MIPS_MICROMIPS ] diff --git a/test/elf/Mips/dynlib-fileheader-micro.test b/test/elf/Mips/dynlib-fileheader-micro.test deleted file mode 100644 index 139b3aa626c9..000000000000 --- a/test/elf/Mips/dynlib-fileheader-micro.test +++ /dev/null @@ -1,82 +0,0 @@ -# Check ELF Header for shared library in case of microMIPS symbols. - -# Build shared library -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t.o -# RUN: llvm-readobj -file-headers %t.so | FileCheck %s - -# CHECK: Format: ELF32-mips -# CHECK-NEXT: Arch: mipsel -# CHECK-NEXT: AddressSize: 32bit -# CHECK-NEXT: LoadName: -# CHECK-NEXT: ElfHeader { -# CHECK-NEXT: Ident { -# CHECK-NEXT: Magic: (7F 45 4C 46) -# CHECK-NEXT: Class: 32-bit (0x1) -# CHECK-NEXT: DataEncoding: LittleEndian (0x1) -# CHECK-NEXT: FileVersion: 1 -# CHECK-NEXT: OS/ABI: SystemV (0x0) -# CHECK-NEXT: ABIVersion: 0 -# CHECK-NEXT: Unused: (00 00 00 00 00 00 00) -# CHECK-NEXT: } -# CHECK-NEXT: Type: SharedObject (0x3) -# CHECK-NEXT: Machine: EM_MIPS (0x8) -# CHECK-NEXT: Version: 1 -# CHECK-NEXT: Entry: 0x100 -# CHECK-NEXT: ProgramHeaderOffset: 0x34 -# CHECK-NEXT: SectionHeaderOffset: 0x2100 -# CHECK-NEXT: Flags [ (0x72001007) -# CHECK-NEXT: EF_MIPS_ABI_O32 (0x1000) -# CHECK-NEXT: EF_MIPS_ARCH_32R2 (0x70000000) -# CHECK-NEXT: EF_MIPS_CPIC (0x4) -# CHECK-NEXT: EF_MIPS_MICROMIPS (0x2000000) -# CHECK-NEXT: EF_MIPS_NOREORDER (0x1) -# CHECK-NEXT: EF_MIPS_PIC (0x2) -# CHECK-NEXT: ] -# CHECK-NEXT: HeaderSize: 52 -# CHECK-NEXT: ProgramHeaderEntrySize: 32 -# CHECK-NEXT: ProgramHeaderCount: 4 -# CHECK-NEXT: SectionHeaderEntrySize: 40 -# CHECK-NEXT: SectionHeaderCount: 11 -# CHECK-NEXT: StringTableSectionIndex: 8 -# CHECK-NEXT:} - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x00 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x00 - - Name: .reginfo - Type: SHT_MIPS_REGINFO - Flags: [ SHF_ALLOC ] - AddressAlign: 0x01 - Size: 0x18 - - Name: .MIPS.abiflags - Type: SHT_MIPS_ABIFLAGS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x08 - Size: 0x18 - -Symbols: - Global: - - Name: glob - Section: .text - Other: [ STO_MIPS_MICROMIPS ] diff --git a/test/elf/Mips/dynlib-fileheader.test b/test/elf/Mips/dynlib-fileheader.test deleted file mode 100644 index 5dd9d6a64a71..000000000000 --- a/test/elf/Mips/dynlib-fileheader.test +++ /dev/null @@ -1,80 +0,0 @@ -# Check ELF Header for shared library. - -# Build shared library -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t.o -# RUN: llvm-readobj -file-headers %t.so | FileCheck %s - -# CHECK: Format: ELF32-mips -# CHECK: Arch: mipsel -# CHECK: AddressSize: 32bit -# CHECK: LoadName: -# CHECK: ElfHeader { -# CHECK: Ident { -# CHECK: Magic: (7F 45 4C 46) -# CHECK: Class: 32-bit (0x1) -# CHECK: DataEncoding: LittleEndian (0x1) -# CHECK: FileVersion: 1 -# CHECK: OS/ABI: SystemV (0x0) -# CHECK: ABIVersion: 0 -# CHECK: Unused: (00 00 00 00 00 00 00) -# CHECK: } -# CHECK: Type: SharedObject (0x3) -# CHECK: Machine: EM_MIPS (0x8) -# CHECK: Version: 1 -# CHECK: Entry: 0x100 -# CHECK: ProgramHeaderOffset: 0x34 -# CHECK: SectionHeaderOffset: 0x2100 -# CHECK: Flags [ (0x70001007) -# CHECK: EF_MIPS_ABI_O32 (0x1000) -# CHECK: EF_MIPS_ARCH_32R2 (0x70000000) -# CHECK: EF_MIPS_CPIC (0x4) -# CHECK: EF_MIPS_NOREORDER (0x1) -# CHECK: EF_MIPS_PIC (0x2) -# CHECK: ] -# CHECK: HeaderSize: 52 -# CHECK: ProgramHeaderEntrySize: 32 -# CHECK: ProgramHeaderCount: 4 -# CHECK: SectionHeaderEntrySize: 40 -# CHECK: SectionHeaderCount: 11 -# CHECK: StringTableSectionIndex: 8 -# CHECK:} - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x00 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x00 - - Name: .reginfo - Type: SHT_MIPS_REGINFO - Flags: [ SHF_ALLOC ] - AddressAlign: 0x01 - Size: 0x18 - - Name: .MIPS.abiflags - Type: SHT_MIPS_ABIFLAGS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x08 - Size: 0x18 - -Symbols: - Global: - - Name: glob - Section: .text diff --git a/test/elf/Mips/dynsym-table-1.test b/test/elf/Mips/dynsym-table-1.test deleted file mode 100644 index 43c48e730405..000000000000 --- a/test/elf/Mips/dynsym-table-1.test +++ /dev/null @@ -1,127 +0,0 @@ -# Check that LLD does not populate an executable file dynamic symbol table -# by unnecessary symbols. -# 1. bar.so defines T2 -# 2. foo.so defines T1 and references T2 -# 3. main.o reference T1 -# 4. a.out dynamic table should contain T1 entry only - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-bar.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-foo.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-main.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t-bar.so %t-bar.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t-foo.so %t-foo.o %t-bar.so -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe --as-needed \ -# RUN: %t-main.o %t-foo.so %t-bar.so -# RUN: llvm-readobj -dt -dynamic-table %t.exe | FileCheck %s - -# CHECK: DynamicSymbols [ -# 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: T1@ ({{.*}}) -# CHECK-NEXT: Value: {{.*}} -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 8 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: 0x00000003 PLTGOT 0x401000 -# CHECK-NEXT: 0x00000001 NEEDED SharedLibrary (dynsym-table-1.test.tmp-foo.so) -# CHECK-NEXT: 0x00000000 NULL 0x0 - -# bar.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 -Symbols: - Global: - - Name: T2 - Type: STT_FUNC - Section: .text - Size: 0x08 - -# foo.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x08 - Info: .text - Relocations: - - Offset: 0 - Symbol: T2 - Type: R_MIPS_CALL16 -Symbols: - Global: - - Name: T1 - Type: STT_FUNC - Section: .text - Size: 0x08 - - Name: T2 - -# main.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x08 - Info: .text - Relocations: - - Offset: 0 - Symbol: T1 - Type: R_MIPS_32 -Symbols: - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x08 - - Name: T1 -... diff --git a/test/elf/Mips/dynsym-table-2.test b/test/elf/Mips/dynsym-table-2.test deleted file mode 100644 index 538aa758910e..000000000000 --- a/test/elf/Mips/dynsym-table-2.test +++ /dev/null @@ -1,105 +0,0 @@ -# Check that LLD does not populate a shared library dynamic symbol table -# by unnecessary symbols. -# 1. bar.so defines T2 and T3 -# 2. foo.so defines T1 and references T2 -# 4. foo.so dynamic table should contain T1 and T2 entries only - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-bar.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-foo.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t-bar.so %t-bar.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t-foo.so %t-foo.o %t-bar.so -# RUN: llvm-readobj -dt -dynamic-table %t-foo.so | FileCheck %s - -# CHECK: DynamicSymbols [ -# 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: T1@ ({{.*}}) -# CHECK-NEXT: Value: {{.*}} -# CHECK-NEXT: Size: 8 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .text (0x4) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T2@ ({{.*}}) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: 0x00000003 PLTGOT 0x1000 -# CHECK-NEXT: 0x00000001 NEEDED SharedLibrary (dynsym-table-2.test.tmp-bar.so) -# CHECK-NEXT: 0x00000000 NULL 0x0 - -# bar.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 -Symbols: - Global: - - Name: T2 - Type: STT_FUNC - Section: .text - Size: 0x04 - - Name: T3 - Type: STT_FUNC - Section: .text - Value: 0x04 - Size: 0x04 - -# foo.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x08 - Info: .text - Relocations: - - Offset: 0 - Symbol: T2 - Type: R_MIPS_CALL16 -Symbols: - Global: - - Name: T1 - Type: STT_FUNC - Section: .text - Size: 0x08 - - Name: T2 -... diff --git a/test/elf/Mips/e-flags-merge-1-64.test b/test/elf/Mips/e-flags-merge-1-64.test deleted file mode 100644 index d5719539baaa..000000000000 --- a/test/elf/Mips/e-flags-merge-1-64.test +++ /dev/null @@ -1,30 +0,0 @@ -# Check that the linker shows an error when object -# file has unsupported ASE flags. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-mips16.o -# RUN: not lld -flavor gnu -target mips64el -e T -o %t.exe %t-mips16.o 2>&1 | \ -# RUN: FileCheck -check-prefix=MIPS16 %s - -# MIPS16: Unsupported extension: MIPS16 - -# mips16.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64, EF_MIPS_ARCH_ASE_M16] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Global: - - Name: T - Section: .text -... diff --git a/test/elf/Mips/e-flags-merge-1.test b/test/elf/Mips/e-flags-merge-1.test deleted file mode 100644 index 1f1d7aca6c41..000000000000 --- a/test/elf/Mips/e-flags-merge-1.test +++ /dev/null @@ -1,56 +0,0 @@ -# Check that the linker shows an error when object file has missed -# or unsupported ABI and ARCH flags or unsupported ASE flags. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-no-abi.o -# RUN: not lld -flavor gnu -target mipsel -e T -o %t.exe %t-no-abi.o 2>&1 | \ -# RUN: FileCheck -check-prefix=INVALID-ABI %s - -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-mips16.o -# RUN: not lld -flavor gnu -target mipsel -e T -o %t.exe %t-mips16.o 2>&1 | \ -# RUN: FileCheck -check-prefix=MIPS16 %s - -# INVALID-ABI: Unsupported ABI -# MIPS16: Unsupported extension: MIPS16 - -# no-abi.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T - Section: .text - -# mips16.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, EF_MIPS_ARCH_ASE_M16] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T - Section: .text -... diff --git a/test/elf/Mips/e-flags-merge-10.test b/test/elf/Mips/e-flags-merge-10.test deleted file mode 100644 index a0aa45d5f2c8..000000000000 --- a/test/elf/Mips/e-flags-merge-10.test +++ /dev/null @@ -1,43 +0,0 @@ -# Check that LLD shows an error and does not link files with mips32r2 -# and mips32r6 instructions sets. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-32r2.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-32r6.o - -# RUN: not lld -flavor gnu -target mipsel -shared -o %t.so \ -# RUN: %t-32r2.o %t-32r6.o 2>&1 | FileCheck %s - -# CHECK: Linking modules with incompatible ISA - -# 32r2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# 32r6.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 -... diff --git a/test/elf/Mips/e-flags-merge-11.test b/test/elf/Mips/e-flags-merge-11.test deleted file mode 100644 index b4c0039bd198..000000000000 --- a/test/elf/Mips/e-flags-merge-11.test +++ /dev/null @@ -1,43 +0,0 @@ -# Check that LLD shows an error and does not link files with mips64r2 -# and mips64r6 instructions sets. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-64r2.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-64r6.o - -# RUN: not lld -flavor gnu -target mips64el -shared -o %t.so \ -# RUN: %t-64r2.o %t-64r6.o 2>&1 | FileCheck %s - -# CHECK: Linking modules with incompatible ISA - -# 64r2.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64R2] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# 64r6.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64R6] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 -... diff --git a/test/elf/Mips/e-flags-merge-2-64.test b/test/elf/Mips/e-flags-merge-2-64.test deleted file mode 100644 index a169e7ea1645..000000000000 --- a/test/elf/Mips/e-flags-merge-2-64.test +++ /dev/null @@ -1,33 +0,0 @@ -# Check that the linker copies ELF header flags from the single input object -# file to the generated executable - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mips64el -e T -o %t.exe %t.o -# RUN: llvm-readobj -file-headers %t.exe | FileCheck %s - -# CHECK: Flags [ (0x62000001) -# CHECK-NEXT: EF_MIPS_ARCH_64 (0x60000000) -# CHECK-NEXT: EF_MIPS_MICROMIPS (0x2000000) -# CHECK-NEXT: EF_MIPS_NOREORDER (0x1) -# CHECK-NEXT: ] - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ARCH_64, EF_MIPS_NOREORDER, EF_MIPS_MICROMIPS ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Global: - - Name: T - Section: .text -... diff --git a/test/elf/Mips/e-flags-merge-2.test b/test/elf/Mips/e-flags-merge-2.test deleted file mode 100644 index 41d4a0b0c45e..000000000000 --- a/test/elf/Mips/e-flags-merge-2.test +++ /dev/null @@ -1,35 +0,0 @@ -# Check that the linker copies ELF header flags from the single input object -# file to the generated executable - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -e T -o %t.exe %t.o -# RUN: llvm-readobj -file-headers %t.exe | FileCheck %s - -# CHECK: Flags [ (0x52001001) -# CHECK-NEXT: EF_MIPS_ABI_O32 (0x1000) -# CHECK-NEXT: EF_MIPS_ARCH_32 (0x50000000) -# CHECK-NEXT: EF_MIPS_MICROMIPS (0x2000000) -# CHECK-NEXT: EF_MIPS_NOREORDER (0x1) -# CHECK-NEXT: ] - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, - EF_MIPS_NOREORDER, EF_MIPS_MICROMIPS] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T - Section: .text -... diff --git a/test/elf/Mips/e-flags-merge-3-64.test b/test/elf/Mips/e-flags-merge-3-64.test deleted file mode 100644 index 54065a63fb94..000000000000 --- a/test/elf/Mips/e-flags-merge-3-64.test +++ /dev/null @@ -1,130 +0,0 @@ -# Check PIC/CPIC flags merging in case of multiple input objects. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-none.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-cpic.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-pic.o -# RUN: yaml2obj -format=elf -docnum 4 %s > %t-both.o - -# RUN: lld -flavor gnu -target mips64el -e T1 -o %t-abi1.exe \ -# RUN: %t-none.o %t-pic.o 2>&1 | FileCheck -check-prefix=ABI-CALLS-WARN %s -# RUN: llvm-readobj -file-headers %t-abi1.exe \ -# RUN: | FileCheck -check-prefix=ABI-CALLS1 %s - -# RUN: lld -flavor gnu -target mips64el -e T1 -o %t-abi2.exe \ -# RUN: %t-cpic.o %t-none.o 2>&1 | FileCheck -check-prefix=ABI-CALLS-WARN %s -# RUN: llvm-readobj -file-headers %t-abi2.exe \ -# RUN: | FileCheck -check-prefix=ABI-CALLS2 %s - -# RUN: lld -flavor gnu -target mips64el -e T2 -o %t-cpic.exe %t-cpic.o %t-pic.o -# RUN: llvm-readobj -file-headers %t-cpic.exe | FileCheck -check-prefix=CPIC %s - -# RUN: lld -flavor gnu -target mips64el -e T3 -o %t-both.exe %t-pic.o %t-both.o -# RUN: llvm-readobj -file-headers %t-both.exe | FileCheck -check-prefix=BOTH %s - -# ABI-CALLS-WARN: lld warning: linking abicalls and non-abicalls files - -# ABI-CALLS1: Flags [ (0x60000004) -# ABI-CALLS1-NEXT: EF_MIPS_ARCH_64 (0x60000000) -# ABI-CALLS1-NEXT: EF_MIPS_CPIC (0x4) -# ABI-CALLS1-NEXT: ] - -# ABI-CALLS2: Flags [ (0x60000004) -# ABI-CALLS2-NEXT: EF_MIPS_ARCH_64 (0x60000000) -# ABI-CALLS2-NEXT: EF_MIPS_CPIC (0x4) -# ABI-CALLS2-NEXT: ] - -# CPIC: Flags [ (0x60000004) -# CPIC-NEXT: EF_MIPS_ARCH_64 (0x60000000) -# CPIC-NEXT: EF_MIPS_CPIC (0x4) -# CPIC-NEXT: ] - -# BOTH: Flags [ (0x60000006) -# BOTH-NEXT: EF_MIPS_ARCH_64 (0x60000000) -# BOTH-NEXT: EF_MIPS_CPIC (0x4) -# BOTH-NEXT: EF_MIPS_PIC (0x2) -# BOTH-NEXT: ] - -# none.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Global: - - Name: T1 - Section: .text - -# cpic.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64, EF_MIPS_CPIC] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Global: - - Name: T2 - Section: .text - -# pic.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64, EF_MIPS_PIC] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Global: - - Name: T3 - Section: .text - -# both.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64, EF_MIPS_CPIC, EF_MIPS_PIC] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Global: - - Name: T4 - Section: .text -... diff --git a/test/elf/Mips/e-flags-merge-3.test b/test/elf/Mips/e-flags-merge-3.test deleted file mode 100644 index e2d9f6c2e2fc..000000000000 --- a/test/elf/Mips/e-flags-merge-3.test +++ /dev/null @@ -1,134 +0,0 @@ -# Check PIC/CPIC flags merging in case of multiple input objects. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-none.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-cpic.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-pic.o -# RUN: yaml2obj -format=elf -docnum 4 %s > %t-both.o - -# RUN: lld -flavor gnu -target mipsel -e T1 -o %t-abi1.exe \ -# RUN: %t-none.o %t-pic.o 2>&1 | FileCheck -check-prefix=ABI-CALLS-WARN %s -# RUN: llvm-readobj -file-headers %t-abi1.exe \ -# RUN: | FileCheck -check-prefix=ABI-CALLS1 %s - -# RUN: lld -flavor gnu -target mipsel -e T1 -o %t-abi2.exe \ -# RUN: %t-cpic.o %t-none.o 2>&1 | FileCheck -check-prefix=ABI-CALLS-WARN %s -# RUN: llvm-readobj -file-headers %t-abi2.exe \ -# RUN: | FileCheck -check-prefix=ABI-CALLS2 %s - -# RUN: lld -flavor gnu -target mipsel -e T2 -o %t-cpic.exe %t-cpic.o %t-pic.o -# RUN: llvm-readobj -file-headers %t-cpic.exe | FileCheck -check-prefix=CPIC %s - -# RUN: lld -flavor gnu -target mipsel -e T3 -o %t-both.exe %t-pic.o %t-both.o -# RUN: llvm-readobj -file-headers %t-both.exe | FileCheck -check-prefix=BOTH %s - -# ABI-CALLS-WARN: lld warning: linking abicalls and non-abicalls files - -# ABI-CALLS1: Flags [ (0x50001004) -# ABI-CALLS1-NEXT: EF_MIPS_ABI_O32 (0x1000) -# ABI-CALLS1-NEXT: EF_MIPS_ARCH_32 (0x50000000) -# ABI-CALLS1-NEXT: EF_MIPS_CPIC (0x4) -# ABI-CALLS1-NEXT: ] - -# ABI-CALLS2: Flags [ (0x50001004) -# ABI-CALLS2-NEXT: EF_MIPS_ABI_O32 (0x1000) -# ABI-CALLS2-NEXT: EF_MIPS_ARCH_32 (0x50000000) -# ABI-CALLS2-NEXT: EF_MIPS_CPIC (0x4) -# ABI-CALLS2-NEXT: ] - -# CPIC: Flags [ (0x50001004) -# CPIC-NEXT: EF_MIPS_ABI_O32 (0x1000) -# CPIC-NEXT: EF_MIPS_ARCH_32 (0x50000000) -# CPIC-NEXT: EF_MIPS_CPIC (0x4) -# CPIC-NEXT: ] - -# BOTH: Flags [ (0x50001006) -# BOTH-NEXT: EF_MIPS_ABI_O32 (0x1000) -# BOTH-NEXT: EF_MIPS_ARCH_32 (0x50000000) -# BOTH-NEXT: EF_MIPS_CPIC (0x4) -# BOTH-NEXT: EF_MIPS_PIC (0x2) -# BOTH-NEXT: ] - -# none.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T1 - Section: .text - -# cpic.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, EF_MIPS_CPIC] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T2 - Section: .text - -# pic.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, EF_MIPS_PIC] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T3 - Section: .text - -# both.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, EF_MIPS_CPIC, EF_MIPS_PIC] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T4 - Section: .text -... diff --git a/test/elf/Mips/e-flags-merge-4-64.test b/test/elf/Mips/e-flags-merge-4-64.test deleted file mode 100644 index 9ffa61343711..000000000000 --- a/test/elf/Mips/e-flags-merge-4-64.test +++ /dev/null @@ -1,64 +0,0 @@ -# Check ELF flags merging. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-none.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-noreorder.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-micro.o - -# RUN: lld -flavor gnu -target mips64el -shared -o %t.so \ -# RUN: %t-none.o %t-noreorder.o %t-micro.o -# RUN: llvm-readobj -file-headers %t.so | FileCheck %s - -# CHECK: Flags [ (0x82000001) -# CHECK-NEXT: EF_MIPS_ARCH_64R2 (0x80000000) -# CHECK-NEXT: EF_MIPS_MICROMIPS (0x2000000) -# CHECK-NEXT: EF_MIPS_NOREORDER (0x1) -# CHECK-NEXT: ] - -# none.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_5] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -# noreorder.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64, EF_MIPS_NOREORDER] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -# micro.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64R2, EF_MIPS_MICROMIPS] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 -... diff --git a/test/elf/Mips/e-flags-merge-4.test b/test/elf/Mips/e-flags-merge-4.test deleted file mode 100644 index 096b04d676e9..000000000000 --- a/test/elf/Mips/e-flags-merge-4.test +++ /dev/null @@ -1,65 +0,0 @@ -# Check ELF flags merging. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-none.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-noreorder.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-micro.o - -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so \ -# RUN: %t-none.o %t-noreorder.o %t-micro.o -# RUN: llvm-readobj -file-headers %t.so | FileCheck %s - -# CHECK: Flags [ (0x52001001) -# CHECK-NEXT: EF_MIPS_ABI_O32 (0x1000) -# CHECK-NEXT: EF_MIPS_ARCH_32 (0x50000000) -# CHECK-NEXT: EF_MIPS_MICROMIPS (0x2000000) -# CHECK-NEXT: EF_MIPS_NOREORDER (0x1) -# CHECK-NEXT: ] - -# none.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# noreorder.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, EF_MIPS_NOREORDER] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# micro.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, EF_MIPS_MICROMIPS] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 -... diff --git a/test/elf/Mips/e-flags-merge-5-64.test b/test/elf/Mips/e-flags-merge-5-64.test deleted file mode 100644 index e629aedbc154..000000000000 --- a/test/elf/Mips/e-flags-merge-5-64.test +++ /dev/null @@ -1,42 +0,0 @@ -# Check that LLD does not allow to mix 32 and 64-bit MIPS object files. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-32.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-64.o - -# RUN: not lld -flavor gnu -target mips64el -shared -o %t.so \ -# RUN: %t-32.o %t-64.o 2>&1 | FileCheck %s - -# CHECK: Bitness is incompatible with that of the selected target - -# 32.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# 64.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 -... diff --git a/test/elf/Mips/e-flags-merge-5.test b/test/elf/Mips/e-flags-merge-5.test deleted file mode 100644 index 3b5b397ab780..000000000000 --- a/test/elf/Mips/e-flags-merge-5.test +++ /dev/null @@ -1,42 +0,0 @@ -# Check that LLD does not allow to mix 32 and 64-bit MIPS object files. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-32.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-64.o - -# RUN: not lld -flavor gnu -target mipsel -shared -o %t.so \ -# RUN: %t-32.o %t-64.o 2>&1 | FileCheck %s - -# CHECK: Bitness is incompatible with that of the selected target - -# 32.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# 64.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 -... diff --git a/test/elf/Mips/e-flags-merge-6-64.test b/test/elf/Mips/e-flags-merge-6-64.test deleted file mode 100644 index fbc32b7135b2..000000000000 --- a/test/elf/Mips/e-flags-merge-6-64.test +++ /dev/null @@ -1,79 +0,0 @@ -# Check selecting ELF header ARCH flag. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-m3.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-m5.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-m64.o -# RUN: yaml2obj -format=elf -docnum 4 %s > %t-m64r2.o - -# RUN: lld -flavor gnu -target mips64el -shared -o %t.so \ -# RUN: %t-m64.o %t-m5.o %t-m64r2.o %t-m3.o -# RUN: llvm-readobj -file-headers %t.so | FileCheck %s - -# CHECK: Flags [ (0x80000000) -# CHECK-NEXT: EF_MIPS_ARCH_64R2 (0x80000000) -# CHECK-NEXT: ] - -# m3.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_3] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -# m5.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_5] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -# m64.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -# m64r2.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64R2] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 -... diff --git a/test/elf/Mips/e-flags-merge-6.test b/test/elf/Mips/e-flags-merge-6.test deleted file mode 100644 index 759c8b63c97d..000000000000 --- a/test/elf/Mips/e-flags-merge-6.test +++ /dev/null @@ -1,80 +0,0 @@ -# Check selecting ELF header ARCH flag. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-m1.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-m2.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-m32.o -# RUN: yaml2obj -format=elf -docnum 4 %s > %t-m32r2.o - -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so \ -# RUN: %t-m32.o %t-m2.o %t-m32r2.o %t-m1.o -# RUN: llvm-readobj -file-headers %t.so | FileCheck %s - -# CHECK: Flags [ (0x70001000) -# CHECK-NEXT: EF_MIPS_ABI_O32 (0x1000) -# CHECK-NEXT: EF_MIPS_ARCH_32R2 (0x70000000) -# CHECK-NEXT: ] - -# m1.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_1] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# m2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_2] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# m32.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# m32r2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 -... diff --git a/test/elf/Mips/e-flags-merge-7-64.test b/test/elf/Mips/e-flags-merge-7-64.test deleted file mode 100644 index 07ed6bb54836..000000000000 --- a/test/elf/Mips/e-flags-merge-7-64.test +++ /dev/null @@ -1,42 +0,0 @@ -# Check that LLD does not allow to mix nan2008 and legacy MIPS object files. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-2008.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-legacy.o - -# RUN: not lld -flavor gnu -target mips64el -shared -o %t.so \ -# RUN: %t-2008.o %t-legacy.o 2>&1 | FileCheck %s - -# CHECK: Linking -mnan=2008 and -mnan=legacy modules - -# 2008.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64, EF_MIPS_NAN2008] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -# legacy.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 -... diff --git a/test/elf/Mips/e-flags-merge-7.test b/test/elf/Mips/e-flags-merge-7.test deleted file mode 100644 index 7e114ff968fe..000000000000 --- a/test/elf/Mips/e-flags-merge-7.test +++ /dev/null @@ -1,42 +0,0 @@ -# Check that LLD does not allow to mix nan2008 and legacy MIPS object files. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-2008.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-legacy.o - -# RUN: not lld -flavor gnu -target mipsel -shared -o %t.so \ -# RUN: %t-2008.o %t-legacy.o 2>&1 | FileCheck %s - -# CHECK: Linking -mnan=2008 and -mnan=legacy modules - -# 2008.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, EF_MIPS_NAN2008] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# legacy.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 -... diff --git a/test/elf/Mips/e-flags-merge-8.test b/test/elf/Mips/e-flags-merge-8.test deleted file mode 100644 index 57af77d70260..000000000000 --- a/test/elf/Mips/e-flags-merge-8.test +++ /dev/null @@ -1,65 +0,0 @@ -# Check that LLD links files with mips32 and mips64 instructions -# if all these files satisfy O32 ABI. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-32.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-64.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-64r2.o - -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-32.o %t-64.o %t-64r2.o -# RUN: llvm-readobj -file-headers %t.so | FileCheck %s - -# CHECK: Flags [ (0x80001100) -# CHECK-NEXT: EF_MIPS_32BITMODE (0x100) -# CHECK-NEXT: EF_MIPS_ABI_O32 (0x1000) -# CHECK-NEXT: EF_MIPS_ARCH_64R2 (0x80000000) -# CHECK-NEXT: ] - - -# 32.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# 64.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_64, EF_MIPS_32BITMODE] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# 64r2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_64R2, EF_MIPS_32BITMODE] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 -... diff --git a/test/elf/Mips/e-flags-merge-9.test b/test/elf/Mips/e-flags-merge-9.test deleted file mode 100644 index dea32f07cb9e..000000000000 --- a/test/elf/Mips/e-flags-merge-9.test +++ /dev/null @@ -1,43 +0,0 @@ -# Check that LLD shows an error and does not link files with mips32r2 -# and mips64 instructions sets. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-32r2.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-64.o - -# RUN: not lld -flavor gnu -target mipsel -shared -o %t.so \ -# RUN: %t-32r2.o %t-64.o 2>&1 | FileCheck %s - -# CHECK: Linking modules with incompatible ISA - -# 32r2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -# 64.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_64, EF_MIPS_32BITMODE] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 -... diff --git a/test/elf/Mips/entry-name.test b/test/elf/Mips/entry-name.test deleted file mode 100644 index b10adc68bde8..000000000000 --- a/test/elf/Mips/entry-name.test +++ /dev/null @@ -1,26 +0,0 @@ -# Check name of executable entry symbol. -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel --noinhibit-exec -o %t.exe %t.o -# RUN: llvm-nm %t.exe | FileCheck %s - -# CHECK: U __start -# CHECK: 00400108 T main - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: main - Section: .text diff --git a/test/elf/Mips/exe-dynamic.test b/test/elf/Mips/exe-dynamic.test deleted file mode 100644 index 28d2b13fbce8..000000000000 --- a/test/elf/Mips/exe-dynamic.test +++ /dev/null @@ -1,108 +0,0 @@ -# Check MIPS specific tags in the dynamic table in case executable linking. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dynamic-table %t.exe | FileCheck %s - -# CHECK: Format: ELF32-mips -# CHECK: Arch: mipsel -# CHECK: AddressSize: 32bit -# CHECK: LoadName: -# CHECK: DynamicSection [ (18 entries) -# CHECK: Tag Type Name/Value -# CHECK-NEXT: 0x00000004 HASH 0x400104 -# CHECK-NEXT: 0x00000005 STRTAB 0x400138 -# CHECK-NEXT: 0x00000006 SYMTAB 0x400118 -# CHECK-NEXT: 0x0000000A STRSZ 28 (bytes) -# CHECK-NEXT: 0x0000000B SYMENT 16 (bytes) -# CHECK-NEXT: 0x00000002 PLTRELSZ 8 (bytes) -# CHECK-NEXT: 0x70000032 MIPS_PLTGOT 0x402000 -# CHECK-NEXT: 0x00000014 PLTREL REL -# CHECK-NEXT: 0x00000017 JMPREL 0x400154 -# CHECK-NEXT: 0x70000001 MIPS_RLD_VERSION 1 -# CHECK-NEXT: 0x70000005 MIPS_FLAGS NOTPOT -# CHECK-NEXT: 0x70000006 MIPS_BASE_ADDRESS 0x400000 -# CHECK-NEXT: 0x7000000A MIPS_LOCAL_GOTNO 2 -# CHECK-NEXT: 0x70000011 MIPS_SYMTABNO 2 -# CHECK-NEXT: 0x70000013 MIPS_GOTSYM 0x2 -# CHECK-NEXT: 0x00000003 PLTGOT 0x401000 -# CHECK-NEXT: 0x00000001 NEEDED SharedLibrary (exe-dynamic.test.tmp.so) -# CHECK-NEXT: 0x00000000 NULL 0x0 -# CHECK-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Content: 0000000C000000000000000C000000000000000C00000000 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_26 - Addend: 0 - - Offset: 0x08 - Symbol: .text - Type: R_MIPS_26 - Addend: 0 - - Offset: 0x10 - Symbol: glob - Type: R_MIPS_26 - Addend: 0 - -Symbols: - Local: - - Name: loc - Section: .text - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - Value: 0x08 - - Name: T1 -... diff --git a/test/elf/Mips/exe-dynsym-micro.test b/test/elf/Mips/exe-dynsym-micro.test deleted file mode 100644 index e3b00277ef6a..000000000000 --- a/test/elf/Mips/exe-dynsym-micro.test +++ /dev/null @@ -1,94 +0,0 @@ -# Check that symbol referenced by an entry in the global part of GOT -# has a corresponded entry in the .dynsym section. This test covers -# the case when the GOT entry created because of the R_MICROMIPS_GOT16 -# relocation. - -# Build executable -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe %t.o -# RUN: llvm-readobj -dyn-symbols %t.exe | FileCheck -check-prefix=CHECK-DYN %s - -# Build executabl (yaml format)e -# RUN: lld -flavor gnu -target mipsel -e glob \ -# RUN: --output-filetype=yaml -o %t.yaml %t.o -# RUN: FileCheck -check-prefix=CHECK-GOT %s < %t.yaml - -# CHECK-DYN: Format: ELF32-mips -# CHECK-DYN: Arch: mipsel -# CHECK-DYN: AddressSize: 32bit -# CHECK-DYN: LoadName: -# CHECK-DYN: DynamicSymbols [ -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: @ (0) -# CHECK-DYN: Value: 0x0 -# CHECK-DYN: Size: 0 -# CHECK-DYN: Binding: Local (0x0) -# CHECK-DYN: Type: None (0x0) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: Undefined (0x0) -# CHECK-DYN: } -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: weakf@ (1) -# CHECK-DYN: Value: 0x0 -# CHECK-DYN: Size: 0 -# CHECK-DYN: Binding: Weak (0x2) -# CHECK-DYN: Type: None (0x0) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: Undefined (0x0) -# CHECK-DYN: } -# CHECK-DYN: ] - -# CHECK-GOT: - type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: - type: got -# CHECK-GOT: content: [ 00, 00, 00, 80 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: - ref-name: L000 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_GLOBAL_GOT -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: weakf - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x04 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: weakf - Type: R_MICROMIPS_GOT16 - -Symbols: - Global: - - Name: glob - Section: .text - Other: [ STO_MIPS_MICROMIPS ] - Weak: - - Name: weakf diff --git a/test/elf/Mips/exe-dynsym.test b/test/elf/Mips/exe-dynsym.test deleted file mode 100644 index a59916c4be4c..000000000000 --- a/test/elf/Mips/exe-dynsym.test +++ /dev/null @@ -1,91 +0,0 @@ -# Check that symbol referenced by an entry in the global part of GOT -# has a corresponded entry in the .dynsym section. - -# Build executable -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe %t.o -# RUN: llvm-readobj -dyn-symbols %t.exe | FileCheck -check-prefix=CHECK-DYN %s - -# Build executabl (yaml format)e -# RUN: lld -flavor gnu -target mipsel -e glob \ -# RUN: --output-filetype=yaml -o %t.yaml %t.o -# RUN: FileCheck -check-prefix=CHECK-GOT %s < %t.yaml - -# CHECK-DYN: Format: ELF32-mips -# CHECK-DYN: Arch: mipsel -# CHECK-DYN: AddressSize: 32bit -# CHECK-DYN: LoadName: -# CHECK-DYN: DynamicSymbols [ -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: @ (0) -# CHECK-DYN: Value: 0x0 -# CHECK-DYN: Size: 0 -# CHECK-DYN: Binding: Local (0x0) -# CHECK-DYN: Type: None (0x0) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: Undefined (0x0) -# CHECK-DYN: } -# CHECK-DYN: Symbol { -# CHECK-DYN: Name: weakf@ (1) -# CHECK-DYN: Value: 0x0 -# CHECK-DYN: Size: 0 -# CHECK-DYN: Binding: Weak (0x2) -# CHECK-DYN: Type: None (0x0) -# CHECK-DYN: Other: 0 -# CHECK-DYN: Section: Undefined (0x0) -# CHECK-DYN: } -# CHECK-DYN: ] - -# CHECK-GOT: - type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: - type: got -# CHECK-GOT: content: [ 00, 00, 00, 80 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: - ref-name: L000 -# CHECK-GOT: type: got -# CHECK-GOT: content: [ 00, 00, 00, 00 ] -# CHECK-GOT: alignment: 2^2 -# CHECK-GOT: section-choice: custom-required -# CHECK-GOT: section-name: .got -# CHECK-GOT: permissions: rw- -# CHECK-GOT: references: -# CHECK-GOT: - kind: LLD_R_MIPS_GLOBAL_GOT -# CHECK-GOT: offset: 0 -# CHECK-GOT: target: weakf - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x04 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: weakf - Type: R_MIPS_GOT16 - -Symbols: - Global: - - Name: glob - Section: .text - Weak: - - Name: weakf diff --git a/test/elf/Mips/exe-fileheader-64.test b/test/elf/Mips/exe-fileheader-64.test deleted file mode 100644 index 63baff53e678..000000000000 --- a/test/elf/Mips/exe-fileheader-64.test +++ /dev/null @@ -1,66 +0,0 @@ -# Check ELF Header for 64-bit executable file. - -# Build executable -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target mips64el -e glob -o %t.exe %t-o.o -# RUN: llvm-readobj -file-headers %t.exe | FileCheck %s - -# CHECK: Format: ELF64-mips -# CHECK: Arch: mips64el -# CHECK: AddressSize: 64bit -# CHECK: LoadName: -# CHECK: ElfHeader { -# CHECK: Ident { -# CHECK: Magic: (7F 45 4C 46) -# CHECK: Class: 64-bit (0x2) -# CHECK: DataEncoding: LittleEndian (0x1) -# CHECK: FileVersion: 1 -# CHECK: OS/ABI: SystemV (0x0) -# CHECK: ABIVersion: 0 -# CHECK: Unused: (00 00 00 00 00 00 00) -# CHECK: } -# CHECK: Type: Executable (0x2) -# CHECK: Machine: EM_MIPS (0x8) -# CHECK: Version: 1 -# CHECK: Entry: 0x1200001A0 -# CHECK: ProgramHeaderOffset: 0x40 -# CHECK: SectionHeaderOffset: 0x1300 -# CHECK: Flags [ (0x60000007) -# CHECK: EF_MIPS_ARCH_64 (0x60000000) -# CHECK: EF_MIPS_CPIC (0x4) -# CHECK: EF_MIPS_NOREORDER (0x1) -# CHECK: EF_MIPS_PIC (0x2) -# CHECK: ] -# CHECK: HeaderSize: 64 -# CHECK: ProgramHeaderEntrySize: 56 -# CHECK: ProgramHeaderCount: 5 -# CHECK: SectionHeaderEntrySize: 64 -# CHECK: SectionHeaderCount: 11 -# CHECK: StringTableSectionIndex: 8 -# CHECK: } - -# o.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ARCH_64 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text -... diff --git a/test/elf/Mips/exe-fileheader-micro-64.test b/test/elf/Mips/exe-fileheader-micro-64.test deleted file mode 100644 index 044c2f729f38..000000000000 --- a/test/elf/Mips/exe-fileheader-micro-64.test +++ /dev/null @@ -1,68 +0,0 @@ -# Check ELF Header for 64-bit executable file in case of microMIPS entry symbol. - -# Build executable -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target mips64el -e glob -o %t.exe %t-o.o -# RUN: llvm-readobj -file-headers %t.exe | FileCheck %s - -# CHECK: Format: ELF64-mips -# CHECK: Arch: mips64el -# CHECK: AddressSize: 64bit -# CHECK: LoadName: -# CHECK: ElfHeader { -# CHECK: Ident { -# CHECK: Magic: (7F 45 4C 46) -# CHECK: Class: 64-bit (0x2) -# CHECK: DataEncoding: LittleEndian (0x1) -# CHECK: FileVersion: 1 -# CHECK: OS/ABI: SystemV (0x0) -# CHECK: ABIVersion: 0 -# CHECK: Unused: (00 00 00 00 00 00 00) -# CHECK: } -# CHECK: Type: Executable (0x2) -# CHECK: Machine: EM_MIPS (0x8) -# CHECK: Version: 1 -# CHECK: Entry: 0x1200001A1 -# CHECK: ProgramHeaderOffset: 0x40 -# CHECK: SectionHeaderOffset: 0x1300 -# CHECK: Flags [ (0x82000007) -# CHECK: EF_MIPS_ARCH_64R2 (0x80000000) -# CHECK: EF_MIPS_CPIC (0x4) -# CHECK: EF_MIPS_MICROMIPS (0x2000000) -# CHECK: EF_MIPS_NOREORDER (0x1) -# CHECK: EF_MIPS_PIC (0x2) -# CHECK: ] -# CHECK: HeaderSize: 64 -# CHECK: ProgramHeaderEntrySize: 56 -# CHECK: ProgramHeaderCount: 5 -# CHECK: SectionHeaderEntrySize: 64 -# CHECK: SectionHeaderCount: 11 -# CHECK: StringTableSectionIndex: 8 -# CHECK: } - -# o.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_MICROMIPS, EF_MIPS_ARCH_64R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - Other: [ STO_MIPS_MICROMIPS ] -... diff --git a/test/elf/Mips/exe-fileheader-micro.test b/test/elf/Mips/exe-fileheader-micro.test deleted file mode 100644 index 351f299b04cd..000000000000 --- a/test/elf/Mips/exe-fileheader-micro.test +++ /dev/null @@ -1,69 +0,0 @@ -# Check ELF Header for non-pic executable file in case -# of microMIPS entry symbol. - -# Build executable -# RUN: yaml2obj -format=elf %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe %t-o.o -# RUN: llvm-readobj -file-headers %t.exe | FileCheck %s - -# CHECK: Format: ELF32-mips -# CHECK-NEXT: Arch: mipsel -# CHECK-NEXT: AddressSize: 32bit -# CHECK-NEXT: LoadName: -# CHECK-NEXT: ElfHeader { -# CHECK-NEXT: Ident { -# CHECK-NEXT: Magic: (7F 45 4C 46) -# CHECK-NEXT: Class: 32-bit (0x1) -# CHECK-NEXT: DataEncoding: LittleEndian (0x1) -# CHECK-NEXT: FileVersion: 1 -# CHECK-NEXT: OS/ABI: SystemV (0x0) -# CHECK-NEXT: ABIVersion: 0 -# CHECK-NEXT: Unused: (00 00 00 00 00 00 00) -# CHECK-NEXT: } -# CHECK-NEXT: Type: Executable (0x2) -# CHECK-NEXT: Machine: EM_MIPS (0x8) -# CHECK-NEXT: Version: 1 -# CHECK-NEXT: Entry: 0x400109 -# CHECK-NEXT: ProgramHeaderOffset: 0x34 -# CHECK-NEXT: SectionHeaderOffset: 0x1268 -# CHECK-NEXT: Flags [ (0x72001005) -# CHECK-NEXT: EF_MIPS_ABI_O32 (0x1000) -# CHECK-NEXT: EF_MIPS_ARCH_32R2 (0x70000000) -# CHECK-NEXT: EF_MIPS_CPIC (0x4) -# CHECK-NEXT: EF_MIPS_MICROMIPS (0x2000000) -# CHECK-NEXT: EF_MIPS_NOREORDER (0x1) -# CHECK-NEXT: ] -# CHECK-NEXT: HeaderSize: 52 -# CHECK-NEXT: ProgramHeaderEntrySize: 32 -# CHECK-NEXT: ProgramHeaderCount: 5 -# CHECK-NEXT: SectionHeaderEntrySize: 40 -# CHECK-NEXT: SectionHeaderCount: 11 -# CHECK-NEXT: StringTableSectionIndex: 8 -# CHECK-NEXT: } - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - Other: [ STO_MIPS_MICROMIPS ] -... diff --git a/test/elf/Mips/exe-fileheader.test b/test/elf/Mips/exe-fileheader.test deleted file mode 100644 index ff0d38198c31..000000000000 --- a/test/elf/Mips/exe-fileheader.test +++ /dev/null @@ -1,105 +0,0 @@ -# Check ELF Header for non-pic executable file. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -file-headers %t.exe | FileCheck %s - -# CHECK: Format: ELF32-mips -# CHECK: Arch: mipsel -# CHECK: AddressSize: 32bit -# CHECK: LoadName: -# CHECK: ElfHeader { -# CHECK: Ident { -# CHECK: Magic: (7F 45 4C 46) -# CHECK: Class: 32-bit (0x1) -# CHECK: DataEncoding: LittleEndian (0x1) -# CHECK: FileVersion: 1 -# CHECK: OS/ABI: SystemV (0x0) -# CHECK: ABIVersion: 1 -# CHECK: Unused: (00 00 00 00 00 00 00) -# CHECK: } -# CHECK: Type: Executable (0x2) -# CHECK: Machine: EM_MIPS (0x8) -# CHECK: Version: 1 -# CHECK: Entry: 0x400190 -# CHECK: ProgramHeaderOffset: 0x34 -# CHECK: SectionHeaderOffset: 0x2280 -# CHECK: Flags [ (0x70001005) -# CHECK: EF_MIPS_ABI_O32 (0x1000) -# CHECK: EF_MIPS_ARCH_32R2 (0x70000000) -# CHECK: EF_MIPS_CPIC (0x4) -# CHECK: EF_MIPS_NOREORDER (0x1) -# CHECK: ] -# CHECK: HeaderSize: 52 -# CHECK: ProgramHeaderEntrySize: 32 -# CHECK: ProgramHeaderCount: 6 -# CHECK: SectionHeaderEntrySize: 40 -# CHECK: SectionHeaderCount: 14 -# CHECK: StringTableSectionIndex: 11 -# CHECK: } - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_26 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - - Name: T1 -... diff --git a/test/elf/Mips/exe-got-micro.test b/test/elf/Mips/exe-got-micro.test deleted file mode 100644 index d2d1588ab964..000000000000 --- a/test/elf/Mips/exe-got-micro.test +++ /dev/null @@ -1,115 +0,0 @@ -# Check that external symbol defined in the executable file -# and referenced by R_MICROMIPS_CALL16 relocation has a corresponded -# entry in the local GOT section. -# -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e glob \ -# RUN: --output-filetype=yaml -o %t.exe %t-o.o %t.so -# RUN: FileCheck -check-prefix=GOT %s < %t.exe - -# GOT header -# GOT: - type: got -# GOT: content: [ 00, 00, 00, 00 ] -# GOT: alignment: 2^2 -# GOT: section-choice: custom-required -# GOT: section-name: .got -# GOT: permissions: rw- -# GOT: - type: got -# GOT: content: [ 00, 00, 00, 80 ] -# GOT: alignment: 2^2 -# GOT: section-choice: custom-required -# GOT: section-name: .got -# GOT: permissions: rw- -# Local GOT entry for 'glob' symbol -# GOT: - ref-name: L000 -# GOT: type: got -# GOT: content: [ 00, 00, 00, 00 ] -# GOT: alignment: 2^2 -# GOT: section-choice: custom-required -# GOT: section-name: .got -# GOT: permissions: rw- -# GOT: references: -# GOT: - kind: R_MIPS_32 -# GOT: offset: 0 -# GOT: target: glob -# Global GOT entry for 'T1' symbol -# GOT: - ref-name: L001 -# GOT: type: got -# GOT: content: [ 00, 00, 00, 00 ] -# GOT: alignment: 2^2 -# GOT: section-choice: custom-required -# GOT: section-name: .got -# GOT: permissions: rw- -# GOT: references: -# GOT: - kind: LLD_R_MIPS_GLOBAL_GOT -# GOT: offset: 0 -# GOT: target: T1 - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: glob - Type: R_MICROMIPS_CALL16 - - Offset: 0x04 - Symbol: T1 - Type: R_MICROMIPS_CALL16 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 -... diff --git a/test/elf/Mips/exe-got.test b/test/elf/Mips/exe-got.test deleted file mode 100644 index 7254c87530bc..000000000000 --- a/test/elf/Mips/exe-got.test +++ /dev/null @@ -1,116 +0,0 @@ -# Check that external symbol defined in the executable file -# and referenced by R_MIPS_CALL16 relocation has a corresponded -# entry in the local GOT section. -# -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e glob \ -# RUN: --output-filetype=yaml -o %t.exe %t-o.o %t.so -# RUN: FileCheck -check-prefix=GOT %s < %t.exe - -# GOT header -# GOT: - type: got -# GOT: content: [ 00, 00, 00, 00 ] -# GOT: alignment: 2^2 -# GOT: section-choice: custom-required -# GOT: section-name: .got -# GOT: permissions: rw- -# GOT: - type: got -# GOT: content: [ 00, 00, 00, 80 ] -# GOT: alignment: 2^2 -# GOT: section-choice: custom-required -# GOT: section-name: .got -# GOT: permissions: rw- -# Local GOT entry for 'glob' symbol -# GOT: - ref-name: L000 -# GOT: type: got -# GOT: content: [ 00, 00, 00, 00 ] -# GOT: alignment: 2^2 -# GOT: section-choice: custom-required -# GOT: section-name: .got -# GOT: permissions: rw- -# GOT: references: -# GOT: - kind: R_MIPS_32 -# GOT: offset: 0 -# GOT: target: glob -# Global GOT entry for 'T1' symbol -# GOT: - ref-name: L001 -# GOT: type: got -# GOT: content: [ 00, 00, 00, 00 ] -# GOT: alignment: 2^2 -# GOT: section-choice: custom-required -# GOT: section-name: .got -# GOT: permissions: rw- -# GOT: references: -# GOT: - kind: LLD_R_MIPS_GLOBAL_GOT -# GOT: offset: 0 -# GOT: target: T1 - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: glob - Type: R_MIPS_CALL16 - Addend: 0 - - Offset: 0x04 - Symbol: T1 - Type: R_MIPS_CALL16 - Addend: 0 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - - Name: T1 -... diff --git a/test/elf/Mips/got-page-32.test b/test/elf/Mips/got-page-32.test deleted file mode 100644 index 00376da78663..000000000000 --- a/test/elf/Mips/got-page-32.test +++ /dev/null @@ -1,203 +0,0 @@ -# Check handling of R_MIPS_GOT_DISP / PAGE / OFST relocations. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -symbols -dyn-symbols -mips-plt-got %t.exe \ -# RUN: | FileCheck -check-prefix=GOT %s -# RUN: llvm-objdump -s %t.exe | FileCheck -check-prefix=RAW %s - -# GOT: Symbol { -# GOT: Name: T0 (1) -# GOT-NEXT: Value: 0x400154 -# GOT: Symbol { -# GOT: Name: LT1 (4) -# GOT-NEXT: Value: 0x40017C -# GOT: Symbol { -# GOT: Name: LT2 (8) -# GOT-NEXT: Value: 0x400180 -# GOT: Symbol { -# GOT: Name: T1@ (1) -# GOT-NEXT: Value: 0x0 -# GOT: Symbol { -# GOT: Name: T2@ (4) -# GOT-NEXT: Value: 0x0 - -# GOT: Primary GOT { -# GOT-NEXT: Canonical gp value: 0x408FF0 -# GOT-NEXT: Reserved entries [ -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x401000 -# GOT-NEXT: Access: -32752 -# GOT-NEXT: Initial: 0x0 -# GOT-NEXT: Purpose: Lazy resolver -# GOT-NEXT: } -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x401004 -# GOT-NEXT: Access: -32748 -# GOT-NEXT: Initial: 0x80000000 -# GOT-NEXT: Purpose: Module pointer (GNU extension) -# GOT-NEXT: } -# GOT-NEXT: ] -# GOT-NEXT: Local entries [ -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x401008 -# GOT-NEXT: Access: -32744 -# GOT-NEXT: Initial: 0x40017C -# GOT-NEXT: } -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40100C -# GOT-NEXT: Access: -32740 -# GOT-NEXT: Initial: 0x400000 -# GOT-NEXT: } -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x401010 -# GOT-NEXT: Access: -32736 -# GOT-NEXT: Initial: 0x400000 -# GOT-NEXT: } -# GOT-NEXT: ] -# GOT-NEXT: Global entries [ -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x401014 -# GOT-NEXT: Access: -32732 -# GOT-NEXT: Initial: 0x0 -# GOT-NEXT: Value: 0x0 -# GOT-NEXT: Type: Function (0x2) -# GOT-NEXT: Section: Undefined (0x0) -# GOT-NEXT: Name: T1@ (1) -# GOT-NEXT: } -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x401018 -# GOT-NEXT: Access: -32728 -# GOT-NEXT: Initial: 0x0 -# GOT-NEXT: Value: 0x0 -# GOT-NEXT: Type: Function (0x2) -# GOT-NEXT: Section: Undefined (0x0) -# GOT-NEXT: Name: T2@ (4) -# GOT-NEXT: } -# GOT-NEXT: ] -# GOT-NEXT: Number of TLS and multi-GOT entries: 0 -# GOT-NEXT: } - -# RAW: Contents of section .text: -# RAW-NEXT: 400154 24800000 18800000 24800000 28800000 $.......$...(... -# ^ = -32732 (T1) -# ^ = -32744 (LT1) -# ^ -32732 (T1) -# ^ -32728 (T2) -# RAW-NEXT: 400164 1c800000 20800000 00000000 00000000 .... ........... -# ^ -32740 (PAGE) -# ^ -32736 (PAGE) -# ^ T1 OFST -# ^ T2 OFST -# RAW-NEXT: 400174 7c010000 80010000 00000000 00000000 |............... -# ^ LT1 OFST -# ^ LT2 OFST - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_32, EF_MIPS_ABI_O32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 8 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 0x4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 0x4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_32, EF_MIPS_ABI_O32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x4 - Size: 0x30 - - - Name: .rel.text - Type: SHT_RELA - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x0 - Symbol: T1 - Type: R_MIPS_GOT_DISP - - Offset: 0x4 - Symbol: LT1 - Type: R_MIPS_GOT_DISP - - Offset: 0x8 - Symbol: T1 - Type: R_MIPS_GOT_PAGE - - Offset: 0xC - Symbol: T2 - Type: R_MIPS_GOT_PAGE - - Offset: 0x10 - Symbol: LT1 - Type: R_MIPS_GOT_PAGE - - Offset: 0x14 - Symbol: LT2 - Type: R_MIPS_GOT_PAGE - - Offset: 0x18 - Symbol: T1 - Type: R_MIPS_GOT_OFST - - Offset: 0x1C - Symbol: T2 - Type: R_MIPS_GOT_OFST - - Offset: 0x20 - Symbol: LT1 - Type: R_MIPS_GOT_OFST - - Offset: 0x24 - Symbol: LT2 - Type: R_MIPS_GOT_OFST - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x8 - - Name: LT1 - Type: STT_FUNC - Section: .text - Value: 0x28 - Size: 0x4 - - Name: LT2 - Type: STT_FUNC - Section: .text - Value: 0x2c - Size: 0x4 - - Name: T1 - - Name: T2 -... diff --git a/test/elf/Mips/got-page-64.test b/test/elf/Mips/got-page-64.test deleted file mode 100644 index 21bece5d3242..000000000000 --- a/test/elf/Mips/got-page-64.test +++ /dev/null @@ -1,203 +0,0 @@ -# Check handling of R_MIPS_GOT_DISP / PAGE / OFST relocations. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mips64el -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mips64el -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -symbols -dyn-symbols -mips-plt-got %t.exe \ -# RUN: | FileCheck -check-prefix=GOT %s -# RUN: llvm-objdump -s %t.exe | FileCheck -check-prefix=RAW %s - -# GOT: Symbol { -# GOT: Name: T0 (1) -# GOT-NEXT: Value: 0x1200001F0 -# GOT: Symbol { -# GOT: Name: LT1 (4) -# GOT-NEXT: Value: 0x120000218 -# GOT: Symbol { -# GOT: Name: LT2 (8) -# GOT-NEXT: Value: 0x12000021C -# GOT: Symbol { -# GOT: Name: T1@ (1) -# GOT-NEXT: Value: 0x0 -# GOT: Symbol { -# GOT: Name: T2@ (4) -# GOT-NEXT: Value: 0x0 - -# GOT: Primary GOT { -# GOT-NEXT: Canonical gp value: 0x120008FF0 -# GOT-NEXT: Reserved entries [ -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x120001000 -# GOT-NEXT: Access: -32752 -# GOT-NEXT: Initial: 0x0 -# GOT-NEXT: Purpose: Lazy resolver -# GOT-NEXT: } -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x120001008 -# GOT-NEXT: Access: -32744 -# GOT-NEXT: Initial: 0x8000000000000000 -# GOT-NEXT: Purpose: Module pointer (GNU extension) -# GOT-NEXT: } -# GOT-NEXT: ] -# GOT-NEXT: Local entries [ -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x120001010 -# GOT-NEXT: Access: -32736 -# GOT-NEXT: Initial: 0x120000218 -# GOT-NEXT: } -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x120001018 -# GOT-NEXT: Access: -32728 -# GOT-NEXT: Initial: 0x120000000 -# GOT-NEXT: } -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x120001020 -# GOT-NEXT: Access: -32720 -# GOT-NEXT: Initial: 0x120000000 -# GOT-NEXT: } -# GOT-NEXT: ] -# GOT-NEXT: Global entries [ -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x120001028 -# GOT-NEXT: Access: -32712 -# GOT-NEXT: Initial: 0x0 -# GOT-NEXT: Value: 0x0 -# GOT-NEXT: Type: Function (0x2) -# GOT-NEXT: Section: Undefined (0x0) -# GOT-NEXT: Name: T1@ (1) -# GOT-NEXT: } -# GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x120001030 -# GOT-NEXT: Access: -32704 -# GOT-NEXT: Initial: 0x0 -# GOT-NEXT: Value: 0x0 -# GOT-NEXT: Type: Function (0x2) -# GOT-NEXT: Section: Undefined (0x0) -# GOT-NEXT: Name: T2@ (4) -# GOT-NEXT: } -# GOT-NEXT: ] -# GOT-NEXT: Number of TLS and multi-GOT entries: 0 -# GOT-NEXT: } - -# RAW: Contents of section .text: -# RAW-NEXT: 1200001f0 38800000 20800000 38800000 40800000 8... ...8...@... -# ^ = -32712 (T1) -# ^ = -32736 (LT1) -# ^ -32712 (T1) -# ^ -32704 (T2) -# RAW-NEXT: 120000200 28800000 30800000 00000000 00000000 (...0........... -# ^ -32728 (PAGE) -# ^ -32720 (PAGE) -# ^ T1 OFST -# ^ T2 OFST -# RAW-NEXT: 120000210 18020000 1c020000 00000000 00000000 ................ -# ^ LT1 OFST -# ^ LT2 OFST - -# so.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 8 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 0x4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 0x4 - -# o.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x4 - Size: 0x30 - - - Name: .rel.text - Type: SHT_RELA - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x0 - Symbol: T1 - Type: R_MIPS_GOT_DISP - - Offset: 0x4 - Symbol: LT1 - Type: R_MIPS_GOT_DISP - - Offset: 0x8 - Symbol: T1 - Type: R_MIPS_GOT_PAGE - - Offset: 0xC - Symbol: T2 - Type: R_MIPS_GOT_PAGE - - Offset: 0x10 - Symbol: LT1 - Type: R_MIPS_GOT_PAGE - - Offset: 0x14 - Symbol: LT2 - Type: R_MIPS_GOT_PAGE - - Offset: 0x18 - Symbol: T1 - Type: R_MIPS_GOT_OFST - - Offset: 0x1C - Symbol: T2 - Type: R_MIPS_GOT_OFST - - Offset: 0x20 - Symbol: LT1 - Type: R_MIPS_GOT_OFST - - Offset: 0x24 - Symbol: LT2 - Type: R_MIPS_GOT_OFST - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x8 - - Name: LT1 - Type: STT_FUNC - Section: .text - Value: 0x28 - Size: 0x4 - - Name: LT2 - Type: STT_FUNC - Section: .text - Value: 0x2c - Size: 0x4 - - Name: T1 - - Name: T2 -... diff --git a/test/elf/Mips/got16-2.test b/test/elf/Mips/got16-2.test deleted file mode 100644 index 6f576536c541..000000000000 --- a/test/elf/Mips/got16-2.test +++ /dev/null @@ -1,73 +0,0 @@ -# Check handling of R_MIPS_GOT16 relocation against local -# symbols when addresses of local data cross 64 KBytes border. - -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t-exe %t-obj -# RUN: llvm-objdump -s %t-exe | FileCheck %s - -# CHECK: Contents of section .got: -# CHECK-NEXT: 40a000 00000000 00000080 00004000 00004100 ..........@...A. -# lazy module 0x400000 0x410000 -# resolver pointer for L1 for L2 - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Content: '00000000000000000000000000000000' - - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Address: 0x1000 - Relocations: - - Offset: 0 - Symbol: L1 - Type: R_MIPS_GOT16 - - Offset: 4 - Symbol: L1 - Type: R_MIPS_LO16 - - Offset: 8 - Symbol: L2 - Type: R_MIPS_GOT16 - - Offset: 12 - Symbol: L2 - Type: R_MIPS_LO16 - - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x9000 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: L1 - Type: STT_OBJECT - Section: .data - Value: 0x00 - Size: 0x8000 - - Name: L2 - Type: STT_OBJECT - Section: .data - Value: 0x8000 - Size: 0x04 - - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x04 diff --git a/test/elf/Mips/got16-micro.test b/test/elf/Mips/got16-micro.test deleted file mode 100644 index 6b77613581ec..000000000000 --- a/test/elf/Mips/got16-micro.test +++ /dev/null @@ -1,165 +0,0 @@ -# REQUIRES: mips - -# Check handling of global/local R_MICROMIPS_GOT16 relocations. -# RUN: llvm-mc -triple=mipsel -mattr=micromips -relocation-model=pic \ -# RUN: -filetype=obj -o=%t.o %s -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec \ -# RUN: --output-filetype=yaml %t.o \ -# RUN: | FileCheck -check-prefix YAML %s -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec -o %t2 %t.o -# RUN: llvm-objdump -t -disassemble -mattr=micromips %t2 \ -# RUN: | FileCheck -check-prefix RAW %s - -# Function glob -# YAML: - name: main -# YAML: scope: global -# YAML: content: [ 5C, FC, 00, 00, 42, 30, 00, 00, 5C, FC, 00, 00, -# YAML: 42, 30, 00, 00, 5C, FC, 00, 00, 5C, FC, 00, 00, -# YAML: 5C, FC, 00, 00 ] -# YAML: alignment: 4 mod 2^4 -# YAML: code-model: mips-micro -# YAML: references: -# YAML-NEXT: - kind: R_MICROMIPS_GOT16 -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: L000 -# YAML-NEXT: - kind: R_MICROMIPS_LO16 -# YAML-NEXT: offset: 4 -# YAML-NEXT: target: data_1 -# YAML-NEXT: - kind: R_MICROMIPS_GOT16 -# YAML-NEXT: offset: 8 -# YAML-NEXT: target: L001 -# YAML-NEXT: - kind: R_MICROMIPS_LO16 -# YAML-NEXT: offset: 12 -# YAML-NEXT: target: data_2 -# YAML-NEXT: - kind: R_MICROMIPS_GOT16 -# YAML-NEXT: offset: 16 -# YAML-NEXT: target: L002 -# YAML-NEXT: - kind: R_MICROMIPS_CALL16 -# YAML-NEXT: offset: 20 -# YAML-NEXT: target: L003 -# YAML-NEXT: - kind: R_MICROMIPS_CALL16 -# YAML-NEXT: offset: 24 -# YAML-NEXT: target: L004 - -# Local GOT entries: -# YAML: - ref-name: L000 -# YAML-NEXT: type: got -# YAML-NEXT: content: [ 00, 00, 00, 00 ] -# YAML-NEXT: alignment: 2^2 -# YAML-NEXT: section-choice: custom-required -# YAML-NEXT: section-name: .got -# YAML-NEXT: permissions: rw- -# YAML-NEXT: references: -# YAML-NEXT: - kind: LLD_R_MIPS_32_HI16 -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: data_1 -# YAML-NEXT: - ref-name: L001 -# YAML-NEXT: type: got -# YAML-NEXT: content: [ 00, 00, 00, 00 ] -# YAML-NEXT: alignment: 2^2 -# YAML-NEXT: section-choice: custom-required -# YAML-NEXT: section-name: .got -# YAML-NEXT: permissions: rw- -# YAML-NEXT: references: -# YAML-NEXT: - kind: LLD_R_MIPS_32_HI16 -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: data_2 -# YAML-NEXT: - ref-name: L002 -# YAML-NEXT: type: got -# YAML-NEXT: content: [ 00, 00, 00, 00 ] -# YAML-NEXT: alignment: 2^2 -# YAML-NEXT: section-choice: custom-required -# YAML-NEXT: section-name: .got -# YAML-NEXT: permissions: rw- -# YAML-NEXT: references: -# YAML-NEXT: - kind: R_MIPS_32 -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: data_h - -# Global GOT entries: -# YAML-NEXT: - ref-name: L003 -# YAML-NEXT: type: got -# YAML-NEXT: content: [ 00, 00, 00, 00 ] -# YAML-NEXT: alignment: 2^2 -# YAML-NEXT: section-choice: custom-required -# YAML-NEXT: section-name: .got -# YAML-NEXT: permissions: rw- -# YAML-NEXT: references: -# YAML-NEXT: - kind: LLD_R_MIPS_GLOBAL_GOT -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: bar -# YAML-NEXT: - kind: R_MIPS_32 -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: bar -# YAML-NEXT: - ref-name: L004 -# YAML-NEXT: type: got -# YAML-NEXT: content: [ 00, 00, 00, 00 ] -# YAML-NEXT: alignment: 2^2 -# YAML-NEXT: section-choice: custom-required -# YAML-NEXT: section-name: .got -# YAML-NEXT: permissions: rw- -# YAML-NEXT: references: -# YAML-NEXT: - kind: LLD_R_MIPS_GLOBAL_GOT -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: foo - -# RAW: Disassembly of section .text: -# RAW: main: -# RAW-NEXT: {{[0x0-9a-f]+}}: 5c fc 18 80 lw $2, -32744($gp) -# RAW-NEXT: {{[0x0-9a-f]+}}: 42 30 40 10 addiu $2, $2, 4160 -# RAW-NEXT: {{[0x0-9a-f]+}}: 5c fc 1c 80 lw $2, -32740($gp) -# RAW-NEXT: {{[0x0-9a-f]+}}: 42 30 60 20 addiu $2, $2, 8288 -# RAW-NEXT: {{[0x0-9a-f]+}}: 5c fc 20 80 lw $2, -32736($gp) -# RAW-NEXT: {{[0x0-9a-f]+}}: 5c fc 24 80 lw $2, -32732($gp) -# RAW-NEXT: {{[0x0-9a-f]+}}: 5c fc 28 80 lw $2, -32728($gp) - -# RAW: SYMBOL TABLE: -# RAW: {{[0x0-9a-f]+}} *UND* 00000000 -# RAW: {{[0x0-9a-f]+}} l .data 00000000 data_1 -# RAW: {{[0x0-9a-f]+}} l .data 00000001 data_2 -# RAW: {{[0x0-9a-f]+}} g F .text 00000004 bar -# RAW: {{[0x0-9a-f]+}} g F .text 0000001c main -# RAW: {{[0x0-9a-f]+}} g .data 00000001 data_h - - .data - .type data_1, @object - .size data_1, 4128 -data_1: - .byte 1 - .space 4127 - .type data_2, @object - .size data_2, 1 -data_2: - .byte 2 - .hidden data_h - .globl data_h - .type data_h, @object - .size data_h, 1 -data_h: - .byte 3 - - .text - .globl bar - .set micromips - .ent bar - .type bar, @function -bar: - nop - .end bar - .size bar, .-bar - - .globl main - .set micromips - .ent main - .type main, @function -main: - lw $2,%got(data_1)($28) - addiu $2,$2,%lo(data_1) - lw $2,%got(data_2)($28) - addiu $2,$2,%lo(data_2) - lw $2,%got(data_h)($28) - lw $2,%call16(bar)($28) - lw $2,%call16(foo)($28) - - .end main - .size main, .-main diff --git a/test/elf/Mips/got16.test b/test/elf/Mips/got16.test deleted file mode 100644 index 9090d3003c14..000000000000 --- a/test/elf/Mips/got16.test +++ /dev/null @@ -1,196 +0,0 @@ -# REQUIRES: mips - -# Check handling of global/local GOT16 relocations. -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec \ -# RUN: --output-filetype=yaml %t.o \ -# RUN: | FileCheck -check-prefix YAML %s -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec -o %t2 %t.o -# RUN: llvm-objdump -t -disassemble %t2 | FileCheck -check-prefix RAW %s - -# Function glob -# YAML: - name: glob -# YAML: scope: global -# YAML: content: [ 00, 00, 84, 8F, 00, 00, 84, 24, 01, 00, 84, 8F, -# YAML: 00, 02, 84, 24, 00, 00, 84, 8F, 00, 00, 84, 8F, -# YAML: 00, 00, 84, 8F ] -# YAML: alignment: 2^2 -# YAML: references: -# YAML: - kind: R_MIPS_GOT16 -# YAML: offset: 0 -# YAML: target: L000 -# YAML: - kind: R_MIPS_LO16 -# YAML: offset: 4 -# YAML: target: L009 -# YAML: - kind: R_MIPS_GOT16 -# YAML: offset: 8 -# YAML: target: L002 -# YAML: addend: 66048 -# YAML: - kind: R_MIPS_LO16 -# YAML: offset: 12 -# YAML: target: L009 -# YAML: addend: 512 -# YAML: - kind: R_MIPS_GOT16 -# YAML: offset: 16 -# YAML: target: L004 -# YAML: - kind: R_MIPS_CALL16 -# YAML: offset: 20 -# YAML: target: L005 -# YAML: - kind: R_MIPS_CALL16 -# YAML: offset: 24 -# YAML: target: L006 - -# Local GOT entries: -# YAML: - ref-name: L000 -# YAML-NEXT: type: got -# YAML-NEXT: content: [ 00, 00, 00, 00 ] -# YAML-NEXT: alignment: 2^2 -# YAML-NEXT: section-choice: custom-required -# YAML-NEXT: section-name: .got -# YAML-NEXT: permissions: rw- -# YAML-NEXT: references: -# YAML-NEXT: - kind: LLD_R_MIPS_32_HI16 -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: L009 -# YAML-NEXT: - ref-name: L002 -# YAML-NEXT: type: got -# YAML-NEXT: content: [ 00, 00, 00, 00 ] -# YAML-NEXT: alignment: 2^2 -# YAML-NEXT: section-choice: custom-required -# YAML-NEXT: section-name: .got -# YAML-NEXT: permissions: rw- -# YAML-NEXT: references: -# YAML-NEXT: - kind: LLD_R_MIPS_32_HI16 -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: L009 -# YAML-NEXT: addend: 66048 -# YAML-NEXT: - ref-name: L004 -# YAML-NEXT: type: got -# YAML-NEXT: content: [ 00, 00, 00, 00 ] -# YAML-NEXT: alignment: 2^2 -# YAML-NEXT: section-choice: custom-required -# YAML-NEXT: section-name: .got -# YAML-NEXT: permissions: rw- -# YAML-NEXT: references: -# YAML-NEXT: - kind: R_MIPS_32 -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: hidden - -# Global GOT entries: -# YAML-NEXT: - ref-name: L005 -# YAML-NEXT: type: got -# YAML-NEXT: content: [ 00, 00, 00, 00 ] -# YAML-NEXT: alignment: 2^2 -# YAML-NEXT: section-choice: custom-required -# YAML-NEXT: section-name: .got -# YAML-NEXT: permissions: rw- -# YAML-NEXT: references: -# YAML-NEXT: - kind: LLD_R_MIPS_GLOBAL_GOT -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: glob -# YAML-NEXT: - kind: R_MIPS_32 -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: glob -# YAML-NEXT: - ref-name: L006 -# YAML-NEXT: type: got -# YAML-NEXT: content: [ 00, 00, 00, 00 ] -# YAML-NEXT: alignment: 2^2 -# YAML-NEXT: section-choice: custom-required -# YAML-NEXT: section-name: .got -# YAML-NEXT: permissions: rw- -# YAML-NEXT: references: -# YAML-NEXT: - kind: LLD_R_MIPS_GLOBAL_GOT -# YAML-NEXT: offset: 0 -# YAML-NEXT: target: extern - -# RAW: Disassembly of section .text: -# RAW: glob: -# RAW-NEXT: {{[0x0-9a-f]+}}: 18 80 84 8f lw $4, -32744($gp) -# RAW-NEXT: {{[0x0-9a-f]+}}: 00 20 84 24 addiu $4, $4, 8192 -# RAW-NEXT: {{[0x0-9a-f]+}}: 1c 80 84 8f lw $4, -32740($gp) -# RAW-NEXT: {{[0x0-9a-f]+}}: 00 22 84 24 addiu $4, $4, 8704 -# RAW-NEXT: {{[0x0-9a-f]+}}: 20 80 84 8f lw $4, -32736($gp) -# RAW-NEXT: {{[0x0-9a-f]+}}: 24 80 84 8f lw $4, -32732($gp) -# RAW-NEXT: {{[0x0-9a-f]+}}: 28 80 84 8f lw $4, -32728($gp) - -# RAW: SYMBOL TABLE: -# RAW: {{[0x0-9a-f]+}} *UND* 00000000 -# RAW: {{[0x0-9a-f]+}} l .data 00000000 str1 -# RAW: {{[0x0-9a-f]+}} l .data 00000005 str2 -# RAW: {{[0x0-9a-f]+}} g F .text 0000001c glob -# RAW: {{[0x0-9a-f]+}} g .data 00000004 hidden - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Content: '0000848F000084240100848F000284240000848F0000848F0000848F' - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: .data - Type: R_MIPS_GOT16 - - Offset: 0x04 - Symbol: .data - Type: R_MIPS_LO16 - - Offset: 0x08 - Symbol: .data - Type: R_MIPS_GOT16 - - Offset: 0x0C - Symbol: .data - Type: R_MIPS_LO16 - - Offset: 0x10 - Symbol: hidden - Type: R_MIPS_GOT16 - - Offset: 0x14 - Symbol: glob - Type: R_MIPS_CALL16 - - Offset: 0x18 - Symbol: extern - Type: R_MIPS_CALL16 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x10209 - -Symbols: - Local: - - Name: str1 - Type: STT_OBJECT - Section: .data - Size: 0x10200 - - Name: str2 - Type: STT_OBJECT - Section: .data - Value: 0x10200 - Size: 0x05 - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - Global: - - Name: glob - Section: .text - - Name: hidden - Type: STT_OBJECT - Section: .data - Value: 0x10205 - Size: 0x04 - Visibility: STV_HIDDEN - - Name: extern diff --git a/test/elf/Mips/gotsym.test b/test/elf/Mips/gotsym.test deleted file mode 100644 index 4581901958aa..000000000000 --- a/test/elf/Mips/gotsym.test +++ /dev/null @@ -1,43 +0,0 @@ -# Check _gp_disp and GOT_OFFSET_TABLE value -# -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec -o %t.so %t.o -# RUN: llvm-objdump -h -t %t.so | FileCheck -check-prefix=SHARED %s - -# SHARED: Sections: -# SHARED: Idx Name Size Address Type -# SHARED: 6 .got 00000008 0000000000001000 DATA -# SHARED: SYMBOL TABLE: -# SHARED: 00001000 g *ABS* 00000000 _GLOBAL_OFFSET_TABLE_ -# SHARED: 00008ff0 g *ABS* 00000000 _gp -# SHARED: 00008ff0 g *ABS* 00000000 _gp_disp - -# RUN: lld -flavor gnu -target mipsel -e main --noinhibit-exec -o %t.exe %t.o -# RUN: llvm-objdump -h -t %t.exe | FileCheck -check-prefix=EXE %s - -# EXE: Sections: -# EXE: Idx Name Size Address Type -# EXE: 7 .got 00000008 0000000000401000 DATA -# EXE: SYMBOL TABLE: -# EXE: 00401000 g *ABS* 00000000 _GLOBAL_OFFSET_TABLE_ -# EXE: 00408ff0 g *ABS* 00000000 _gp -# EXE: 00408ff0 g *ABS* 00000000 _gp_disp - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x04 - -Symbols: - Global: - - Name: main - Section: .text diff --git a/test/elf/Mips/gp-sym-1-micro.test b/test/elf/Mips/gp-sym-1-micro.test deleted file mode 100644 index 76274eaaa8ac..000000000000 --- a/test/elf/Mips/gp-sym-1-micro.test +++ /dev/null @@ -1,88 +0,0 @@ -# Check that microMIPS relocations against __gnu_local_gp -# use "gp" value as target. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -symbols %t.exe | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.exe | FileCheck -check-prefix=SEC %s - -# SYM: Name: _gp (203) -# SYM-NEXT: Value: 0x408FF0 - -# SEC: Contents of section .text: -# SEC-NEXT: 400184 00004100 0000f08f 2000bc00 ..A..... ... -# SEC: Contents of section .got: -# SEC-NEXT: 401000 00000000 00000080 ........ - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 12 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: __gnu_local_gp - Type: R_MICROMIPS_HI16 - - Offset: 0x04 - Symbol: __gnu_local_gp - Type: R_MICROMIPS_LO16 - - Offset: 0x08 - Symbol: T1 - Type: R_MICROMIPS_26_S1 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x08 - Other: [ STO_MIPS_MICROMIPS ] - - Name: __gnu_local_gp - - Name: T1 -... diff --git a/test/elf/Mips/gp-sym-1.test b/test/elf/Mips/gp-sym-1.test deleted file mode 100644 index 6c2ffb62629d..000000000000 --- a/test/elf/Mips/gp-sym-1.test +++ /dev/null @@ -1,86 +0,0 @@ -# Check that relocations against __gnu_local_gp use "gp" value as target. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -symbols %t.exe | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.exe | FileCheck -check-prefix=SEC %s - -# SYM: Name: _gp (203) -# SYM-NEXT: Value: 0x408FF0 - -# SEC: Contents of section .text: -# SEC-NEXT: 400190 41000000 f08f0000 60001000 -# SEC: Contents of section .got: -# SEC-NEXT: 401000 00000000 00000080 - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 12 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: __gnu_local_gp - Type: R_MIPS_HI16 - - Offset: 0x04 - Symbol: __gnu_local_gp - Type: R_MIPS_LO16 - - Offset: 0x08 - Symbol: T1 - Type: R_MIPS_26 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x08 - - Name: __gnu_local_gp - - Name: T1 -... diff --git a/test/elf/Mips/gp-sym-2.test b/test/elf/Mips/gp-sym-2.test deleted file mode 100644 index 6b9e5a5e52d9..000000000000 --- a/test/elf/Mips/gp-sym-2.test +++ /dev/null @@ -1,103 +0,0 @@ -# Check that R_MIPS32 relocation against __gnu_local_gp causes emitting -# of R_MIPS_REL32 relocation in case of shared library file linking -# and does not produce any dynamic relocation in case of linking a non-shared -# executable file. - -# Now the test failed because the __gnu_local_gp symbol becomes defined -# absolute symbol and we do not generate R_MIPS_REL32 in case of shared -# library linking. -# XFAIL: * - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t-1.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t-1.so -# RUN: llvm-readobj -r %t.exe | FileCheck -check-prefix=EXE %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t-2.so %t-o.o %t-1.so -# RUN: llvm-readobj -r %t-2.so | FileCheck -check-prefix=SO %s - -# EXE: Relocations [ -# EXE-NEXT: ] - -# SO: Relocations [ -# SO-NEXT: Section (5) .rel.dyn { -# SO-NEXT: 0x0 R_MIPS_NONE - 0x0 -# SO-NEXT: 0x2EC R_MIPS_REL32 __gnu_local_gp 0x0 -# SO-NEXT: } -# SO-NEXT: ] - -# so.so ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, EF_MIPS_PIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 12 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: __gnu_local_gp - Type: R_MIPS_32 - - Offset: 0x04 - Symbol: T1 - Type: R_MIPS_LO16 - - Offset: 0x08 - Symbol: T2 - Type: R_MIPS_CALL16 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x08 - - Name: __gnu_local_gp - - Name: T1 - - Name: T2 -... diff --git a/test/elf/Mips/hilo16-1.test b/test/elf/Mips/hilo16-1.test deleted file mode 100644 index c2863408c888..000000000000 --- a/test/elf/Mips/hilo16-1.test +++ /dev/null @@ -1,44 +0,0 @@ -# REQUIRES: mips - -# Check handling multiple HI16 relocation followed by a single LO16 relocation. -# -# RUN: llvm-mc -triple=mipsel -filetype=obj -o=%t-obj %s -# RUN: lld -flavor gnu -target mipsel -e glob1 -o %t-exe %t-obj -# RUN: llvm-objdump -t -disassemble %t-exe | FileCheck %s - -# CHECK: Disassembly of section .text: -# CHECK: glob1: -# CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 -# CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 -# CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 -# CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 -# CHECK-NEXT: {{[0-9a-f]+}}: 42 00 08 3c lui $8, 66 -# CHECK-NEXT: {{[0-9a-f]+}}: 3e 00 08 3c lui $8, 62 -# CHECK-NEXT: {{[0-9a-f]+}}: 40 02 08 3c lui $8, 576 -# CHECK-NEXT: {{[0-9a-f]+}}: 40 fe 08 3c lui $8, 65088 -# CHECK-NEXT: {{[0-9a-f]+}}: 55 01 08 85 lh $8, 341($8) - -# CHECK: SYMBOL TABLE: -# CHECK: {{[0-9a-f]+}} g F .text 00000024 glob1 -# CHECK: {{[0-9a-f]+}} g F .text 00000004 glob2 - - .global glob1 - .ent glob1 -glob1: - lui $t0,%hi(glob2+0x1) - lui $t0,%hi(glob2+(-0x1)) - lui $t0,%hi(glob2+0x1ff) - lui $t0,%hi(glob2+(-0x1ff)) - lui $t0,%hi(glob2+0x1ffff) - lui $t0,%hi(glob2+(-0x1ffff)) - lui $t0,%hi(glob2+0x1ffffff) - lui $t0,%hi(glob2+(-0x1ffffff)) - - lh $t0,%lo(glob2+(-0x1ffffff))($t0) - .end glob1 - - .global glob2 - .ent glob2 -glob2: - nop - .end glob2 diff --git a/test/elf/Mips/hilo16-2.test b/test/elf/Mips/hilo16-2.test deleted file mode 100644 index 68cb26eec788..000000000000 --- a/test/elf/Mips/hilo16-2.test +++ /dev/null @@ -1,68 +0,0 @@ -# REQUIRES: mips - -# Check handling of HI16 and LO16 relocations for regular symbol. -# -# R_MIPS_HI16: (AHL + S) - (short)(AHL + S) -# R_MIPS_LO16: AHL + S -# where AHL = (AHI << 16) + ALO -# -# RUN: llvm-mc -triple=mipsel -filetype=obj -o=%t-obj %s -# RUN: lld -flavor gnu -target mipsel -e glob1 -o %t-exe %t-obj -# RUN: llvm-objdump -t -disassemble %t-exe | FileCheck %s - -# CHECK: Disassembly of section .text: -# CHECK: glob1: -# CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 -# CHECK-NEXT: {{[0-9a-f]+}}: 71 01 08 85 lh $8, 369($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 -# CHECK-NEXT: {{[0-9a-f]+}}: 6f 01 08 85 lh $8, 367($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 -# CHECK-NEXT: {{[0-9a-f]+}}: 6f 03 08 85 lh $8, 879($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 -# CHECK-NEXT: {{[0-9a-f]+}}: 71 ff 08 85 lh $8, -143($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 42 00 08 3c lui $8, 66 -# CHECK-NEXT: {{[0-9a-f]+}}: 6f 01 08 85 lh $8, 367($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 3e 00 08 3c lui $8, 62 -# CHECK-NEXT: {{[0-9a-f]+}}: 71 01 08 85 lh $8, 369($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 40 02 08 3c lui $8, 576 -# CHECK-NEXT: {{[0-9a-f]+}}: 6f 01 08 85 lh $8, 367($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 40 fe 08 3c lui $8, 65088 -# CHECK-NEXT: {{[0-9a-f]+}}: 71 01 08 85 lh $8, 369($8) - -# CHECK: SYMBOL TABLE: -# CHECK: {{[0-9a-f]+}} g F .text 00000040 glob1 -# CHECK: {{[0-9a-f]+}} g F .text 00000004 glob2 - - .global glob1 - .ent glob1 -glob1: - lui $t0,%hi(glob2+0x1) - lh $t0,%lo(glob2+0x1)($t0) - - lui $t0,%hi(glob2+(-0x1)) - lh $t0,%lo(glob2+(-0x1))($t0) - - lui $t0,%hi(glob2+0x1ff) - lh $t0,%lo(glob2+0x1ff)($t0) - - lui $t0,%hi(glob2+(-0x1ff)) - lh $t0,%lo(glob2+(-0x1ff))($t0) - - lui $t0,%hi(glob2+0x1ffff) - lh $t0,%lo(glob2+0x1ffff)($t0) - - lui $t0,%hi(glob2+(-0x1ffff)) - lh $t0,%lo(glob2+(-0x1ffff))($t0) - - lui $t0,%hi(glob2+0x1ffffff) # truncate - lh $t0,%lo(glob2+0x1ffffff)($t0) - - lui $t0,%hi(glob2+(-0x1ffffff)) # truncate - lh $t0,%lo(glob2+(-0x1ffffff))($t0) - .end glob1 - - .global glob2 - .ent glob2 -glob2: - nop - .end glob2 diff --git a/test/elf/Mips/hilo16-3.test b/test/elf/Mips/hilo16-3.test deleted file mode 100644 index daf4807d719a..000000000000 --- a/test/elf/Mips/hilo16-3.test +++ /dev/null @@ -1,45 +0,0 @@ -# REQUIRES: mips - -# Check handling of HI16 and LO16 relocations for _gp_disp. -# -# R_MIPS_HI16: (AHL + GP - P) - (short)(AHL + GP - P) -# R_MIPS_LO16: AHL + GP - P + 4 -# where AHL = (AHI << 16) + ALO -# -# RUN: llvm-mc -triple=mipsel -filetype=obj -o=%t-obj %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t-so %t-obj -# RUN: llvm-objdump -t -disassemble %t-so | FileCheck %s - -# CHECK: Disassembly of section .text: -# CHECK: glob1: -# CHECK-NEXT: {{[0-9a-f]+}}: 01 00 08 3c lui $8, 1 -# CHECK-NEXT: {{[0-9a-f]+}}: 01 8f 08 85 lh $8, -28927($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 01 00 08 3c lui $8, 1 -# CHECK-NEXT: {{[0-9a-f]+}}: f7 8e 08 85 lh $8, -28937($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 01 00 08 3c lui $8, 1 -# CHECK-NEXT: {{[0-9a-f]+}}: ef 90 08 85 lh $8, -28433($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 01 00 08 3c lui $8, 1 -# CHECK-NEXT: {{[0-9a-f]+}}: e9 8c 08 85 lh $8, -29463($8) -# CHECK-NEXT: {{[0-9a-f]+}}: 03 00 08 3c lui $8, 3 -# CHECK-NEXT: {{[0-9a-f]+}}: df 8e 08 85 lh $8, -28961($8) - -# CHECK: SYMBOL TABLE: -# CHECK: {{[0-9a-f]+}} g F .text 00000028 glob1 -# CHECK: {{[0-9a-f]+}} g *ABS* 00000000 _gp_disp - - .global glob1 -glob1: - lui $t0,%hi(_gp_disp+0x1) - lh $t0,%lo(_gp_disp+0x1)($t0) - - lui $t0,%hi(_gp_disp+(-0x1)) - lh $t0,%lo(_gp_disp+(-0x1))($t0) - - lui $t0,%hi(_gp_disp+0x1ff) - lh $t0,%lo(_gp_disp+0x1ff)($t0) - - lui $t0,%hi(_gp_disp+(-0x1ff)) - lh $t0,%lo(_gp_disp+(-0x1ff))($t0) - - lui $t0,%hi(_gp_disp+0x1ffff) - lh $t0,%lo(_gp_disp+0x1ffff)($t0) diff --git a/test/elf/Mips/hilo16-4.test b/test/elf/Mips/hilo16-4.test deleted file mode 100644 index 8a13f7b131fd..000000000000 --- a/test/elf/Mips/hilo16-4.test +++ /dev/null @@ -1,93 +0,0 @@ -# REQUIRES: mips - -# Check pairing of R_MIPS_HI16 and R_MIPS_LO16 relocations. -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -e glob1 -o %t-exe %t-obj -# RUN: llvm-objdump -t -disassemble %t-exe | FileCheck %s - -# CHECK: Disassembly of section .text: -# CHECK: glob1: -# CHECK-NEXT: 400130: 40 00 04 3c lui $4, 64 -# CHECK-NEXT: 400134: ff 9f a6 8c lw $6, -24577($5) - -# CHECK: glob2: -# CHECK-NEXT: 400138: 00 20 c7 80 lb $7, 8192($6) -# CHECK-NEXT: 40013c: 04 20 c8 80 lb $8, 8196($6) - -# CHECK: glob3: -# CHECK-NEXT: 400140: 40 80 05 3c lui $5, 32832 - -# CHECK: SYMBOL TABLE: -# CHECK: 00400130 g F .text 00000008 glob1 -# CHECK: 00400138 g F .text 00000008 glob2 -# CHECK: 00400140 g F .text 00000004 glob3 -# CHECK: 00402000 g .data 0000000c X - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS -# glob1: -# lui $4,%hi(X) # rel A -# lw $6,%lo(X+32767)($5) # rel B -# glob2: -# lb $7,%lo(X)($6) # rel C -# lb $8,%lo(X+4)($6) # rel D -# glob3: -# lui $5,%hi(X+32767) # rel E - Content: "0000043CFF7FA68C0000C7800400C880FF7F053C" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Content: "000000000000000000000000" - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x10 # rel E - Symbol: X - Type: R_MIPS_HI16 - - Offset: 0x04 # rel B - Symbol: X - Type: R_MIPS_LO16 - - Offset: 0x00 # rel A - Symbol: X - Type: R_MIPS_HI16 - - Offset: 0x0C # rel D - Symbol: X - Type: R_MIPS_LO16 - - Offset: 0x08 # rel C - Symbol: X - Type: R_MIPS_LO16 - -Symbols: - Global: - - Name: glob1 - Section: .text - Value: 0x0 - Size: 8 - - Name: glob2 - Section: .text - Value: 0x8 - Size: 8 - - Name: glob3 - Section: .text - Value: 0x10 - Size: 4 - - Name: X - Section: .data - Value: 0x0 - Size: 12 diff --git a/test/elf/Mips/hilo16-5.test b/test/elf/Mips/hilo16-5.test deleted file mode 100644 index 91aca8b1c366..000000000000 --- a/test/elf/Mips/hilo16-5.test +++ /dev/null @@ -1,103 +0,0 @@ -# Check that linker shows a warning when -# there is orphaned R_MIPS_HI16 relocation. - -# RUN: yaml2obj -format=elf -o %t-so.o -docnum 1 %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -o %t-o.o -docnum 2 %s -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so 2>&1 \ -# RUN: | FileCheck -check-prefix=DIAG %s -# RUN: llvm-objdump -s %t.exe | FileCheck -check-prefix=DATA %s - -# DIAG: lld warning: cannot matching LO16 relocation -# DIAG: lld warning: cannot matching LO16 relocation - -# DATA: Contents of section .data: -# DATA-NEXT: 402000 40000000 10200000 40000000 @.... ..@... - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .data - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "00000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Content: "000000000000000000000000" - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: D1 - Type: R_MIPS_HI16 - - Offset: 0x08 - Symbol: D2 - Type: R_MIPS_HI16 - - Offset: 0x04 - Symbol: D1 - Type: R_MIPS_LO16 - - Offset: 0x08 - Symbol: .text - Type: R_MIPS_HI16 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: D1 - - Name: D2 -... diff --git a/test/elf/Mips/hilo16-8-micro.test b/test/elf/Mips/hilo16-8-micro.test deleted file mode 100644 index 3248804f8f54..000000000000 --- a/test/elf/Mips/hilo16-8-micro.test +++ /dev/null @@ -1,81 +0,0 @@ -# REQUIRES: mips - -# Check calculation of AHL addendums for R_MICROMIPS_HI16 / R_MICROMIPS_LO16 -# relocations for a regular symbol. -# -# RUN: llvm-mc -triple=mipsel -mattr=micromips -filetype=obj -o=%t-obj %s -# RUN: lld -flavor gnu -target mipsel -e glob1 -o %t-exe %t-obj -# RUN: llvm-objdump -t -d -mattr=micromips %t-exe | FileCheck %s - -# CHECK: Disassembly of section .text: -# CHECK-NEXT: glob1: -# CHECK-NEXT: 400130: a8 41 40 00 lui $8, 64 -# CHECK-NEXT: 400134: 08 3d 6a 01 lh $8, 362($8) -# CHECK-NEXT: 400138: a8 41 41 00 lui $8, 65 -# CHECK-NEXT: 40013c: 08 3d 68 81 lh $8, -32408($8) -# CHECK-NEXT: 400140: a8 41 41 00 lui $8, 65 -# CHECK-NEXT: 400144: 08 3d e9 81 lh $8, -32279($8) -# CHECK-NEXT: 400148: a8 41 42 00 lui $8, 66 -# CHECK-NEXT: 40014c: 08 3d 69 81 lh $8, -32407($8) -# CHECK-NEXT: 400150: a8 41 40 40 lui $8, 16448 -# CHECK-NEXT: 400154: 08 3d 69 01 lh $8, 361($8) -# CHECK-NEXT: 400158: a8 41 40 80 lui $8, 32832 -# CHECK-NEXT: 40015c: 08 3d 69 01 lh $8, 361($8) -# CHECK-NEXT: 400160: a8 41 c1 80 lui $8, 32961 -# CHECK-NEXT: 400164: 08 3d e9 81 lh $8, -32279($8) - -# CHECK: glob2: -# CHECK-NEXT: 400168: a8 41 40 00 lui $8, 64 -# CHECK-NEXT: 40016c: a8 41 40 00 lui $8, 64 -# CHECK-NEXT: 400170: a8 41 41 00 lui $8, 65 -# CHECK-NEXT: 400174: a8 41 42 00 lui $8, 66 -# CHECK-NEXT: 400178: a8 41 40 40 lui $8, 16448 -# CHECK-NEXT: 40017c: a8 41 40 80 lui $8, 32832 -# CHECK-NEXT: 400180: a8 41 c1 80 lui $8, 32961 -# CHECK-NEXT: 400184: 08 3d b1 81 lh $8, -32335($8) - -# CHECK: SYMBOL TABLE: -# CHECK: 00400130 g F .text 00000038 glob1 -# CHECK: 00400168 g F .text 00000020 glob2 - - .globl glob1 - .type glob1, @function - .set micromips - .ent glob1 -glob1: - lui $t0,%hi(glob2+0x00000001) - lh $t0,%lo(glob2+0x00000001)($t0) - - lui $t0,%hi(glob2+0x00007fff) - lh $t0,%lo(glob2+0x00007fff)($t0) - - lui $t0,%hi(glob2+0x00008080) - lh $t0,%lo(glob2+0x00008080)($t0) - - lui $t0,%hi(glob2+0x00018000) - lh $t0,%lo(glob2+0x00018000)($t0) - - lui $t0,%hi(glob2+0x40000000) - lh $t0,%lo(glob2+0x40000000)($t0) - - lui $t0,%hi(glob2+0x80000000) - lh $t0,%lo(glob2+0x80000000)($t0) - - lui $t0,%hi(glob2+0x80808080) - lh $t0,%lo(glob2+0x80808080)($t0) - .end glob1 - - .globl glob2 - .type glob2, @function - .set micromips - .ent glob2 -glob2: - lui $t0,%hi(glob1+0x00000001) - lui $t0,%hi(glob1+0x00007fff) - lui $t0,%hi(glob1+0x00008080) - lui $t0,%hi(glob1+0x00018000) - lui $t0,%hi(glob1+0x40000000) - lui $t0,%hi(glob1+0x80000000) - lui $t0,%hi(glob1+0x80808080) - lh $t0,%lo(glob1+0x80808080)($t0) - .end glob2 diff --git a/test/elf/Mips/hilo16-9-micro.test b/test/elf/Mips/hilo16-9-micro.test deleted file mode 100644 index 30ad10ce0dd4..000000000000 --- a/test/elf/Mips/hilo16-9-micro.test +++ /dev/null @@ -1,68 +0,0 @@ -# REQUIRES: mips - -# Check calculation of AHL addendums for R_MICROMIPS_HI16 / R_MICROMIPS_LO16 -# relocations for the _gp_disp symbol. -# -# RUN: llvm-mc -triple=mipsel -mattr=micromips -filetype=obj -o=%t-obj %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t-so %t-obj -# RUN: llvm-objdump -t -d -mattr=micromips %t-so | FileCheck %s - -# CHECK: Disassembly of section .text: -# CHECK-NEXT: glob1: -# CHECK-NEXT: 130: a8 41 01 00 lui $8, 1 -# CHECK-NEXT: 134: 08 3d c0 9e lh $8, -24896($8) -# CHECK-NEXT: 138: a8 41 01 00 lui $8, 1 -# CHECK-NEXT: 13c: 08 3d b6 1e lh $8, 7862($8) -# CHECK-NEXT: 140: a8 41 01 00 lui $8, 1 -# CHECK-NEXT: 144: 08 3d 2f 1f lh $8, 7983($8) -# CHECK-NEXT: 148: a8 41 02 00 lui $8, 2 -# CHECK-NEXT: 14c: 08 3d a7 1e lh $8, 7847($8) -# CHECK-NEXT: 150: a8 41 01 40 lui $8, 16385 -# CHECK-NEXT: 154: 08 3d 9f 9e lh $8, -24929($8) - -# CHECK: glob2: -# CHECK-NEXT: 158: a8 41 01 00 lui $8, 1 -# CHECK-NEXT: 15c: a8 41 01 00 lui $8, 1 -# CHECK-NEXT: 160: a8 41 02 00 lui $8, 2 -# CHECK-NEXT: 164: a8 41 03 00 lui $8, 3 -# CHECK-NEXT: 168: a8 41 01 40 lui $8, 16385 -# CHECK-NEXT: 16c: 08 3d 87 9e lh $8, -24953($8) - -# CHECK: SYMBOL TABLE: -# CHECK: 00000130 g F .text 00000028 glob1 -# CHECK: 00000158 g F .text 00000018 glob2 -# CHECK: 00009ff0 g *ABS* 00000000 _gp_disp - - .globl glob1 - .type glob1, @function - .set micromips - .ent glob1 -glob1: - lui $t0,%hi(_gp_disp+0x00000001) - lh $t0,%lo(_gp_disp+0x00000001)($t0) - - lui $t0,%hi(_gp_disp+0x00007fff) - lh $t0,%lo(_gp_disp+0x00007fff)($t0) - - lui $t0,%hi(_gp_disp+0x00008080) - lh $t0,%lo(_gp_disp+0x00008080)($t0) - - lui $t0,%hi(_gp_disp+0x00018000) - lh $t0,%lo(_gp_disp+0x00018000)($t0) - - lui $t0,%hi(_gp_disp+0x40000000) - lh $t0,%lo(_gp_disp+0x40000000)($t0) - .end glob1 - - .globl glob2 - .type glob2, @function - .set micromips - .ent glob2 -glob2: - lui $t0,%hi(_gp_disp+0x00000001) - lui $t0,%hi(_gp_disp+0x00007fff) - lui $t0,%hi(_gp_disp+0x00008080) - lui $t0,%hi(_gp_disp+0x00018000) - lui $t0,%hi(_gp_disp+0x40000000) - lh $t0,%lo(_gp_disp+0x40000000)($t0) - .end glob2 diff --git a/test/elf/Mips/initfini-micro.test b/test/elf/Mips/initfini-micro.test deleted file mode 100644 index ba30e89ade21..000000000000 --- a/test/elf/Mips/initfini-micro.test +++ /dev/null @@ -1,45 +0,0 @@ -# Check that if _init/_fini symbols are microMIPS encoded, DT_INIT/DT_FINI tags -# use adjusted values with set the last bit. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t.o -# RUN: llvm-readobj -symbols -dynamic-table %t.so | FileCheck %s - -# CHECK: Name: _init (1) -# CHECK-NEXT: Value: 0xF5 -# CHECK: Name: _fini (7) -# CHECK-NEXT: Value: 0xF9 -# -# CHECK: 0x0000000C INIT 0xF5 -# CHECK: 0x0000000D FINI 0xF9 - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x18 - -Symbols: - Global: - - Name: _init - Type: STT_FUNC - Section: .text - Value: 0x0 - Size: 0x4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: _fini - Type: STT_FUNC - Section: .text - Value: 0x4 - Size: 0x4 - Other: [ STO_MIPS_MICROMIPS ] -... diff --git a/test/elf/Mips/interpreter-64.test b/test/elf/Mips/interpreter-64.test deleted file mode 100644 index 3ece3e6a467a..000000000000 --- a/test/elf/Mips/interpreter-64.test +++ /dev/null @@ -1,26 +0,0 @@ -# Check program interpreter setup. -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mips64el -e main -o %t.exe %t.o -# RUN: llvm-objdump -s %t.exe | FileCheck %s - -# CHECK: Contents of section .interp: -# CHECK-NEXT: {{[0-9a-f]+}} 2f6c6962 36342f6c 642e736f 2e3100 /lib64/ld.so.1. - -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64 ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x08 - -Symbols: - Global: - - Name: main - Section: .text diff --git a/test/elf/Mips/interpreter.test b/test/elf/Mips/interpreter.test deleted file mode 100644 index 5355f7709fbd..000000000000 --- a/test/elf/Mips/interpreter.test +++ /dev/null @@ -1,26 +0,0 @@ -# Check program interpreter setup. -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -e main -o %t.exe %t.o -# RUN: llvm-objdump -s %t.exe | FileCheck %s - -# CHECK: Contents of section .interp: -# CHECK-NEXT: {{[0-9a-f]+}} 2f6c6962 2f6c642e 736f2e31 00 /lib/ld.so.1. - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x04 - -Symbols: - Global: - - Name: main - Section: .text diff --git a/test/elf/Mips/invalid-reginfo.test b/test/elf/Mips/invalid-reginfo.test deleted file mode 100644 index d56223bf2e04..000000000000 --- a/test/elf/Mips/invalid-reginfo.test +++ /dev/null @@ -1,28 +0,0 @@ -# Check that LLD shows an error if .reginfo section has invalid size - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: not lld -flavor gnu -target mipsel -o %t.exe %t.o 2>&1 | FileCheck %s - -# CHECK: Invalid size of MIPS_REGINFO section - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - - Name: .reginfo - Type: SHT_MIPS_REGINFO - Flags: [ SHF_ALLOC ] - AddressAlign: 0x01 - Size: 0x25 -Symbols: - Global: - - Name: main - Section: .text diff --git a/test/elf/Mips/jalx-align-err.test b/test/elf/Mips/jalx-align-err.test deleted file mode 100644 index 3db18fc98fac..000000000000 --- a/test/elf/Mips/jalx-align-err.test +++ /dev/null @@ -1,46 +0,0 @@ -# Check that LLD shows an error if jalx target value is not word-aligned. - -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: not lld -flavor gnu -target mipsel -e T0 -o %t-exe %t-obj 2>&1 \ -# RUN: | FileCheck %s - -# CHECK: The jalx target 0x400116 is not word-aligned - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, - EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 8 - AddressAlign: 16 - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0 - Symbol: T1 - Type: R_MICROMIPS_26_S1 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 6 - Size: 2 diff --git a/test/elf/Mips/jump-fix-err.test b/test/elf/Mips/jump-fix-err.test deleted file mode 100644 index 981179938397..000000000000 --- a/test/elf/Mips/jump-fix-err.test +++ /dev/null @@ -1,45 +0,0 @@ -# Check that LLD shows an error in case -# of replacing an unknown unstruction by jalx. - -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: not lld -flavor gnu -target mipsel -o %t-exe %t-obj 2>&1 | FileCheck %s - -# CHECK: Unsupported jump opcode (0x0) for ISA modes cross call - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, - EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 8 - AddressAlign: 16 - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0 - Symbol: T0 - Type: R_MICROMIPS_26_S1 - -Symbols: - Global: - - Name: __start - Section: .text - Type: STT_FUNC - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 4 - Size: 4 diff --git a/test/elf/Mips/la25-stub-micro.test b/test/elf/Mips/la25-stub-micro.test deleted file mode 100644 index d41297a0ddc3..000000000000 --- a/test/elf/Mips/la25-stub-micro.test +++ /dev/null @@ -1,140 +0,0 @@ -# Check microMIPS LA25 stubs creation when PIC code -# is called from non-PIC routines. - -# Build executable from pic and non-pic code. -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-npic.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-pic.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-main.o -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe \ -# RUN: %t-npic.o %t-pic.o %t-main.o - -# RUN: llvm-readobj -t %t.exe | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.exe | FileCheck -check-prefix=ASM %s - -# SYM: Name: loc (13) -# SYM-NEXT: Value: 0x400135 -# SYM: Name: T1N (1) -# SYM-NEXT: Value: 0x400111 -# SYM: Name: T1 (5) -# SYM-NEXT: Value: 0x400121 -# SYM: Name: glob (8) -# SYM-NEXT: Value: 0x400125 - -# ASM: Contents of section .text: -# ASM-NEXT: 400110 00000000 00000000 00000000 00000000 -# ASM-NEXT: 400120 00000000 00000000 00000000 10f04900 -# 0x100049 << 2 == 0x400125 (jalx glob) --^ -# ASM-NEXT: 400130 00000000 20f49200 00000000 20f48800 -# ^-- 0x100049 << 2 == 0x400124 (jal glob) -# 0x100044 << 2 == 0x400110 (jal T1N) --^ -# ASM-NEXT: 400140 00000000 20f4a800 00000000 00000000 -# ^-- 0x100054 << 2 == 0x400150 (jal T1 stub) -# ASM-NEXT: 400150 b9414000 20d49000 39332101 00000000 -# ^-- j 0x400120 (T1) - -# npic.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, - EF_MIPS_CPIC, EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x04 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1N - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - -# pic.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, - EF_MIPS_CPIC, EF_MIPS_PIC, EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x04 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - -# main.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, - EF_MIPS_CPIC, EF_MIPS_MICROMIPS ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Content: '000000000000000000f400000000000000f400000000000000f400000000000000f4000000000000' -# jal loc jal glob jal T1N jal T1 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x08 - Symbol: .text - Type: R_MICROMIPS_26_S1 - - Offset: 0x10 - Symbol: glob - Type: R_MICROMIPS_26_S1 - - Offset: 0x18 - Symbol: T1N - Type: R_MICROMIPS_26_S1 - - Offset: 0x20 - Symbol: T1 - Type: R_MICROMIPS_26_S1 - -Symbols: - Local: - - Name: loc - Section: .text - Value: 0x10 - Size: 0x18 - Other: [ STO_MIPS_MICROMIPS ] - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - Size: 0x10 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 - - Name: T1N -... diff --git a/test/elf/Mips/la25-stub.test b/test/elf/Mips/la25-stub.test deleted file mode 100644 index 2c4b26452cec..000000000000 --- a/test/elf/Mips/la25-stub.test +++ /dev/null @@ -1,133 +0,0 @@ -# Check LA25 stubs creation when PIC code is called from non-PIC routines. - -# Build executable from pic and non-pic code. -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-npic.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-pic.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-main.o -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe \ -# RUN: %t-npic.o %t-pic.o %t-main.o - -# RUN: llvm-readobj -t %t.exe | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.exe | FileCheck -check-prefix=ASM %s - -# SYM: Name: loc (13) -# SYM-NEXT: Value: 0x400134 -# SYM: Name: T1N (1) -# SYM-NEXT: Value: 0x400110 -# SYM: Name: T1 (5) -# SYM-NEXT: Value: 0x400120 -# SYM: Name: glob (8) -# SYM-NEXT: Value: 0x400124 - -# ASM: Contents of section .text: -# ASM-NEXT: 400110 00000000 00000000 00000000 00000000 -# ASM-NEXT: 400120 00000000 00000000 00000000 49001000 -# 0x100049 << 2 == 0x400124 (glob) --^ -# ASM-NEXT: 400130 00000000 49001000 00000000 44001000 -# ^-- 0x100049 << 2 == 0x400124 (glob) -# 0x100044 << 2 == 0x400110 (T1N) --^ -# ASM-NEXT: 400140 00000000 54001000 00000000 00000000 -# ^-- 0x100054 << 2 == 0x400150 (T1 stub) -# ASM-NEXT: 400150 4000193c 48001008 20013927 00000000 -# ^-- j 0x400120 (T1) - -# npic.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, EF_MIPS_CPIC ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x04 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1N - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# pic.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, EF_MIPS_CPIC, EF_MIPS_PIC ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x04 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# main.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32, EF_MIPS_CPIC ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x28 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x08 - Symbol: .text - Type: R_MIPS_26 - Addend: 0 - - Offset: 0x10 - Symbol: glob - Type: R_MIPS_26 - Addend: 0 - - Offset: 0x18 - Symbol: T1N - Type: R_MIPS_26 - Addend: 0 - - Offset: 0x20 - Symbol: T1 - Type: R_MIPS_26 - Addend: 0 - -Symbols: - Local: - - Name: loc - Section: .text - Value: 0x10 - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - - Name: T1 - - Name: T1N -... diff --git a/test/elf/Mips/mips-options-gp0.test b/test/elf/Mips/mips-options-gp0.test deleted file mode 100644 index 339ab97253b6..000000000000 --- a/test/elf/Mips/mips-options-gp0.test +++ /dev/null @@ -1,78 +0,0 @@ -# Check reading GP0 value from .MIPS.options section -# -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -e G1 -shared -o %t.so %t.o -# RUN: llvm-readobj -symbols %t.so | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.so | FileCheck -check-prefix=SEC %s - -# SYM: Name: L1 (1) -# SYM-NEXT: Value: 0xCC -# SYM-NEXT: Size: 4 -# SYM-NEXT: Binding: Local (0x0) -# SYM-NEXT: Type: Function (0x2) -# SYM-NEXT: Other: 0 -# SYM-NEXT: Section: .text (0x4) - -# SYM: Name: _gp (34) -# SYM-NEXT: Value: 0x8FF0 -# SYM-NEXT: Size: 0 -# SYM-NEXT: Binding: Global (0x1) -# SYM-NEXT: Type: Object (0x1) -# SYM-NEXT: Other: 0 -# SYM-NEXT: Section: Absolute (0xFFF1) - -# 0xffff80dc == 0x0 (addend) + 0x00cc (L1) + 0x1000 (GP0) - 0x8ff0 (_gp) -# SEC: Contents of section .rodata: -# SEC-NEXT: 00d4 dc80ffff 00000000 00000000 00000000 ................ - -!ELF -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: -- Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - -- Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x04 - Size: 16 - -- Name: .rel.rodata - Type: SHT_REL - Link: .symtab - Info: .rodata - AddressAlign: 0x04 - Relocations: - - Offset: 0 - Symbol: L1 - Type: R_MIPS_GPREL32 - -- Name: .MIPS.options - Type: SHT_MIPS_OPTIONS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x01 - Content: "0128000000000000000000000000000000000000000000000000000000100000" - -Symbols: - Local: - - Name: L1 - Section: .text - Value: 0x00 - Size: 0x04 - - Name: .rodata - Type: STT_SECTION - Section: .rodata - Global: - - Name: G1 - Section: .text - Value: 0x04 - Size: 0x04 diff --git a/test/elf/Mips/n64-rel-chain.test b/test/elf/Mips/n64-rel-chain.test deleted file mode 100644 index 0ae7af73ae83..000000000000 --- a/test/elf/Mips/n64-rel-chain.test +++ /dev/null @@ -1,134 +0,0 @@ -# Check handling MIPS N64 ABI relocation "chains". - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mips64el -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mips64el -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-objdump -s %t.exe | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK-NEXT: 1200001d0 01000000 00000000 208e0000 00000000 ........ ....... -# CHECK-NEXT: 1200001e0 20800000 f8010000 28800000 00000000 .......(....... -# CHECK: Contents of section .pdr: -# CHECK-NEXT: 0000 d0010020 e0010020 ... ... - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 16 - Size: 8 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Global: - - Name: T1 - Type: STT_FUNC - Section: .text - Value: 0 - Size: 8 - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 16 - Size: 32 - - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 8 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: LT1 - Type: R_MIPS_GPREL16 - Type2: R_MIPS_SUB - Type3: R_MIPS_HI16 - - Offset: 0x08 - Symbol: LT1 - Type: R_MIPS_GPREL16 - Type2: R_MIPS_SUB - Type3: R_MIPS_LO16 - - Offset: 0x10 - Symbol: .rodata - Type: R_MIPS_GOT_PAGE - Addend: 8 - - Offset: 0x14 - Symbol: .rodata - Type: R_MIPS_GOT_OFST - Addend: 8 - - Offset: 0x18 - Symbol: T1 - Type: R_MIPS_CALL16 - - - Name: .pdr - Type: SHT_PROGBITS - AddressAlign: 4 - Size: 8 - - - Name: .rela.pdr - Type: SHT_RELA - Link: .symtab - AddressAlign: 8 - Info: .pdr - Relocations: - - Offset: 0x00 - Symbol: LT1 - Type: R_MIPS_32 - - Offset: 0x04 - Symbol: T0 - Type: R_MIPS_32 - - - Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 16 - Size: 16 - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .rodata - Type: STT_SECTION - Section: .rodata - - Name: .pdr - Type: STT_SECTION - Section: .pdr - - Global: - - Name: LT1 - Type: STT_FUNC - Section: .text - Value: 0x00 - Size: 0x10 - - Name: T0 - Type: STT_FUNC - Section: .text - Value: 0x10 - Size: 0x10 - - Name: T1 -... diff --git a/test/elf/Mips/opt-emulation.test b/test/elf/Mips/opt-emulation.test deleted file mode 100644 index 2d1e7142c386..000000000000 --- a/test/elf/Mips/opt-emulation.test +++ /dev/null @@ -1,41 +0,0 @@ -# Check MIPS specific arguments of the -m command line option. - -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -m elf32ltsmip -o %t-exe %t-obj -# RUN: llvm-readobj -file-headers %t-exe | FileCheck -check-prefix=LE-O32 %s - -# LE-O32: Class: 32-bit (0x1) -# LE-O32: DataEncoding: LittleEndian (0x1) -# LE-O32: FileVersion: 1 -# LE-O32: OS/ABI: SystemV (0x0) -# LE-O32: ABIVersion: 0 -# LE-O32: Machine: EM_MIPS (0x8) -# LE-O32: Version: 1 -# LE-O32: Flags [ (0x70001005) -# LE-O32-NEXT: EF_MIPS_ABI_O32 (0x1000) -# LE-O32-NEXT: EF_MIPS_ARCH_32R2 (0x70000000) -# LE-O32-NEXT: EF_MIPS_CPIC (0x4) -# LE-O32-NEXT: EF_MIPS_NOREORDER (0x1) -# LE-O32-NEXT: ] - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "00000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: __start - Section: .text - Value: 0x0 - Size: 4 diff --git a/test/elf/Mips/pc23-range.test b/test/elf/Mips/pc23-range.test deleted file mode 100644 index 7166176c4628..000000000000 --- a/test/elf/Mips/pc23-range.test +++ /dev/null @@ -1,56 +0,0 @@ -# Check that LLD shows an error if ADDIUPC immediate is out of range. - -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -o %t-exe %t-obj 2>&1 | FileCheck %s - -# CHECK: The addiupc instruction immediate 0x02000008 is out of range - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, - EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "0000000080780100" -# ^ PC23: 1 << 2 = 4 => T0 + 4 - 4 = T0 - AddressAlign: 16 - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - -- Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x4000000 - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 4 - Symbol: T0 - Type: R_MICROMIPS_PC23_S2 - -Symbols: - Global: - - Name: __start - Section: .text - Type: STT_FUNC - Size: 8 - Other: [ STO_MIPS_MICROMIPS ] - - Name: TZ - Section: .data - Type: STT_FUNC - Value: 0 - Size: 0x2000000 - - Name: T0 - Section: .data - Type: STT_FUNC - Value: 0x2000000 - Size: 4 diff --git a/test/elf/Mips/plt-entry-mixed-1.test b/test/elf/Mips/plt-entry-mixed-1.test deleted file mode 100644 index bc45763fa16d..000000000000 --- a/test/elf/Mips/plt-entry-mixed-1.test +++ /dev/null @@ -1,114 +0,0 @@ -# REQUIRES: mips - -# Conditions: -# a) Object file contains both R_MIPS_26 and microMIPS non-jal relocations. -# b) The R_MIPS_26 relocation handled first. -# Check: -# a) PLT contains the only regular entry. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t.so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t.so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t.o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t.o.o %t.so -# RUN: llvm-objdump -d %t.exe | FileCheck %s - -# CHECK: Disassembly of section .plt: -# CHECK-NEXT: .plt: -# CHECK-NEXT: 400170: 40 00 1c 3c lui $gp, 64 -# CHECK-NEXT: 400174: 00 20 99 8f lw $25, 8192($gp) -# CHECK-NEXT: 400178: 00 20 9c 27 addiu $gp, $gp, 8192 -# CHECK-NEXT: 40017c: 23 c0 1c 03 subu $24, $24, $gp -# CHECK-NEXT: 400180: 21 78 e0 03 move $15, $ra -# CHECK-NEXT: 400184: 82 c0 18 00 srl $24, $24, 2 -# CHECK-NEXT: 400188: 09 f8 20 03 jalr $25 -# CHECK-NEXT: 40018c: fe ff 18 27 addiu $24, $24, -2 -# CHECK-NEXT: 400190: 40 00 0f 3c lui $15, 64 -# CHECK-NEXT: 400194: 08 20 f9 8d lw $25, 8200($15) -# CHECK-NEXT: 400198: 08 00 20 03 jr $25 -# CHECK-NEXT: 40019c: 08 20 f8 25 addiu $24, $15, 8200 - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "0000000C00000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x0 - Symbol: T1 - Type: R_MIPS_26 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_HI16 - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_LO16 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 0x8 - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: T1 -... diff --git a/test/elf/Mips/plt-entry-mixed-2.test b/test/elf/Mips/plt-entry-mixed-2.test deleted file mode 100644 index 5aec7d7a328a..000000000000 --- a/test/elf/Mips/plt-entry-mixed-2.test +++ /dev/null @@ -1,93 +0,0 @@ -# REQUIRES: mips - -# Conditions: -# a) Object file contains both R_MIPS_26 and R_MICROMIPS_26_S1 relocations. -# Check: -# a) PLT contains both regular and compressed PLT entries - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t.so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t.so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t.o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t.o.o %t.so -# RUN: llvm-objdump -s %t.exe | FileCheck %s - -# FIXME (simon): Check the disassembler output when llvm-objdump starts -# to support microMIPS instruction encoding. - -# CHECK: Contents of section .plt: -# CHECK-NEXT: 400170 40001c3c 0020998f 00209c27 23c01c03 @..<. ... .'#... -# CHECK-NEXT: 400180 2178e003 82c01800 09f82003 feff1827 !x........ ....' -# CHECK-NEXT: 400190 40000f3c 0820f98d 08002003 0820f825 @..<. .... .. .% -# CHECK-NEXT: 4001a0 00799a07 22ff0000 9945020f .y.."....E.. - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "0000000C000000000000000000000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x0 - Symbol: T2 - Type: R_MIPS_26 - - Offset: 0x8 - Symbol: T2 - Type: R_MICROMIPS_26_S1 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 0x8 - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x8 - Size: 0x8 - Other: [STO_MIPS_MICROMIPS] - - Name: T2 -... diff --git a/test/elf/Mips/plt-entry-mixed-3.test b/test/elf/Mips/plt-entry-mixed-3.test deleted file mode 100644 index c61991b4b139..000000000000 --- a/test/elf/Mips/plt-entry-mixed-3.test +++ /dev/null @@ -1,98 +0,0 @@ -# REQUIRES: mips - -# Conditions: -# a) Object file contains microMIPS instructions. -# b) There is a relocation refers arbitrary symbols and requires a PLT entry. -# Check: -# a) PLT contains a compressed entry. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t.so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t.so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t.o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t.o.o %t.so -# RUN: llvm-objdump -s %t.exe | FileCheck %s - -# FIXME (simon): Check the disassembler output when llvm-objdump starts -# to support microMIPS instruction encoding. - -# CHECK: Contents of section .plt: -# CHECK-NEXT: 400170 8079a407 23ff0000 35052525 0233feff .y..#...5.%%.3.. -# CHECK-NEXT: 400180 ff0df945 830f000c 0079a007 22ff0000 ...E.....y.."... -# CHECK-NEXT: 400190 9945020f .E.. - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 16 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_HI16 - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_LO16 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 16 - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: T1 -... diff --git a/test/elf/Mips/plt-entry-mixed-4.test b/test/elf/Mips/plt-entry-mixed-4.test deleted file mode 100644 index acf5060621f6..000000000000 --- a/test/elf/Mips/plt-entry-mixed-4.test +++ /dev/null @@ -1,85 +0,0 @@ -# REQUIRES: mips - -# Conditions: -# a) Object file contains R_MIPS_26 relocation refers to the microMIPS symbol. -# Check: -# a) PLT contains a regular non-compressed entry. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t.so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t.so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t.o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t.o.o %t.so -# RUN: llvm-objdump -s %t.exe | FileCheck %s - -# FIXME (simon): Check the disassembler output when llvm-objdump starts -# to support microMIPS instruction encoding. - -# CHECK: Contents of section .plt: -# CHECK-NEXT: 400170 40001c3c 0020998f 00209c27 23c01c03 @..<. ... .'#... -# CHECK-NEXT: 400180 2178e003 82c01800 09f82003 feff1827 !x........ ....' -# CHECK-NEXT: 400190 40000f3c 0820f98d 08002003 0820f825 @..<. .... .. .% - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - Other: [STO_MIPS_MICROMIPS] - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "0000000C00000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x0 - Symbol: T1 - Type: R_MIPS_26 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 0x8 - - Name: T1 -... diff --git a/test/elf/Mips/plt-entry-r6.test b/test/elf/Mips/plt-entry-r6.test deleted file mode 100644 index bb05531487ff..000000000000 --- a/test/elf/Mips/plt-entry-r6.test +++ /dev/null @@ -1,109 +0,0 @@ -# REQUIRES: mips - -# Check generation of PLT entries in case of R6 target ABI. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-objdump -d %t.exe | FileCheck %s - -# CHECK: Disassembly of section .plt: -# CHECK-NEXT: .plt: -# CHECK-NEXT: 400160: 40 00 1c 3c lui $gp, 64 -# CHECK-NEXT: 400164: 00 20 99 8f lw $25, 8192($gp) -# CHECK-NEXT: 400168: 00 20 9c 27 addiu $gp, $gp, 8192 -# CHECK-NEXT: 40016c: 23 c0 1c 03 subu $24, $24, $gp -# CHECK-NEXT: 400170: 21 78 e0 03 move $15, $ra -# CHECK-NEXT: 400174: 82 c0 18 00 srl $24, $24, 2 -# CHECK-NEXT: 400178: 09 f8 20 03 jalr $25 -# CHECK-NEXT: 40017c: fe ff 18 27 addiu $24, $24, -2 -# CHECK-NEXT: 400180: 40 00 0f 3c lui $15, 64 -# CHECK-NEXT: 400184: 08 20 f9 8d lw $25, 8200($15) -# CHECK-NEXT: 400188: 09 00 20 03 jr $25 -# CHECK-NEXT: 40018c: 08 20 f8 25 addiu $24, $15, 8200 - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "0000000C00000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x0 - Symbol: T1 - Type: R_MIPS_26 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_HI16 - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_LO16 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 0x8 - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: T1 -... diff --git a/test/elf/Mips/plt-header-micro.test b/test/elf/Mips/plt-header-micro.test deleted file mode 100644 index ce042741cd32..000000000000 --- a/test/elf/Mips/plt-header-micro.test +++ /dev/null @@ -1,108 +0,0 @@ -# REQUIRES: mips - -# Check initialization of .plt header entries -# if all PLT entries use microMIPS encoding. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe %t-o.o %t.so -# RUN: llvm-objdump -d -mattr=micromips %t.exe | FileCheck -check-prefix=DIS %s -# RUN: llvm-objdump -section-headers %t.exe | FileCheck -check-prefix=EXE %s - -# DIS: Disassembly of section .plt: -# DIS-NEXT: .plt: -# DIS-NEXT: 400170: 80 79 a4 07 addiupc $3, 7824 -# DIS-NEXT: 400174: 23 ff 00 00 lw $25, 0($3) -# DIS-NEXT: 400178: 35 05 subu16 $2, $2, $3 -# DIS-NEXT: 40017a: 25 25 srl16 $2, $2, 2 -# DIS-NEXT: 40017c: 02 33 fe ff addiu $24, $2, -2 -# DIS-NEXT: 400180: ff 0d move $15, $ra -# DIS-NEXT: 400182: f9 45 jalrs16 $25 -# DIS-NEXT: 400184: 83 0f move $gp, $3 -# DIS-NEXT: 400186: 00 0c nop - -# DIS-NEXT: 400188: 00 79 a0 07 addiupc $2, 7808 -# DIS-NEXT: 40018c: 22 ff 00 00 lw $25, 0($2) -# DIS-NEXT: 400190: 99 45 jr16 $25 -# DIS-NEXT: 400192: 02 0f move $24, $2 - -# EXE: Sections: -# EXE: Idx Name Size Address Type -# EXE: 6 .plt 00000024 0000000000400170 TEXT DATA -# EXE: 10 .got.plt 0000000c 0000000000402000 DATA - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Content: '000000000000000000f4000000000000f400000000000000f400000000000000' -# jal .text jal glob jal T1 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x08 - Symbol: .text - Type: R_MICROMIPS_26_S1 - - Offset: 0x10 - Symbol: glob - Type: R_MICROMIPS_26_S1 - - Offset: 0x18 - Symbol: T1 - Type: R_MICROMIPS_26_S1 - -Symbols: - Local: - - Name: loc - Section: .text - Value: 0x10 - Other: [ STO_MIPS_MICROMIPS ] - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 -... diff --git a/test/elf/Mips/plt-header-mixed.test b/test/elf/Mips/plt-header-mixed.test deleted file mode 100644 index 0d3af19ee593..000000000000 --- a/test/elf/Mips/plt-header-mixed.test +++ /dev/null @@ -1,105 +0,0 @@ -# REQUIRES: mips - -# Check initialization of .plt header entries if there are both regular -# and microMIPS encoded PLT entries. Check that R_MIPS_26 and R_MICROMIPS_26_S1 -# relocation with the same target cause generation of two distinct PLT entries. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e globR -o %t.exe %t-o.o %t.so -# RUN: llvm-objdump -d %t.exe | FileCheck -check-prefix=DIS %s -# RUN: llvm-objdump -section-headers %t.exe | FileCheck -check-prefix=EXE %s - -# DIS: Disassembly of section .plt: -# DIS-NEXT: .plt: -# DIS-NEXT: 400170: 40 00 1c 3c lui $gp, 64 -# DIS-NEXT: 400174: 00 20 99 8f lw $25, 8192($gp) -# DIS-NEXT: 400178: 00 20 9c 27 addiu $gp, $gp, 8192 -# DIS-NEXT: 40017c: 23 c0 1c 03 subu $24, $24, $gp -# DIS-NEXT: 400180: 21 78 e0 03 move $15, $ra -# DIS-NEXT: 400184: 82 c0 18 00 srl $24, $24, 2 -# DIS-NEXT: 400188: 09 f8 20 03 jalr $25 -# DIS-NEXT: 40018c: fe ff 18 27 addiu $24, $24, -2 - -# DIS-NEXT: 400190: 40 00 0f 3c lui $15, 64 -# DIS-NEXT: 400194: 08 20 f9 8d lw $25, 8200($15) -# DIS-NEXT: 400198: 08 00 20 03 jr $25 -# DIS-NEXT: 40019c: 08 20 f8 25 addiu $24, $15, 8200 - -# FIXME (simon): Check micromips PLT entry -# DIS-NEXT: 4001a8: 99 45 02 0f jal 201922148 - -# EXE: Sections: -# EXE: Idx Name Size Address Type -# EXE: 6 .plt 0000003c 0000000000400170 TEXT DATA -# EXE: 10 .got.plt 0000000c 0000000000402000 DATA - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x8 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x0 - Symbol: T1 - Type: R_MIPS_26 - - Offset: 0x4 - Symbol: T1 - Type: R_MICROMIPS_26_S1 - -Symbols: - Global: - - Name: globR - Section: .text - Value: 0x0 - Size: 0x4 - - Name: globM - Section: .text - Value: 0x4 - Size: 0x4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 -... diff --git a/test/elf/Mips/plt-header.test b/test/elf/Mips/plt-header.test deleted file mode 100644 index caf7e83ea5e2..000000000000 --- a/test/elf/Mips/plt-header.test +++ /dev/null @@ -1,99 +0,0 @@ -# REQUIRES: mips - -# Check initialization of .plt header entries. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe %t-o.o %t.so -# RUN: llvm-objdump -section-headers -disassemble %t.exe | \ -# RUN: FileCheck -check-prefix=EXE %s - -# EXE: Disassembly of section .plt: -# EXE: .plt: -# PLT0 entry. Points to the .got.plt[0] -# EXE-NEXT: 400160: 40 00 1c 3c lui $gp, 64 -# EXE-NEXT: 400164: 00 20 99 8f lw $25, 8192($gp) -# EXE-NEXT: 400168: 00 20 9c 27 addiu $gp, $gp, 8192 -# EXE-NEXT: 40016c: 23 c0 1c 03 subu $24, $24, $gp -# EXE-NEXT: 400170: 21 78 e0 03 move $15, $ra -# EXE-NEXT: 400174: 82 c0 18 00 srl $24, $24, 2 -# EXE-NEXT: 400178: 09 f8 20 03 jalr $25 -# EXE-NEXT: 40017c: fe ff 18 27 addiu $24, $24, -2 - -# EXE: Sections: -# EXE: Idx Name Size Address Type -# EXE: 6 .plt 00000030 0000000000400160 TEXT DATA -# EXE: 10 .got.plt 0000000c 0000000000402000 DATA - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x20 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x08 - Symbol: .text - Type: R_MIPS_26 - - Offset: 0x10 - Symbol: glob - Type: R_MIPS_26 - - Offset: 0x18 - Symbol: T1 - Type: R_MIPS_26 - -Symbols: - Local: - - Name: loc - Section: .text - Value: 0x10 - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - - Name: T1 -... diff --git a/test/elf/Mips/r26-1-micro.test b/test/elf/Mips/r26-1-micro.test deleted file mode 100644 index 629754febc7e..000000000000 --- a/test/elf/Mips/r26-1-micro.test +++ /dev/null @@ -1,131 +0,0 @@ -# REQUIRES: mips - -# Check handling of R_MICROMIPS_26_S1 relocation. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: llvm-readobj -relocations %t-o.o | \ -# RUN: FileCheck -check-prefix=OBJ-REL %s -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -relocations %t.exe | FileCheck -check-prefix=EXE-REL %s -# RUN: llvm-objdump -section-headers %t.exe | FileCheck -check-prefix=EXE %s -# RUN: llvm-objdump -s -d -mattr=micromips %t.exe | \ -# RUN: FileCheck -check-prefix=DIS %s - -# Object file has three R_MICROMIPS_26_S1 relocations -# OBJ-REL: Relocations [ -# OBJ-REL-NEXT: Section (2) .rel.text { -# OBJ-REL-NEXT: 0x8 R_MICROMIPS_26_S1 loc 0x0 -# OBJ-REL-NEXT: 0x10 R_MICROMIPS_26_S1 glob 0x0 -# OBJ-REL-NEXT: 0x18 R_MICROMIPS_26_S1 T1 0x0 -# OBJ-REL-NEXT: } -# OBJ-REL-NEXT: ] - -# Executable file has the only relocation for external symbol -# EXE-REL: Relocations [ -# EXE-REL-NEXT: Section (5) .rel.plt { -# EXE-REL-NEXT: 0x402008 R_MIPS_JUMP_SLOT T1 0x0 -# EXE-REL-NEXT: } -# EXE-REL-NEXT: ] - -# EXE: Sections: -# EXE: Idx Name Size Address Type -# EXE: 6 .plt 00000024 0000000000400160 TEXT DATA -# EXE: 10 .got.plt 0000000c 0000000000402000 DATA - -# DIS: Disassembly of section .plt: -# DIS-NEXT: .plt: -# DIS-NEXT: 400160: 80 79 a8 07 addiupc $3, 7840 -# DIS-NEXT: 400164: 23 ff 00 00 lw $25, 0($3) -# DIS-NEXT: 400168: 35 05 subu16 $2, $2, $3 -# DIS-NEXT: 40016a: 25 25 srl16 $2, $2, 2 -# DIS-NEXT: 40016c: 02 33 fe ff addiu $24, $2, -2 -# DIS-NEXT: 400170: ff 0d move $15, $ra -# DIS-NEXT: 400172: f9 45 jalrs16 $25 -# DIS-NEXT: 400174: 83 0f move $gp, $3 -# DIS-NEXT: 400176: 00 0c nop - -# DIS-NEXT: 400178: 00 79 a4 07 addiupc $2, 7824 -# DIS-NEXT: 40017c: 22 ff 00 00 lw $25, 0($2) -# DIS-NEXT: 400180: 99 45 jr16 $25 -# DIS-NEXT: 400182: 02 0f move $24, $2 - -# DIS: Contents of section .text: -# DIS-NEXT: 400184 09f82003 00000000 2400ca0c 00000000 .. .....$....... -# DIS-NEXT: 400194 2000c20c 00000000 2000bc0c 00000000 ....... ....... - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Content: '09F82003000000000400000C000000000000000C000000000000000C00000000' - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x08 - Symbol: loc - Type: R_MICROMIPS_26_S1 - - Offset: 0x10 - Symbol: glob - Type: R_MICROMIPS_26_S1 - - Offset: 0x18 - Symbol: T1 - Type: R_MICROMIPS_26_S1 - -Symbols: - Local: - - Name: loc - Section: .text - Value: 0x10 - Other: [ STO_MIPS_MICROMIPS ] - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 -... diff --git a/test/elf/Mips/r26-1.test b/test/elf/Mips/r26-1.test deleted file mode 100644 index abc0a7ce5a81..000000000000 --- a/test/elf/Mips/r26-1.test +++ /dev/null @@ -1,132 +0,0 @@ -# REQUIRES: mips - -# Check handling of R_MIPS_26 relocation. - -# Build shared library -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Build executable -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: llvm-readobj -relocations %t-o.o | \ -# RUN: FileCheck -check-prefix=OBJ-REL %s -# RUN: lld -flavor gnu -target mipsel -e glob -o %t.exe %t-o.o %t.so -# RUN: llvm-objdump -section-headers -disassemble %t.exe | \ -# RUN: FileCheck -check-prefix=EXE %s -# RUN: llvm-readobj -relocations %t.exe | FileCheck -check-prefix=EXE-REL %s - -# Object file has three R_MIPS_26 relocations -# OBJ-REL: Relocations [ -# OBJ-REL-NEXT: Section (2) .rel.text { -# OBJ-REL-NEXT: 0x8 R_MIPS_26 .text 0x0 -# OBJ-REL-NEXT: 0x10 R_MIPS_26 glob 0x0 -# OBJ-REL-NEXT: 0x18 R_MIPS_26 T1 0x0 -# OBJ-REL-NEXT: } -# OBJ-REL-NEXT: ] - -# Executable file has the only relocation for external symbol -# EXE-REL: Relocations [ -# EXE-REL-NEXT: Section (5) .rel.plt { -# EXE-REL-NEXT: 0x402008 R_MIPS_JUMP_SLOT T1 0x0 -# EXE-REL-NEXT: } -# EXE-REL-NEXT: ] - -# EXE: Disassembly of section .plt: -# EXE: .plt: -# PLTA entry. Points to the .got.plt[1] -# EXE: 400180: 40 00 0f 3c lui $15, 64 -# EXE-NEXT: 400184: 08 20 f9 8d lw $25, 8200($15) -# EXE-NEXT: 400188: 08 00 20 03 jr $25 -# EXE-NEXT: 40018c: 08 20 f8 25 addiu $24, $15, 8200 - -# EXE: Disassembly of section .text: -# EXE: glob: -# EXE-NEXT: 400190: 09 f8 20 03 jalr $25 -# EXE-NEXT: 400194: 00 00 00 00 nop -# -# Jump to 'loc' label address -# EXE-NEXT: 400198: 68 00 10 0c jal 4194720 -# EXE-NEXT: 40019c: 00 00 00 00 nop -# -# EXE: loc: -# Jump to 'glob' label address -# EXE-NEXT: 4001a0: 64 00 10 0c jal 4194704 -# EXE-NEXT: 4001a4: 00 00 00 00 nop -# -# Jump to the first PLT entry (.plt + 32) for T1 entry -# EXE-NEXT: 4001a8: 60 00 10 0c jal 4194688 -# EXE-NEXT: 4001ac: 00 00 00 00 nop - -# EXE: Sections: -# EXE: Idx Name Size Address Type -# EXE: 6 .plt 00000030 0000000000400160 TEXT DATA -# EXE: 10 .got.plt 0000000c 0000000000402000 DATA - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Content: '09F82003000000000400000C000000000000000C000000000000000C00000000' - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x08 - Symbol: .text - Type: R_MIPS_26 - - Offset: 0x10 - Symbol: glob - Type: R_MIPS_26 - - Offset: 0x18 - Symbol: T1 - Type: R_MIPS_26 - -Symbols: - Local: - - Name: loc - Section: .text - Value: 0x10 - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: glob - Section: .text - - Name: T1 -... diff --git a/test/elf/Mips/r26-2-micro.test b/test/elf/Mips/r26-2-micro.test deleted file mode 100644 index b92b9acf4c84..000000000000 --- a/test/elf/Mips/r26-2-micro.test +++ /dev/null @@ -1,88 +0,0 @@ -# REQUIRES: mips - -# Check reading addendum for R_MICROMIPS_26_S1 relocation. -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -o %t-exe %t-obj -# RUN: llvm-objdump -d -mattr=micromips %t-exe | FileCheck -check-prefix=DIS %s -# RUN: llvm-objdump -t %t-exe | FileCheck %s - -# DIS: Disassembly of section .text: -# DIS-NEXT: loc0: -# DIS-NEXT: 400110: 00 00 00 00 nop - -# DIS: __start: -# DIS-NEXT: 400114: 20 f4 8e e0 jal 4309276 -# DIS-NEXT: 400118: 00 00 00 00 nop -# DIS-NEXT: 40011c: 20 f4 9a e0 jal 4309300 -# DIS-NEXT: 400120: 00 00 00 00 nop - -# DIS: loc1: -# DIS-NEXT: 400124: 20 f4 89 00 jal 4194578 -# DIS-NEXT: 400128: 00 00 00 00 nop -# DIS-NEXT: 40012c: 20 f4 91 00 jal 4194594 -# DIS-NEXT: 400130: 00 00 00 00 nop - -# CHECK: SYMBOL TABLE: -# CHECK: 00400124 l F .text 00000010 loc1 -# CHECK: 00400114 g F .text 00000010 __start - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: -- Name: .text - Type: SHT_PROGBITS -# nop -# jal __start + 0x1C000 -# nop -# jal loc + 0x1C000 -# nop -# jal __start + 7FFFFE2 -# nop -# jal loc + 7FFFFEA -# nop - Content: "0000000000f404e00000000000f408e000000000FFF7FFFF00000000FFF7FFFF00000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x4 - Symbol: __start - Type: R_MICROMIPS_26_S1 - - Offset: 0xC - Symbol: loc1 - Type: R_MICROMIPS_26_S1 - - Offset: 0x14 - Symbol: __start - Type: R_MICROMIPS_26_S1 - - Offset: 0x1C - Symbol: loc1 - Type: R_MICROMIPS_26_S1 - -Symbols: - Global: - - Name: __start - Section: .text - Value: 0x4 - Size: 8 - Other: [ STO_MIPS_MICROMIPS ] - Local: - - Name: loc0 - Section: .text - Value: 0 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: loc1 - Section: .text - Value: 0x14 - Size: 8 - Other: [ STO_MIPS_MICROMIPS ] diff --git a/test/elf/Mips/r26-2.test b/test/elf/Mips/r26-2.test deleted file mode 100644 index 0f0063ae1334..000000000000 --- a/test/elf/Mips/r26-2.test +++ /dev/null @@ -1,82 +0,0 @@ -# REQUIRES: mips - -# Check reading addendum for R_MIPS_26 relocation. -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -o %t-exe %t-obj -# RUN: llvm-objdump -t -disassemble %t-exe | FileCheck %s - -# CHECK: Disassembly of section .text: -# CHECK-NEXT: __start: -# CHECK-NEXT: 400110: 00 00 00 00 nop -# CHECK-NEXT: 400114: 44 70 10 0c jal 4309264 -# 0x107044 << 2 = 0x41C110 = _start + (0x7000 << 2) -# CHECK-NEXT: 400118: 00 00 00 00 nop -# -# CHECK: loc: -# CHECK-NEXT: 40011c: 47 70 10 0c jal 4309276 -# 0x107047 << 2 = 0x41C11C = loc + (0x7000 << 2) -# CHECK-NEXT: 400120: 00 00 00 00 nop -# CHECK-NEXT: 400124: 43 00 10 0c jal 4194572 -# 0x100043 << 2 = 0x40010C = _start - 4 -# CHECK-NEXT: 400128: 00 00 00 00 nop -# CHECK-NEXT: 40012c: 46 00 10 0c jal 4194584 -# 0x100046 << 2 = 0x400118 = loc - 4 -# CHECK-NEXT: 400130: 00 00 00 00 nop - -# CHECK: SYMBOL TABLE: -# CHECK: 0040011c l F .text 00000018 loc -# CHECK: 00400110 g F .text 0000000c __start - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS -# nop -# jal __start + 0x1C000 -# nop -# jal loc + 0x1C000 -# nop -# jal __start - 1 -# nop -# jal loc - 1 -# nop - Content: "000000000070000C000000000070000C00000000FFFFFF0F00000000FFFFFF0F00000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x4 - Symbol: __start - Type: R_MIPS_26 - - Offset: 0xC - Symbol: loc - Type: R_MIPS_26 - - Offset: 0x14 - Symbol: __start - Type: R_MIPS_26 - - Offset: 0x1C - Symbol: loc - Type: R_MIPS_26 - -Symbols: - Global: - - Name: __start - Section: .text - Value: 0x0 - Size: 4 - Local: - - Name: loc - Section: .text - Value: 0xc - Size: 4 diff --git a/test/elf/Mips/rel-32.test b/test/elf/Mips/rel-32.test deleted file mode 100644 index beefde59b7b1..000000000000 --- a/test/elf/Mips/rel-32.test +++ /dev/null @@ -1,59 +0,0 @@ -# Check handling of R_MIPS_32 relocation. -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -o %t-exe %t-obj -# RUN: llvm-objdump -s -t %t-exe | FileCheck %s - -# CHECK: Contents of section .data: -# CHECK-NEXT: 402000 00000000 09204080 05204080 ..... @.. @. -# ^^ data2 + 0x80000001 = 0x80402009 -# ^^ data1 + 0x80000001 = 0x80402005 -# CHECK: SYMBOL TABLE: -# CHECK: 00402004 g .data 00000004 data1 -# CHECK: 00402008 g .data 00000004 data2 - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "00000000" - AddressAlign: 16 - Flags: [SHF_ALLOC] -- Name: .data - Type: SHT_PROGBITS - Content: "000000000100008001000080" - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_WRITE] - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x4 - Symbol: data2 - Type: R_MIPS_32 - - Offset: 0x8 - Symbol: data1 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: __start - Section: .text - Value: 0x0 - Size: 4 - - Name: data1 - Section: .data - Value: 0x4 - Size: 4 - - Name: data2 - Section: .data - Value: 0x8 - Size: 4 diff --git a/test/elf/Mips/rel-64.test b/test/elf/Mips/rel-64.test deleted file mode 100644 index e05b75687038..000000000000 --- a/test/elf/Mips/rel-64.test +++ /dev/null @@ -1,61 +0,0 @@ -# Check handling of R_MIPS_64 relocation. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mips64el -o %t.exe %t.o -# RUN: llvm-objdump -s -t %t.exe | FileCheck %s - -# CHECK: Contents of section .data: -# CHECK-NEXT: 120002000 d1010020 01000000 d0010020 01000100 ... ....... .... -# ^^ __start + 1 = 0x1200001d1 -# ^^ __start + 0x1000000000000 -# = 0x10001200001d0 -# CHECK: SYMBOL TABLE: -# CHECK: 00000001200001d0 g .rodata 00000008 __start - -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_ALLOC] -- Name: .data - Type: SHT_PROGBITS - Size: 0x10 - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_WRITE] - -- Name: .rela.data - Type: SHT_RELA - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x0 - Symbol: __start - Type: R_MIPS_64 - Addend: 1 - - Offset: 0x8 - Symbol: __start - Type: R_MIPS_64 - Addend: 0x1000000000000 - -Symbols: - Global: - - Name: __start - Section: .text - Value: 0x0 - Size: 8 - - Name: data1 - Section: .data - Value: 0x0 - Size: 8 - - Name: data2 - Section: .data - Value: 0x8 - Size: 8 diff --git a/test/elf/Mips/rel-copy-micro.test b/test/elf/Mips/rel-copy-micro.test deleted file mode 100644 index afa99198e37f..000000000000 --- a/test/elf/Mips/rel-copy-micro.test +++ /dev/null @@ -1,159 +0,0 @@ -# Check R_MIPS_COPY relocation emitting -# when linking non-shared executable file. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so1.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t1.so %t-so1.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-so2.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t2.so %t-so2.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t1.so %t2.so -# RUN: llvm-readobj -dt -r -dynamic-table %t.exe | FileCheck %s - -# CHECK: Relocations [ -# CHECK-NEXT: Section (5) .rel.dyn { -# CHECK-NEXT: 0x402010 R_MIPS_COPY D1 0x0 -# CHECK-NEXT: 0x402018 R_MIPS_COPY D2 0x0 -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSymbols [ -# 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: D1@ (1) -# CHECK-NEXT: Value: 0x402010 -# CHECK-NEXT: Size: 8 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .bss (0xA) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D2@ (4) -# CHECK-NEXT: Value: 0x402018 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .bss (0xA) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSection [ ({{.*}} entries) -# CHECK: 0x00000001 NEEDED SharedLibrary (rel-copy-micro.test.tmp1.so) -# CHECK: 0x00000001 NEEDED SharedLibrary (rel-copy-micro.test.tmp2.so) -# CHECK-NEXT: 0x00000000 NULL 0x0 -# CHECK-NEXT: ] - -# so1.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - -# so2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .data - Type: SHT_PROGBITS - Size: 0x04 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: D1 - Type: R_MICROMIPS_HI16 - - Offset: 0x00 - Symbol: D1 - Type: R_MICROMIPS_LO16 - - Offset: 0x08 - Symbol: D2 - Type: R_MICROMIPS_HI16 - - Offset: 0x08 - Symbol: D2 - Type: R_MICROMIPS_LO16 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - Other: [ STO_MIPS_MICROMIPS ] - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 -... diff --git a/test/elf/Mips/rel-copy-pc.test b/test/elf/Mips/rel-copy-pc.test deleted file mode 100644 index 2dd702334fed..000000000000 --- a/test/elf/Mips/rel-copy-pc.test +++ /dev/null @@ -1,113 +0,0 @@ -# Check R_MIPS_COPY relocation emitting caused by R_MIPS_PCHI16 / R_MIPS_PCLO16 -# relocations when linking non-shared executable file. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dt -r -dynamic-table %t.exe | FileCheck %s - -# CHECK: Relocations [ -# CHECK-NEXT: Section (5) .rel.dyn { -# CHECK-NEXT: 0x402008 R_MIPS_COPY D1 0x0 -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSymbols [ -# 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: D1@ (1) -# CHECK-NEXT: Value: 0x402008 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .bss (0xA) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSection [ ({{.*}} entries) -# CHECK: 0x00000001 NEEDED SharedLibrary (rel-copy-pc.test.tmp.so) -# CHECK-NEXT: 0x00000000 NULL 0x0 -# CHECK-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: -- Name: .data - Type: SHT_PROGBITS - Size: 4 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 4 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 4 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0 - Symbol: D1 - Type: R_MIPS_PCHI16 - - Offset: 0 - Symbol: D1 - Type: R_MIPS_PCLO16 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0 - Size: 4 - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0 - Size: 4 - - Name: D1 -... diff --git a/test/elf/Mips/rel-copy.test b/test/elf/Mips/rel-copy.test deleted file mode 100644 index 648a25e22ae7..000000000000 --- a/test/elf/Mips/rel-copy.test +++ /dev/null @@ -1,177 +0,0 @@ -# Check R_MIPS_COPY relocation emitting -# when linking non-shared executable file. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so1.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t1.so %t-so1.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-so2.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t2.so %t-so2.o -# RUN: yaml2obj -format=elf -docnum 3 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t1.so %t2.so -# RUN: llvm-readobj -dt -r -dynamic-table %t.exe | FileCheck %s - -# CHECK: Relocations [ -# CHECK-NEXT: Section (5) .rel.dyn { -# CHECK-NEXT: 0x402004 R_MIPS_REL32 D2 0x0 -# CHECK-NEXT: 0x402010 R_MIPS_COPY D1 0x0 -# CHECK-NEXT: 0x402018 R_MIPS_COPY D3 0x0 -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSymbols [ -# 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: D1@ (1) -# CHECK-NEXT: Value: 0x402010 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .bss (0xA) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D3@ (4) -# CHECK-NEXT: Value: 0x402018 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .bss (0xA) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D2@ (7) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSection [ ({{.*}} entries) -# CHECK: 0x00000001 NEEDED SharedLibrary (rel-copy.test.tmp1.so) -# CHECK: 0x00000001 NEEDED SharedLibrary (rel-copy.test.tmp2.so) -# CHECK-NEXT: 0x00000000 NULL 0x0 -# CHECK-NEXT: ] - -# so1.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# so2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .data - Type: SHT_PROGBITS - Size: 0x04 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: D3 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: D1 - Type: R_MIPS_HI16 - - Offset: 0x00 - Symbol: D1 - Type: R_MIPS_LO16 - - Offset: 0x04 - Symbol: D2 - Type: R_MIPS_32 - - Offset: 0x08 - Symbol: D3 - Type: R_MIPS_HI16 - - Offset: 0x08 - Symbol: D3 - Type: R_MIPS_LO16 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - - Name: D3 -... diff --git a/test/elf/Mips/rel-dynamic-01-micro.test b/test/elf/Mips/rel-dynamic-01-micro.test deleted file mode 100644 index 6e0a41bf2606..000000000000 --- a/test/elf/Mips/rel-dynamic-01-micro.test +++ /dev/null @@ -1,201 +0,0 @@ -# REQUIRES: mips - -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are symbols defined in the shared object. -# Check: -# a) Emitting R_MIPS_COPY, R_MIPS_JUMP_SLOT relocations. -# b) PLT entries creation. -# c) STO_MIPS_PLT flag in the dynamic symbol table for symbols require -# a pointer equality. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-objdump -d -mattr=micromips %t.exe | FileCheck -check-prefix=DIS %s -# RUN: llvm-readobj -dt -r %t.exe | FileCheck -check-prefix=PLT-SYM %s - -# DIS: Disassembly of section .plt: -# DIS-NEXT: .plt: -# DIS-NEXT: 4001b0: 80 79 94 07 addiupc $3, 7760 -# DIS-NEXT: 4001b4: 23 ff 00 00 lw $25, 0($3) -# DIS-NEXT: 4001b8: 35 05 subu16 $2, $2, $3 -# DIS-NEXT: 4001ba: 25 25 srl16 $2, $2, 2 -# DIS-NEXT: 4001bc: 02 33 fe ff addiu $24, $2, -2 -# DIS-NEXT: 4001c0: ff 0d move $15, $ra -# DIS-NEXT: 4001c2: f9 45 jalrs16 $25 -# DIS-NEXT: 4001c4: 83 0f move $gp, $3 -# DIS-NEXT: 4001c6: 00 0c nop - -# DIS-NEXT: 4001c8: 00 79 90 07 addiupc $2, 7744 -# DIS-NEXT: 4001cc: 22 ff 00 00 lw $25, 0($2) -# DIS-NEXT: 4001d0: 99 45 jr16 $25 -# DIS-NEXT: 4001d2: 02 0f move $24, $2 - -# DIS-NEXT: 4001d4: 00 79 8e 07 addiupc $2, 7736 -# DIS-NEXT: 4001d8: 22 ff 00 00 lw $25, 0($2) -# DIS-NEXT: 4001dc: 99 45 jr16 $25 -# DIS-NEXT: 4001de: 02 0f move $24, $2 - -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: Section (5) .rel.dyn { -# PLT-SYM-NEXT: 0x402018 R_MIPS_COPY D1 0x0 -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Section (6) .rel.plt { -# PLT-SYM-NEXT: 0x402008 R_MIPS_JUMP_SLOT T3 0x0 -# PLT-SYM-NEXT: 0x40200C R_MIPS_JUMP_SLOT T1 0x0 -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -# PLT-SYM: DynamicSymbols [ -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: @ (0) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Local (0x0) -# PLT-SYM-NEXT: Type: None (0x0) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: D1@ (1) -# PLT-SYM-NEXT: Value: 0x402018 -# PLT-SYM-NEXT: Size: 8 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Object (0x1) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: .bss (0xD) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: T1@ (4) -# PLT-SYM-NEXT: Value: 0x4001D5 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 8 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: T3@ (7) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T3 - Section: .text - Type: STT_FUNC - Value: 0x8 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - -# o.o ---- -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T3 - Type: R_MICROMIPS_26_S1 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_HI16 - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_LO16 - - Offset: 0x04 - Symbol: D1 - Type: R_MICROMIPS_HI16 - - Offset: 0x04 - Symbol: D1 - Type: R_MICROMIPS_LO16 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: D1 - Type: STT_OBJECT -... diff --git a/test/elf/Mips/rel-dynamic-01.test b/test/elf/Mips/rel-dynamic-01.test deleted file mode 100644 index ca4619668bd2..000000000000 --- a/test/elf/Mips/rel-dynamic-01.test +++ /dev/null @@ -1,237 +0,0 @@ -# REQUIRES: mips - -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are symbols defined in the shared object. -# Check: -# a) Emitting R_MIPS_REL32, R_MIPS_COPY, R_MIPS_JUMP_SLOT relocations. -# b) PLT entries creation. -# c) STO_MIPS_PLT flag in the dynamic symbol table for symbols require -# a pointer equality. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-objdump -disassemble %t.exe | FileCheck -check-prefix=PLT %s -# RUN: llvm-readobj -dt -r %t.exe | FileCheck -check-prefix=PLT-SYM %s - -# PLT: Disassembly of section .plt: -# PLT-NEXT: .plt: -# PLT-NEXT: 4001f0: 40 00 1c 3c lui $gp, 64 -# PLT-NEXT: 4001f4: 00 20 99 8f lw $25, 8192($gp) -# PLT-NEXT: 4001f8: 00 20 9c 27 addiu $gp, $gp, 8192 -# PLT-NEXT: 4001fc: 23 c0 1c 03 subu $24, $24, $gp -# PLT-NEXT: 400200: 21 78 e0 03 move $15, $ra -# PLT-NEXT: 400204: 82 c0 18 00 srl $24, $24, 2 -# PLT-NEXT: 400208: 09 f8 20 03 jalr $25 -# PLT-NEXT: 40020c: fe ff 18 27 addiu $24, $24, -2 -# -# PLT-NEXT: 400210: 40 00 0f 3c lui $15, 64 -# PLT-NEXT: 400214: 08 20 f9 8d lw $25, 8200($15) -# PLT-NEXT: 400218: 08 00 20 03 jr $25 -# PLT-NEXT: 40021c: 08 20 f8 25 addiu $24, $15, 8200 -# -# PLT-NEXT: 400220: 40 00 0f 3c lui $15, 64 -# PLT-NEXT: 400224: 0c 20 f9 8d lw $25, 8204($15) -# PLT-NEXT: 400228: 08 00 20 03 jr $25 -# PLT-NEXT: 40022c: 0c 20 f8 25 addiu $24, $15, 8204 - -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: Section (5) .rel.dyn { -# PLT-SYM-NEXT: 0x402014 R_MIPS_REL32 T2 0x0 -# PLT-SYM-NEXT: 0x402014 R_MIPS_REL32 D2 0x0 -# PLT-SYM-NEXT: 0x402018 R_MIPS_COPY D1 0x0 -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Section (6) .rel.plt { -# PLT-SYM-NEXT: 0x402008 R_MIPS_JUMP_SLOT T3 0x0 -# PLT-SYM-NEXT: 0x40200C R_MIPS_JUMP_SLOT T1 0x0 -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -# PLT-SYM: DynamicSymbols [ -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: @ (0) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Local (0x0) -# PLT-SYM-NEXT: Type: None (0x0) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: D1@ (1) -# PLT-SYM-NEXT: Value: 0x402018 -# PLT-SYM-NEXT: Size: 4 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Object (0x1) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: .bss (0xD) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: T1@ (4) -# PLT-SYM-NEXT: Value: 0x400220 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 8 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: T3@ (10) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: T2@ (7) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: D2@ (13) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 4 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Object (0x1) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: T3 - Section: .text - Type: STT_FUNC - Value: 0x8 - Size: 4 - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# o.o ---- -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T3 - Type: R_MIPS_26 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_HI16 - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_LO16 - - Offset: 0x04 - Symbol: T2 - Type: R_MIPS_32 - - - Offset: 0x04 - Symbol: D1 - Type: R_MIPS_HI16 - - Offset: 0x04 - Symbol: D1 - Type: R_MIPS_LO16 - - Offset: 0x04 - Symbol: D2 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: T2 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - Type: STT_OBJECT -... diff --git a/test/elf/Mips/rel-dynamic-02.test b/test/elf/Mips/rel-dynamic-02.test deleted file mode 100644 index 4de86383482c..000000000000 --- a/test/elf/Mips/rel-dynamic-02.test +++ /dev/null @@ -1,82 +0,0 @@ -# Conditions: -# a) Linking a shared library. -# b) Relocations' targets are undefined symbols. -# Check: -# a) Emitting R_MIPS_REL32 relocations for both undefined symbols. -# b) There should be no PLT entries. -# -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec -o %t1-so %t-obj -# RUN: llvm-readobj -dt -r -s %t1-so | FileCheck -check-prefix=PLT-SYM %s - -# PLT-SYM: Sections [ -# PLT-SYM: Section { -# PLT-SYM-NOT: Name: .plt ({{[0-9]+}}) -# -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: Section (4) .rel.dyn { -# PLT-SYM-NEXT: 0x140 R_MIPS_REL32 T1 0x0 -# PLT-SYM-NEXT: 0x2000 R_MIPS_REL32 T1 0x0 -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] -# -# PLT-SYM: Name: T1@ (7) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: None (0x0) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_32 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T1 - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 diff --git a/test/elf/Mips/rel-dynamic-03-micro.test b/test/elf/Mips/rel-dynamic-03-micro.test deleted file mode 100644 index 5de2cdcdc131..000000000000 --- a/test/elf/Mips/rel-dynamic-03-micro.test +++ /dev/null @@ -1,133 +0,0 @@ -# REQUIRES: mips - -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' target is a symbol defined in the shared object. -# c) The target symbol is referenced by both branch (R_MICROMIPS_26_S1) -# and regular (R_MIPS_32) relocations. -# Check: -# a) There should be no R_MIPS_REL32 relocation. -# b) Linker creates a single PLT entry. -# c) STO_MIPS_PLT flag in the dynamic symbol table for symbols require -# a pointer equality. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-objdump -d -mattr=micromips %t.exe | FileCheck -check-prefix=DIS %s -# RUN: llvm-readobj -dt -r %t.exe | FileCheck -check-prefix=PLT-SYM %s - -# DIS: Disassembly of section .plt: -# DIS-NEXT: .plt: -# DIS-NEXT: 400170: 80 79 a4 07 addiupc $3, 7824 -# DIS-NEXT: 400174: 23 ff 00 00 lw $25, 0($3) -# DIS-NEXT: 400178: 35 05 subu16 $2, $2, $3 -# DIS-NEXT: 40017a: 25 25 srl16 $2, $2, 2 -# DIS-NEXT: 40017c: 02 33 fe ff addiu $24, $2, -2 -# DIS-NEXT: 400180: ff 0d move $15, $ra -# DIS-NEXT: 400182: f9 45 jalrs16 $25 -# DIS-NEXT: 400184: 83 0f move $gp, $3 -# DIS-NEXT: 400186: 00 0c nop - -# DIS-NEXT: 400188: 00 79 a0 07 addiupc $2, 7808 -# DIS-NEXT: 40018c: 22 ff 00 00 lw $25, 0($2) -# DIS-NEXT: 400190: 99 45 jr16 $25 -# DIS-NEXT: 400192: 02 0f move $24, $2 - -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: Section (5) .rel.plt { -# PLT-SYM-NEXT: 0x402008 R_MIPS_JUMP_SLOT T1 0x0 -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -# PLT-SYM: Name: T1@ (1) -# PLT-SYM-NEXT: Value: 0x400189 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 8 -# PLT-SYM-NEXT: Section: Undefined (0x0) - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - -# o.o ---- -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T1 - Type: R_MICROMIPS_26_S1 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T1 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 - Type: STT_FUNC - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 -... diff --git a/test/elf/Mips/rel-dynamic-03.test b/test/elf/Mips/rel-dynamic-03.test deleted file mode 100644 index cc791b051748..000000000000 --- a/test/elf/Mips/rel-dynamic-03.test +++ /dev/null @@ -1,129 +0,0 @@ -# REQUIRES: mips - -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' target is a symbol defined in the shared object. -# c) The target symbol is referenced by both branch (R_MIPS_26) -# and regular (R_MIPS_32) relocations. -# Check: -# a) There should be no R_MIPS_REL32 relocation. -# b) Linker creates a single PLT entry. -# c) STO_MIPS_PLT flag in the dynamic symbol table for symbols require -# a pointer equality. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-objdump -disassemble %t.exe | FileCheck -check-prefix=PLT %s -# RUN: llvm-readobj -dt -r %t.exe | FileCheck -check-prefix=PLT-SYM %s - -# PLT: Disassembly of section .plt: -# PLT-NEXT: .plt: -# PLT-NEXT: 400160: 40 00 1c 3c lui $gp, 64 -# PLT-NEXT: 400164: 00 20 99 8f lw $25, 8192($gp) -# PLT-NEXT: 400168: 00 20 9c 27 addiu $gp, $gp, 8192 -# PLT-NEXT: 40016c: 23 c0 1c 03 subu $24, $24, $gp -# PLT-NEXT: 400170: 21 78 e0 03 move $15, $ra -# PLT-NEXT: 400174: 82 c0 18 00 srl $24, $24, 2 -# PLT-NEXT: 400178: 09 f8 20 03 jalr $25 -# PLT-NEXT: 40017c: fe ff 18 27 addiu $24, $24, -2 -# -# PLT-NEXT: 400180: 40 00 0f 3c lui $15, 64 -# PLT-NEXT: 400184: 08 20 f9 8d lw $25, 8200($15) -# PLT-NEXT: 400188: 08 00 20 03 jr $25 -# PLT-NEXT: 40018c: 08 20 f8 25 addiu $24, $15, 8200 -# -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: Section (5) .rel.plt { -# PLT-SYM-NEXT: 0x402008 R_MIPS_JUMP_SLOT T1 0x0 -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -# PLT-SYM: Name: T1@ (1) -# PLT-SYM-NEXT: Value: 0x400180 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 8 -# PLT-SYM-NEXT: Section: Undefined (0x0) - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T1 - Type: R_MIPS_26 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T1 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 -... diff --git a/test/elf/Mips/rel-dynamic-04-micro.test b/test/elf/Mips/rel-dynamic-04-micro.test deleted file mode 100644 index 1c58efdf5f70..000000000000 --- a/test/elf/Mips/rel-dynamic-04-micro.test +++ /dev/null @@ -1,211 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are symbols defined in the shared object. -# c) Relocations modify a writable section. -# d) The first symbol is referenced by R_MIPS32 relocation only -# e) The second symbol is referenced by R_MIPS_32 -# and R_MICROMIPS_26_S1 relocations. -# f) The third symbol is referenced by R_MICROMIPS_26_S1 -# and R_MIPS_32 relocations. -# Check: -# a) There should be the only R_MIPS_REL32 relocation. -# b) Linker creates a couple of PLT entry for both symbols referenced -# by the R_MICROMIPS_26_S1 branch relocation. -# c) STO_MIPS_PLT flag in the dynamic symbol table for symbols require -# a pointer equality. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dt -r -s %t.exe | FileCheck -check-prefix=PLT %s - -# PLT: Section { -# PLT: Index: 5 -# PLT-NEXT: Name: .rel.dyn (31) -# PLT-NEXT: Type: SHT_REL (0x9) -# PLT-NEXT: Flags [ (0x2) -# PLT-NEXT: SHF_ALLOC (0x2) -# PLT-NEXT: ] -# PLT-NEXT: Address: 0x4010A0 -# PLT-NEXT: Offset: 0x10A0 -# PLT-NEXT: Size: 8 -# PLT-NEXT: Link: 3 -# PLT-NEXT: Info: 0 -# PLT-NEXT: AddressAlignment: 4 -# PLT-NEXT: EntrySize: 8 -# PLT-NEXT: } -# PLT-NEXT: Section { -# PLT-NEXT: Index: 6 -# PLT-NEXT: Name: .rel.plt (40) -# PLT-NEXT: Type: SHT_REL (0x9) -# PLT-NEXT: Flags [ (0x2) -# PLT-NEXT: SHF_ALLOC (0x2) -# PLT-NEXT: ] -# PLT-NEXT: Address: 0x4010A8 -# PLT-NEXT: Offset: 0x10A8 -# PLT-NEXT: Size: 16 -# PLT-NEXT: Link: 3 -# PLT-NEXT: Info: 0 -# PLT-NEXT: AddressAlignment: 4 -# PLT-NEXT: EntrySize: 8 -# PLT-NEXT: } -# PLT-NEXT: Section { -# PLT-NEXT: Index: 7 -# PLT-NEXT: Name: .plt (49) -# PLT-NEXT: Type: SHT_PROGBITS (0x1) -# PLT-NEXT: Flags [ (0x6) -# PLT-NEXT: SHF_ALLOC (0x2) -# PLT-NEXT: SHF_EXECINSTR (0x4) -# PLT-NEXT: ] -# PLT-NEXT: Address: 0x4010C0 -# PLT-NEXT: Offset: 0x10C0 -# PLT-NEXT: Size: 48 -# PLT-NEXT: Link: 0 -# PLT-NEXT: Info: 0 -# PLT-NEXT: AddressAlignment: 16 -# PLT-NEXT: EntrySize: 0 -# PLT-NEXT: } - -# PLT: Relocations [ -# PLT-NEXT: Section (5) .rel.dyn { -# PLT-NEXT: 0x400120 R_MIPS_REL32 T1 0x0 -# PLT-NEXT: } -# PLT-NEXT: Section (6) .rel.plt { -# PLT-NEXT: 0x403008 R_MIPS_JUMP_SLOT T2 0x0 -# PLT-NEXT: 0x40300C R_MIPS_JUMP_SLOT T3 0x0 -# PLT-NEXT: } -# PLT-NEXT: ] - -# PLT: DynamicSymbols [ -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: @ (0) -# PLT-NEXT: Value: 0x0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Local (0x0) -# PLT-NEXT: Type: None (0x0) -# PLT-NEXT: Other: 0 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T2@ (4) -# PLT-NEXT: Value: 0x4010D9 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 8 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T3@ (7) -# PLT-NEXT: Value: 0x4010E5 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 8 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T1@ (1) -# PLT-NEXT: Value: 0x0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 0 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: T3 - Section: .text - Type: STT_FUNC - Value: 0x8 - Size: 4 - -# o.o ---- -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x14 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_EXECINSTR, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - # There is no branch relocation for T1. - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_32 - # The R_MIPS_32 relocation for T2 might produce R_MIPS_REL32 ... - - Offset: 0x04 - Symbol: T2 - Type: R_MIPS_32 - # ... but R_MICROMIPS_26_S1 creates PLT entry - # and makes R_MIPS_REL32 redundant. - - Offset: 0x08 - Symbol: T2 - Type: R_MICROMIPS_26_S1 - # Create PLT entry for T3 symbol. - - Offset: 0x0c - Symbol: T3 - Type: R_MICROMIPS_26_S1 - # Take in account existing PLT entry and do not create R_MIPS_REL32. - - Offset: 0x10 - Symbol: T3 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 0x14 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 - Type: STT_FUNC - - Name: T2 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC -... diff --git a/test/elf/Mips/rel-dynamic-04.test b/test/elf/Mips/rel-dynamic-04.test deleted file mode 100644 index 5b5bcce01cd8..000000000000 --- a/test/elf/Mips/rel-dynamic-04.test +++ /dev/null @@ -1,206 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are symbols defined in the shared object. -# c) Relocations modify a writable section. -# d) The first symbol is referenced by R_MIPS32 relocation only -# e) The second symbol is referenced by R_MIPS_32 and R_MIPS26 relocations. -# f) The third symbol is referenced by R_MIPS26 and R_MIPS_32 relocations. -# Check: -# a) There should be the only R_MIPS_REL32 relocation. -# b) Linker creates a couple of PLT entry for both symbols referenced -# by the R_MIPS_26 branch relocation. -# c) STO_MIPS_PLT flag in the dynamic symbol table for symbols require -# a pointer equality. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dt -r -s %t.exe | FileCheck -check-prefix=PLT %s - -# PLT: Section { -# PLT: Index: 5 -# PLT-NEXT: Name: .rel.dyn (31) -# PLT-NEXT: Type: SHT_REL (0x9) -# PLT-NEXT: Flags [ (0x2) -# PLT-NEXT: SHF_ALLOC (0x2) -# PLT-NEXT: ] -# PLT-NEXT: Address: 0x40109C -# PLT-NEXT: Offset: 0x109C -# PLT-NEXT: Size: 8 -# PLT-NEXT: Link: 3 -# PLT-NEXT: Info: 0 -# PLT-NEXT: AddressAlignment: 4 -# PLT-NEXT: EntrySize: 8 -# PLT-NEXT: } -# PLT-NEXT: Section { -# PLT-NEXT: Index: 6 -# PLT-NEXT: Name: .rel.plt (40) -# PLT-NEXT: Type: SHT_REL (0x9) -# PLT-NEXT: Flags [ (0x2) -# PLT-NEXT: SHF_ALLOC (0x2) -# PLT-NEXT: ] -# PLT-NEXT: Address: 0x4010A4 -# PLT-NEXT: Offset: 0x10A4 -# PLT-NEXT: Size: 16 -# PLT-NEXT: Link: 3 -# PLT-NEXT: Info: 0 -# PLT-NEXT: AddressAlignment: 4 -# PLT-NEXT: EntrySize: 8 -# PLT-NEXT: } -# PLT-NEXT: Section { -# PLT-NEXT: Index: 7 -# PLT-NEXT: Name: .plt (49) -# PLT-NEXT: Type: SHT_PROGBITS (0x1) -# PLT-NEXT: Flags [ (0x6) -# PLT-NEXT: SHF_ALLOC (0x2) -# PLT-NEXT: SHF_EXECINSTR (0x4) -# PLT-NEXT: ] -# PLT-NEXT: Address: 0x4010C0 -# PLT-NEXT: Offset: 0x10C0 -# PLT-NEXT: Size: 64 -# PLT-NEXT: Link: 0 -# PLT-NEXT: Info: 0 -# PLT-NEXT: AddressAlignment: 16 -# PLT-NEXT: EntrySize: 0 -# PLT-NEXT: } - -# PLT: Relocations [ -# PLT-NEXT: Section (5) .rel.dyn { -# PLT-NEXT: 0x400120 R_MIPS_REL32 T1 0x0 -# PLT-NEXT: } -# PLT-NEXT: Section (6) .rel.plt { -# PLT-NEXT: 0x403008 R_MIPS_JUMP_SLOT T2 0x0 -# PLT-NEXT: 0x40300C R_MIPS_JUMP_SLOT T3 0x0 -# PLT-NEXT: } -# PLT-NEXT: ] - -# PLT: DynamicSymbols [ -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: @ (0) -# PLT-NEXT: Value: 0x0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Local (0x0) -# PLT-NEXT: Type: None (0x0) -# PLT-NEXT: Other: 0 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T2@ (4) -# PLT-NEXT: Value: 0x4010E0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 8 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T3@ (7) -# PLT-NEXT: Value: 0x4010F0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 8 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T1@ (1) -# PLT-NEXT: Value: 0x0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 0 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: T3 - Section: .text - Type: STT_FUNC - Value: 0x8 - Size: 4 - -# o.o ---- -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_EXECINSTR, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - # There is no branch relocation for T1. - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_32 - # The R_MIPS_32 relocation for T2 might produce R_MIPS_REL32 ... - - Offset: 0x00 - Symbol: T2 - Type: R_MIPS_32 - # ... but R_MIPS_26 creates PLT entry and makes R_MIPS_REL32 redundant. - - Offset: 0x04 - Symbol: T2 - Type: R_MIPS_26 - # Create PLT entry for T3 symbol. - - Offset: 0x00 - Symbol: T3 - Type: R_MIPS_26 - # Take in account existing PLT entry and do not create R_MIPS_REL32. - - Offset: 0x04 - Symbol: T3 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: T2 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC -... diff --git a/test/elf/Mips/rel-dynamic-05-micro.test b/test/elf/Mips/rel-dynamic-05-micro.test deleted file mode 100644 index d1c87076b596..000000000000 --- a/test/elf/Mips/rel-dynamic-05-micro.test +++ /dev/null @@ -1,192 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are symbols defined in the shared object. -# c) Relocations modify a read-only section. -# d) The first symbol is referenced by R_MIPS32 relocation only -# e) The second symbol is referenced by R_MIPS_32 -# and R_MICROMIPS_26_S1 relocations. -# f) The third symbol is referenced by R_MICROMIPS_26_S1 -# and R_MIPS_32 relocations. -# Check: -# a) There should be no R_MIPS_REL32 relocations. -# b) Linker creates PLT entries for all three relocations. -# c) STO_MIPS_PLT flag in the dynamic symbol table for symbols require -# a pointer equality. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dt -r -s %t.exe | FileCheck -check-prefix=PLT %s - -# PLT: Section { -# PLT: Index: 5 -# PLT-NEXT: Name: .rel.plt (31) -# PLT-NEXT: Type: SHT_REL (0x9) -# PLT-NEXT: Flags [ (0x2) -# PLT-NEXT: SHF_ALLOC (0x2) -# PLT-NEXT: ] -# PLT-NEXT: Address: 0x400194 -# PLT-NEXT: Offset: 0x194 -# PLT-NEXT: Size: 24 -# PLT-NEXT: Link: 3 -# PLT-NEXT: Info: 0 -# PLT-NEXT: AddressAlignment: 4 -# PLT-NEXT: EntrySize: 8 -# PLT-NEXT: } -# PLT-NEXT: Section { -# PLT-NEXT: Index: 6 -# PLT-NEXT: Name: .plt (40) -# PLT-NEXT: Type: SHT_PROGBITS (0x1) -# PLT-NEXT: Flags [ (0x6) -# PLT-NEXT: SHF_ALLOC (0x2) -# PLT-NEXT: SHF_EXECINSTR (0x4) -# PLT-NEXT: ] -# PLT-NEXT: Address: 0x4001B0 -# PLT-NEXT: Offset: 0x1B0 -# PLT-NEXT: Size: 60 -# PLT-NEXT: Link: 0 -# PLT-NEXT: Info: 0 -# PLT-NEXT: AddressAlignment: 16 -# PLT-NEXT: EntrySize: 0 -# PLT-NEXT: } - -# PLT: Relocations [ -# PLT-NEXT: Section (5) .rel.plt { -# PLT-NEXT: 0x402008 R_MIPS_JUMP_SLOT T1 0x0 -# PLT-NEXT: 0x40200C R_MIPS_JUMP_SLOT T2 0x0 -# PLT-NEXT: 0x402010 R_MIPS_JUMP_SLOT T3 0x0 -# PLT-NEXT: } -# PLT-NEXT: ] - -# PLT: DynamicSymbols [ -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: @ (0) -# PLT-NEXT: Value: 0x0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Local (0x0) -# PLT-NEXT: Type: None (0x0) -# PLT-NEXT: Other: 0 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T1@ (1) -# PLT-NEXT: Value: 0x4001C9 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 8 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T2@ (4) -# PLT-NEXT: Value: 0x4001D5 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 8 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T3@ (7) -# PLT-NEXT: Value: 0x4001E1 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 8 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: T3 - Section: .text - Type: STT_FUNC - Value: 0x8 - Size: 4 - -# o.o ---- -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x14 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - # There is no branch relocation for T1. - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_32 - # The R_MIPS_32 relocation for T2 might produce R_MIPS_REL32 ... - - Offset: 0x04 - Symbol: T2 - Type: R_MIPS_32 - # ... but R_MICROMIPS_26_S1 creates PLT entry and makes R_MIPS_REL32 redundant. - - Offset: 0x08 - Symbol: T2 - Type: R_MICROMIPS_26_S1 - # Create PLT entry for T3 symbol. - - Offset: 0x0C - Symbol: T3 - Type: R_MICROMIPS_26_S1 - # Take in account existing PLT entry and do not create R_MIPS_REL32. - - Offset: 0x10 - Symbol: T3 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 0x14 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 - Type: STT_FUNC - - Name: T2 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC -... diff --git a/test/elf/Mips/rel-dynamic-05.test b/test/elf/Mips/rel-dynamic-05.test deleted file mode 100644 index 3bfbd3f6efdb..000000000000 --- a/test/elf/Mips/rel-dynamic-05.test +++ /dev/null @@ -1,188 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are symbols defined in the shared object. -# c) Relocations modify a read-only section. -# d) The first symbol is referenced by R_MIPS32 relocation only -# e) The second symbol is referenced by R_MIPS_32 and R_MIPS26 relocations. -# f) The third symbol is referenced by R_MIPS26 and R_MIPS_32 relocations. -# Check: -# a) There should be no R_MIPS_REL32 relocations. -# b) Linker creates PLT entries for all three relocations. -# c) STO_MIPS_PLT flag in the dynamic symbol table for symbols require -# a pointer equality. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dt -r -s %t.exe | FileCheck -check-prefix=PLT %s - -# PLT: Section { -# PLT: Index: 5 -# PLT-NEXT: Name: .rel.plt (31) -# PLT-NEXT: Type: SHT_REL (0x9) -# PLT-NEXT: Flags [ (0x2) -# PLT-NEXT: SHF_ALLOC (0x2) -# PLT-NEXT: ] -# PLT-NEXT: Address: 0x400190 -# PLT-NEXT: Offset: 0x190 -# PLT-NEXT: Size: 24 -# PLT-NEXT: Link: 3 -# PLT-NEXT: Info: 0 -# PLT-NEXT: AddressAlignment: 4 -# PLT-NEXT: EntrySize: 8 -# PLT-NEXT: } -# PLT-NEXT: Section { -# PLT-NEXT: Index: 6 -# PLT-NEXT: Name: .plt (40) -# PLT-NEXT: Type: SHT_PROGBITS (0x1) -# PLT-NEXT: Flags [ (0x6) -# PLT-NEXT: SHF_ALLOC (0x2) -# PLT-NEXT: SHF_EXECINSTR (0x4) -# PLT-NEXT: ] -# PLT-NEXT: Address: 0x4001B0 -# PLT-NEXT: Offset: 0x1B0 -# PLT-NEXT: Size: 80 -# PLT-NEXT: Link: 0 -# PLT-NEXT: Info: 0 -# PLT-NEXT: AddressAlignment: 16 -# PLT-NEXT: EntrySize: 0 -# PLT-NEXT: } - -# PLT: Relocations [ -# PLT-NEXT: Section (5) .rel.plt { -# PLT-NEXT: 0x402008 R_MIPS_JUMP_SLOT T1 0x0 -# PLT-NEXT: 0x40200C R_MIPS_JUMP_SLOT T2 0x0 -# PLT-NEXT: 0x402010 R_MIPS_JUMP_SLOT T3 0x0 -# PLT-NEXT: } -# PLT-NEXT: ] - -# PLT: DynamicSymbols [ -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: @ (0) -# PLT-NEXT: Value: 0x0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Local (0x0) -# PLT-NEXT: Type: None (0x0) -# PLT-NEXT: Other: 0 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T1@ (1) -# PLT-NEXT: Value: 0x4001D0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 8 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T2@ (4) -# PLT-NEXT: Value: 0x4001E0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 8 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: Symbol { -# PLT-NEXT: Name: T3@ (7) -# PLT-NEXT: Value: 0x4001F0 -# PLT-NEXT: Size: 0 -# PLT-NEXT: Binding: Global (0x1) -# PLT-NEXT: Type: Function (0x2) -# PLT-NEXT: Other: 8 -# PLT-NEXT: Section: Undefined (0x0) -# PLT-NEXT: } -# PLT-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: T3 - Section: .text - Type: STT_FUNC - Value: 0x8 - Size: 4 - -# o.o ---- -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - # There is no branch relocation for T1. - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_32 - # The R_MIPS_32 relocation for T2 might produce R_MIPS_REL32 ... - - Offset: 0x00 - Symbol: T2 - Type: R_MIPS_32 - # ... but R_MIPS_26 creates PLT entry and makes R_MIPS_REL32 redundant. - - Offset: 0x04 - Symbol: T2 - Type: R_MIPS_26 - # Create PLT entry for T3 symbol. - - Offset: 0x00 - Symbol: T3 - Type: R_MIPS_26 - # Take in account existing PLT entry and do not create R_MIPS_REL32. - - Offset: 0x04 - Symbol: T3 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: T2 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC -... diff --git a/test/elf/Mips/rel-dynamic-06-64.test b/test/elf/Mips/rel-dynamic-06-64.test deleted file mode 100644 index c153eb22af4c..000000000000 --- a/test/elf/Mips/rel-dynamic-06-64.test +++ /dev/null @@ -1,101 +0,0 @@ -# Conditions: -# a) Linking a shared library. -# b) The first relocation modifies a regular .text section. -# c) The second relocation modifies a .pdr section without SHF_ALLOC flag. -# Check: -# a) There should be no PLT entries. -# b) Linker creates a single R_MIPS_REL32 relocation. -# -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mips64el -shared -o %t.so %t.o -# RUN: llvm-readobj -dt -r -s %t.so | FileCheck -check-prefix=CHECK %s - -# CHECK: Sections [ -# CHECK: Section { -# CHECK-NOT: Name: .plt ({{[0-9]+}}) - -# CHECK: Relocations [ -# CHECK-NEXT: Section (4) .rel.dyn { -# CHECK-NEXT: 0x170 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE T0 0x0 -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSymbols [ -# 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: T1@ (4) -# CHECK-NEXT: Value: 0x174 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .text (0x5) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T0@ (1) -# CHECK-NEXT: Value: 0x170 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .text (0x5) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 8 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_RELA - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0 - Symbol: T0 - Type: R_MIPS_64 - -- Name: .pdr - Type: SHT_PROGBITS - Size: 8 - AddressAlign: 16 - -- Name: .rel.pdr - Type: SHT_RELA - Info: .pdr - AddressAlign: 4 - Relocations: - - Offset: 0 - Symbol: T1 - Type: R_MIPS_64 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 4 - Size: 4 diff --git a/test/elf/Mips/rel-dynamic-06.test b/test/elf/Mips/rel-dynamic-06.test deleted file mode 100644 index 433eb5fadf59..000000000000 --- a/test/elf/Mips/rel-dynamic-06.test +++ /dev/null @@ -1,103 +0,0 @@ -# Conditions: -# a) Linking a shared library. -# b) The first relocation modifies a regular .text section. -# c) The second relocation modifies a .pdr section without SHF_ALLOC flag. -# Check: -# a) There should be no PLT entries. -# b) Linker creates a single R_MIPS_REL32 relocation. -# -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -shared -o %t1-so %t-obj -# RUN: llvm-readobj -dt -r -s %t1-so | FileCheck -check-prefix=PLT1 %s - -# PLT1-SYM: Sections [ -# PLT1-SYM: Section { -# PLT1-SYM-NOT: Name: .plt ({{[0-9]+}}) - -# PLT1: Relocations [ -# PLT1-NEXT: Section (4) .rel.dyn { -# PLT1-NEXT: 0x100 R_MIPS_REL32 T0 0x0 -# PLT1-NEXT: } -# PLT1-NEXT: ] - -# PLT1: DynamicSymbols [ -# PLT1-NEXT: Symbol { -# PLT1-NEXT: Name: @ (0) -# PLT1-NEXT: Value: 0x0 -# PLT1-NEXT: Size: 0 -# PLT1-NEXT: Binding: Local (0x0) -# PLT1-NEXT: Type: None (0x0) -# PLT1-NEXT: Other: 0 -# PLT1-NEXT: Section: Undefined (0x0) -# PLT1-NEXT: } -# PLT1-NEXT: Symbol { -# PLT1-NEXT: Name: T1@ (4) -# PLT1-NEXT: Value: 0x104 -# PLT1-NEXT: Size: 4 -# PLT1-NEXT: Binding: Global (0x1) -# PLT1-NEXT: Type: Function (0x2) -# PLT1-NEXT: Other: 0 -# PLT1-NEXT: Section: .text (0x5) -# PLT1-NEXT: } -# PLT1-NEXT: Symbol { -# PLT1-NEXT: Name: T0@ (1) -# PLT1-NEXT: Value: 0x100 -# PLT1-NEXT: Size: 4 -# PLT1-NEXT: Binding: Global (0x1) -# PLT1-NEXT: Type: Function (0x2) -# PLT1-NEXT: Other: 0 -# PLT1-NEXT: Section: .text (0x5) -# PLT1-NEXT: } -# PLT1-NEXT: ] - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T0 - Type: R_MIPS_32 - -- Name: .pdr - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [] - -- Name: .rel.pdr - Type: SHT_REL - Info: .pdr - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 diff --git a/test/elf/Mips/rel-dynamic-07-64.test b/test/elf/Mips/rel-dynamic-07-64.test deleted file mode 100644 index f7a1c4425823..000000000000 --- a/test/elf/Mips/rel-dynamic-07-64.test +++ /dev/null @@ -1,261 +0,0 @@ -# Conditions: -# a) Linking a shared library. -# b) There ars multiple R_MIPS_64 relocations with various targets. -# Check: -# a) Emitting of R_MIPS_REL32 relocations. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mips64el -shared -o %t1.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mips64el -shared --noinhibit-exec \ -# RUN: -o %t2.so %t-o.o %t1.so -# RUN: llvm-readobj -dt -r -sections %t2.so | FileCheck %s - -# CHECK: Sections [ -# CHECK: Section { -# CHECK-NOT: Name: .plt ({{[0-9]+}}) - -# CHECK: Relocations [ -# CHECK-NEXT: Section (4) .rel.dyn { -# CHECK-NEXT: 0x2000 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE T0 0x0 -# CHECK-NEXT: 0x2000 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE T4 0x0 -# CHECK-NEXT: 0x2000 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE D2 0x0 -# CHECK-NEXT: 0x2004 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE T1 0x0 -# CHECK-NEXT: 0x2008 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE T2 0x0 -# CHECK-NEXT: 0x2004 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE D0 0x0 -# CHECK-NEXT: 0x2008 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE D1 0x0 -# CHECK-NEXT: 0x2004 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE D4 0x0 -# CHECK-NEXT: 0x2008 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE U1 0x0 -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSymbols [ -# 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: T0@ (1) -# CHECK-NEXT: Value: 0x324 -# CHECK-NEXT: Size: 8 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .text (0x5) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T4@ (7) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: None (0x0) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D2@ (25) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T1@ (16) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T2@ (19) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D0@ (4) -# CHECK-NEXT: Value: 0x2004 -# CHECK-NEXT: Size: 8 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .data (0x8) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D1@ (22) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D4@ (10) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: None (0x0) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: U1@ (13) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: None (0x0) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.data - Type: SHT_RELA - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 # T0 is a defined function - Symbol: T0 - Type: R_MIPS_64 - - Offset: 0x04 # T1 is a function from shared lib - Symbol: T1 - Type: R_MIPS_64 - - Offset: 0x08 # T2 has unknown type and defined in shared lib - Symbol: T2 - Type: R_MIPS_64 - - Offset: 0x00 # T4 is an undefined function - Symbol: T4 - Type: R_MIPS_64 - - Offset: 0x04 # D0 is a defined data object - Symbol: D0 - Type: R_MIPS_64 - - Offset: 0x08 # D1 is a data object from shared lib - Symbol: D1 - Type: R_MIPS_64 - - Offset: 0x00 # D2 has unknown type and defined in shared lib - Symbol: D2 - Type: R_MIPS_64 - - Offset: 0x04 # D4 is an undefined data object - Symbol: D4 - Type: R_MIPS_64 - - Offset: 0x08 # U1 is undefined and has unknown type - Symbol: U1 - Type: R_MIPS_64 - -Symbols: - Local: - - Name: LT0 - Section: .text - Type: STT_FUNC - Value: 0 - Size: 4 - - Name: LD0 - Section: .data - Type: STT_OBJECT - Value: 0 - Size: 4 - - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: T2 - - Name: T4 - Type: STT_FUNC - - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - - Name: D4 - Type: STT_OBJECT - - Name: U1 -... diff --git a/test/elf/Mips/rel-dynamic-07.test b/test/elf/Mips/rel-dynamic-07.test deleted file mode 100644 index fc163b9a12f7..000000000000 --- a/test/elf/Mips/rel-dynamic-07.test +++ /dev/null @@ -1,276 +0,0 @@ -# Conditions: -# a) Linking a shared library. -# b) There ars multiple R_MIPS_32 relocations with various targets. -# Check: -# a) Emitting of R_MIPS_REL32 relocations. -# b) There should be no R_MIPS_REL32 relocations for the _gp_disp symbol. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t1.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -shared --noinhibit-exec \ -# RUN: -o %t2.so %t-o.o %t1.so -# RUN: llvm-readobj -dt -r -sections %t2.so | FileCheck %s - -# CHECK: Sections [ -# CHECK: Section { -# CHECK-NOT: Name: .plt ({{[0-9]+}}) - -# CHECK: Relocations [ -# CHECK-NEXT: Section (4) .rel.dyn { -# CHECK-NEXT: 0x2000 R_MIPS_REL32 T0 0x0 -# CHECK-NEXT: 0x2000 R_MIPS_REL32 T4 0x0 -# CHECK-NEXT: 0x2000 R_MIPS_REL32 D2 0x0 -# CHECK-NEXT: 0x2004 R_MIPS_REL32 T1 0x0 -# CHECK-NEXT: 0x2008 R_MIPS_REL32 T2 0x0 -# CHECK-NEXT: 0x2004 R_MIPS_REL32 D0 0x0 -# CHECK-NEXT: 0x2008 R_MIPS_REL32 D1 0x0 -# CHECK-NEXT: 0x2004 R_MIPS_REL32 D4 0x0 -# CHECK-NEXT: 0x2008 R_MIPS_REL32 U1 0x0 -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSymbols [ -# 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: T0@ (1) -# CHECK-NEXT: Value: 0x214 -# CHECK-NEXT: Size: 8 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .text (0x5) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T4@ (7) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: None (0x0) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D2@ (25) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T1@ (16) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T2@ (19) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D0@ (4) -# CHECK-NEXT: Value: 0x2004 -# CHECK-NEXT: Size: 8 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .data (0x8) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D1@ (22) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D4@ (10) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: None (0x0) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: U1@ (13) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: None (0x0) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: _gp_disp - Type: R_MIPS_HI16 - - Offset: 0x00 - Symbol: _gp_disp - Type: R_MIPS_LO16 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 # T0 is a defined function - Symbol: T0 - Type: R_MIPS_32 - - Offset: 0x04 # T1 is a function from shared lib - Symbol: T1 - Type: R_MIPS_32 - - Offset: 0x08 # T2 has unknown type and defined in shared lib - Symbol: T2 - Type: R_MIPS_32 - - Offset: 0x00 # T4 is an undefined function - Symbol: T4 - Type: R_MIPS_32 - - Offset: 0x04 # D0 is a defined data object - Symbol: D0 - Type: R_MIPS_32 - - Offset: 0x08 # D1 is a data object from shared lib - Symbol: D1 - Type: R_MIPS_32 - - Offset: 0x00 # D2 has unknown type and defined in shared lib - Symbol: D2 - Type: R_MIPS_32 - - Offset: 0x04 # D4 is an undefined data object - Symbol: D4 - Type: R_MIPS_32 - - Offset: 0x08 # U1 is undefined and has unknown type - Symbol: U1 - Type: R_MIPS_32 - -Symbols: - Local: - - Name: LT0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: LD0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Global: - - Name: _gp_disp - Type: STT_OBJECT - - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: T2 - - Name: T4 - Type: STT_FUNC - - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - - Name: D4 - Type: STT_OBJECT - - Name: U1 diff --git a/test/elf/Mips/rel-dynamic-08-64.test b/test/elf/Mips/rel-dynamic-08-64.test deleted file mode 100644 index d845d7407c1c..000000000000 --- a/test/elf/Mips/rel-dynamic-08-64.test +++ /dev/null @@ -1,233 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) There ars multiple R_MIPS_64/R_MIPS_HI16/R_MIPS_LO16 relocations -# with various targets. -# Check: -# a) Emitting of R_MIPS_REL32 relocations. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mips64el -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mips64el -e T0 --noinhibit-exec \ -# RUN: -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dt -r -sections %t.exe | FileCheck %s - -# CHECK: Sections [ -# CHECK: Section { -# CHECK-NOT: Name: .plt ({{[0-9]+}}) - -# CHECK: Relocations [ -# CHECK-NEXT: Section (5) .rel.dyn { -# CHECK-NEXT: 0x120002000 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE D2 0x0 -# CHECK-NEXT: 0x120002004 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE T1 0x0 -# CHECK-NEXT: 0x120002008 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE T2 0x0 -# CHECK-NEXT: 0x120002008 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE D1 0x0 -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSymbols [ -# 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: D2@ (10) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T1@ (1) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T2@ (4) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D1@ (7) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_RELA - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: _gp_disp - Type: R_MIPS_HI16 - - Offset: 0x00 - Symbol: _gp_disp - Type: R_MIPS_LO16 - -- Name: .rel.data - Type: SHT_RELA - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 # LT0 is a locally defined function - Symbol: LT0 - Type: R_MIPS_64 - - Offset: 0x00 # LD0 is a locally defined data object - Symbol: LD0 - Type: R_MIPS_64 - - Offset: 0x00 # T0 is a defined function - Symbol: T0 - Type: R_MIPS_64 - - Offset: 0x04 # T1 is a function from shared lib - Symbol: T1 - Type: R_MIPS_64 - - Offset: 0x08 # T2 has unknown type and defined in shared lib - Symbol: T2 - Type: R_MIPS_64 - - Offset: 0x00 # T4 is an undefined function - Symbol: T4 - Type: R_MIPS_64 - - Offset: 0x04 # D0 is a defined data object - Symbol: D0 - Type: R_MIPS_64 - - Offset: 0x08 # D1 is a data object from shared lib - Symbol: D1 - Type: R_MIPS_64 - - Offset: 0x00 # D2 has unknown type and defined in shared lib - Symbol: D2 - Type: R_MIPS_64 - - Offset: 0x04 # D4 is an undefined data object - Symbol: D4 - Type: R_MIPS_64 - - Offset: 0x08 # U1 is undefined and has unknown type - Symbol: U1 - Type: R_MIPS_64 - -Symbols: - Local: - - Name: LT0 - Section: .text - Type: STT_FUNC - Value: 0 - Size: 4 - - Name: LD0 - Section: .data - Type: STT_OBJECT - Value: 0 - Size: 4 - - Global: - - Name: _gp_disp - Type: STT_OBJECT - - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: T2 - - Name: T4 - Type: STT_FUNC - - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - - Name: D4 - Type: STT_OBJECT - - Name: U1 -... diff --git a/test/elf/Mips/rel-dynamic-08-micro.test b/test/elf/Mips/rel-dynamic-08-micro.test deleted file mode 100644 index de0038956086..000000000000 --- a/test/elf/Mips/rel-dynamic-08-micro.test +++ /dev/null @@ -1,236 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) There ars multiple R_MIPS_32/R_MICROMIPS_HI16/R_MICROMIPS_LO16 -# relocations with various targets. -# Check: -# a) Emitting of R_MIPS_REL32 relocations. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 --noinhibit-exec \ -# RUN: -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dt -r -sections %t.exe | FileCheck %s - -# CHECK: Sections [ -# CHECK: Section { -# CHECK-NOT: Name: .plt ({{[0-9]+}}) - -# CHECK: Relocations [ -# CHECK-NEXT: Section (5) .rel.dyn { -# CHECK-NEXT: 0x402000 R_MIPS_REL32 D2 0x0 -# CHECK-NEXT: 0x402004 R_MIPS_REL32 T1 0x0 -# CHECK-NEXT: 0x402008 R_MIPS_REL32 T2 0x0 -# CHECK-NEXT: 0x402008 R_MIPS_REL32 D1 0x0 -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSymbols [ -# 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: D2@ (10) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T1@ (1) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T2@ (4) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D1@ (7) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: _gp_disp - Type: R_MICROMIPS_HI16 - - Offset: 0x00 - Symbol: _gp_disp - Type: R_MICROMIPS_LO16 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 # LT0 is a locally defined function - Symbol: LT0 - Type: R_MIPS_32 - - Offset: 0x00 # LD0 is a locally defined data object - Symbol: LD0 - Type: R_MIPS_32 - - Offset: 0x00 # T0 is a defined function - Symbol: T0 - Type: R_MIPS_32 - - Offset: 0x04 # T1 is a function from shared lib - Symbol: T1 - Type: R_MIPS_32 - - Offset: 0x08 # T2 has unknown type and defined in shared lib - Symbol: T2 - Type: R_MIPS_32 - - Offset: 0x00 # T4 is an undefined function - Symbol: T4 - Type: R_MIPS_32 - - Offset: 0x04 # D0 is a defined data object - Symbol: D0 - Type: R_MIPS_32 - - Offset: 0x08 # D1 is a data object from shared lib - Symbol: D1 - Type: R_MIPS_32 - - Offset: 0x00 # D2 has unknown type and defined in shared lib - Symbol: D2 - Type: R_MIPS_32 - - Offset: 0x04 # D4 is an undefined data object - Symbol: D4 - Type: R_MIPS_32 - - Offset: 0x08 # U1 is undefined and has unknown type - Symbol: U1 - Type: R_MIPS_32 - -Symbols: - Local: - - Name: LT0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: LD0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Global: - - Name: _gp_disp - Type: STT_OBJECT - - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 8 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 - Type: STT_FUNC - - Name: T2 - - Name: T4 - Type: STT_FUNC - - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - - Name: D4 - Type: STT_OBJECT - - Name: U1 -... diff --git a/test/elf/Mips/rel-dynamic-08.test b/test/elf/Mips/rel-dynamic-08.test deleted file mode 100644 index 62f4dc278b05..000000000000 --- a/test/elf/Mips/rel-dynamic-08.test +++ /dev/null @@ -1,233 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) There ars multiple R_MIPS_32/R_MIPS_HI16/R_MIPS_LO16 relocations -# with various targets. -# Check: -# a) Emitting of R_MIPS_REL32 relocations. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 --noinhibit-exec \ -# RUN: -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dt -r -sections %t.exe | FileCheck %s - -# CHECK: Sections [ -# CHECK: Section { -# CHECK-NOT: Name: .plt ({{[0-9]+}}) - -# CHECK: Relocations [ -# CHECK-NEXT: Section (5) .rel.dyn { -# CHECK-NEXT: 0x402000 R_MIPS_REL32 D2 0x0 -# CHECK-NEXT: 0x402004 R_MIPS_REL32 T1 0x0 -# CHECK-NEXT: 0x402008 R_MIPS_REL32 T2 0x0 -# CHECK-NEXT: 0x402008 R_MIPS_REL32 D1 0x0 -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# CHECK: DynamicSymbols [ -# 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: D2@ (10) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T1@ (1) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: T2@ (4) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Function (0x2) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: D1@ (7) -# CHECK-NEXT: Value: 0x0 -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Binding: Global (0x1) -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: Undefined (0x0) -# CHECK-NEXT: } -# CHECK-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: _gp_disp - Type: R_MIPS_HI16 - - Offset: 0x00 - Symbol: _gp_disp - Type: R_MIPS_LO16 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 # LT0 is a locally defined function - Symbol: LT0 - Type: R_MIPS_32 - - Offset: 0x00 # LD0 is a locally defined data object - Symbol: LD0 - Type: R_MIPS_32 - - Offset: 0x00 # T0 is a defined function - Symbol: T0 - Type: R_MIPS_32 - - Offset: 0x04 # T1 is a function from shared lib - Symbol: T1 - Type: R_MIPS_32 - - Offset: 0x08 # T2 has unknown type and defined in shared lib - Symbol: T2 - Type: R_MIPS_32 - - Offset: 0x00 # T4 is an undefined function - Symbol: T4 - Type: R_MIPS_32 - - Offset: 0x04 # D0 is a defined data object - Symbol: D0 - Type: R_MIPS_32 - - Offset: 0x08 # D1 is a data object from shared lib - Symbol: D1 - Type: R_MIPS_32 - - Offset: 0x00 # D2 has unknown type and defined in shared lib - Symbol: D2 - Type: R_MIPS_32 - - Offset: 0x04 # D4 is an undefined data object - Symbol: D4 - Type: R_MIPS_32 - - Offset: 0x08 # U1 is undefined and has unknown type - Symbol: U1 - Type: R_MIPS_32 - -Symbols: - Local: - - Name: LT0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: LD0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Global: - - Name: _gp_disp - Type: STT_OBJECT - - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: T2 - - Name: T4 - Type: STT_FUNC - - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - - Name: D4 - Type: STT_OBJECT - - Name: U1 -... diff --git a/test/elf/Mips/rel-dynamic-09-micro.test b/test/elf/Mips/rel-dynamic-09-micro.test deleted file mode 100644 index 07ffce9eb074..000000000000 --- a/test/elf/Mips/rel-dynamic-09-micro.test +++ /dev/null @@ -1,109 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are undefined symbols. -# Check: -# a) There should be no dynamic relocations. -# b) There should be no PLT entries. -# -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel --noinhibit-exec -e T0 -o %t2-exe %t-obj -# RUN: llvm-readobj -dt -r -s %t2-exe | FileCheck -check-prefix=PLT-SYM %s - -# PLT-SYM: Sections [ -# PLT-SYM: Section { -# PLT-SYM-NOT: Name: .plt ({{[0-9]+}}) - -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: ] - -# PLT-SYM: DynamicSymbols [ -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: @ (0) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Local (0x0) -# PLT-SYM-NEXT: Type: None (0x0) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T3 - Type: R_MICROMIPS_26_S1 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_HI16 - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_LO16 - - Offset: 0x04 - Symbol: T2 - Type: R_MIPS_32 - - - Offset: 0x04 - Symbol: D1 - Type: R_MICROMIPS_HI16 - - Offset: 0x04 - Symbol: D1 - Type: R_MICROMIPS_LO16 - - Offset: 0x04 - Symbol: D2 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 - Type: STT_FUNC - - Name: T2 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - Type: STT_OBJECT diff --git a/test/elf/Mips/rel-dynamic-09.test b/test/elf/Mips/rel-dynamic-09.test deleted file mode 100644 index 18eeb9dd33d8..000000000000 --- a/test/elf/Mips/rel-dynamic-09.test +++ /dev/null @@ -1,107 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are undefined symbols. -# Check: -# a) There should be no dynamic relocations. -# b) There should be no PLT entries. -# -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel --noinhibit-exec -e T0 -o %t2-exe %t-obj -# RUN: llvm-readobj -dt -r -s %t2-exe | FileCheck -check-prefix=PLT-SYM %s - -# PLT-SYM: Sections [ -# PLT-SYM: Section { -# PLT-SYM-NOT: Name: .plt ({{[0-9]+}}) - -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: ] - -# PLT-SYM: DynamicSymbols [ -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: @ (0) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Local (0x0) -# PLT-SYM-NEXT: Type: None (0x0) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Content: "0000000000000000" - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T3 - Type: R_MIPS_26 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_HI16 - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_LO16 - - Offset: 0x04 - Symbol: T2 - Type: R_MIPS_32 - - - Offset: 0x04 - Symbol: D1 - Type: R_MIPS_HI16 - - Offset: 0x04 - Symbol: D1 - Type: R_MIPS_LO16 - - Offset: 0x04 - Symbol: D2 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: T2 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - Type: STT_OBJECT diff --git a/test/elf/Mips/rel-dynamic-10-micro.test b/test/elf/Mips/rel-dynamic-10-micro.test deleted file mode 100644 index 6b3f2af3db32..000000000000 --- a/test/elf/Mips/rel-dynamic-10-micro.test +++ /dev/null @@ -1,166 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are symbols defined in the other object. -# Check: -# a) There should be no dynamic relocations. -# b) There should be no PLT entries. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-o1.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o2.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o1.o %t-o2.o -# RUN: llvm-readobj -dt -r -s %t.exe | FileCheck -check-prefix=PLT-SYM %s - -# PLT-SYM: Sections [ -# PLT-SYM: Section { -# PLT-SYM-NOT: Name: .plt ({{[0-9]+}}) - -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: ] - -# PLT-SYM: DynamicSymbols [ -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: @ (0) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Local (0x0) -# PLT-SYM-NEXT: Type: None (0x0) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -# o1.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T3 - Section: .text - Type: STT_FUNC - Value: 0x8 - Size: 4 - Other: [ STO_MIPS_MICROMIPS ] - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# o2.o ---- -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, - EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T3 - Type: R_MICROMIPS_26_S1 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_HI16 - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_LO16 - - Offset: 0x04 - Symbol: T2 - Type: R_MIPS_32 - - - Offset: 0x04 - Symbol: D1 - Type: R_MICROMIPS_HI16 - - Offset: 0x04 - Symbol: D1 - Type: R_MICROMIPS_LO16 - - Offset: 0x04 - Symbol: D2 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 - Type: STT_FUNC - - Name: T2 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - Type: STT_OBJECT -... diff --git a/test/elf/Mips/rel-dynamic-10.test b/test/elf/Mips/rel-dynamic-10.test deleted file mode 100644 index 4df558167fc7..000000000000 --- a/test/elf/Mips/rel-dynamic-10.test +++ /dev/null @@ -1,160 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are symbols defined in the other object. -# Check: -# a) There should be no dynamic relocations. -# b) There should be no PLT entries. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-o1.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o2.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o1.o %t-o2.o -# RUN: llvm-readobj -dt -r -s %t.exe | FileCheck -check-prefix=PLT-SYM %s - -# PLT-SYM: Sections [ -# PLT-SYM: Section { -# PLT-SYM-NOT: Name: .plt ({{[0-9]+}}) - -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: ] - -# PLT-SYM: DynamicSymbols [ -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: @ (0) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Local (0x0) -# PLT-SYM-NEXT: Type: None (0x0) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -# o1.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: T3 - Section: .text - Type: STT_FUNC - Value: 0x8 - Size: 4 - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# o2.o ---- -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T3 - Type: R_MIPS_26 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_HI16 - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_LO16 - - Offset: 0x04 - Symbol: T2 - Type: R_MIPS_32 - - - Offset: 0x04 - Symbol: D1 - Type: R_MIPS_HI16 - - Offset: 0x04 - Symbol: D1 - Type: R_MIPS_LO16 - - Offset: 0x04 - Symbol: D2 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: T2 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - Type: STT_OBJECT -... diff --git a/test/elf/Mips/rel-dynamic-11.test b/test/elf/Mips/rel-dynamic-11.test deleted file mode 100644 index 20295396cd08..000000000000 --- a/test/elf/Mips/rel-dynamic-11.test +++ /dev/null @@ -1,110 +0,0 @@ -# Conditions: -# a) Linking a shared library. -# b) Relocations' targets are symbols defined in the other shared object. -# Check: -# a) Emitting R_MIPS_REL32 relocations for both symbols. -# b) There should be no PLT entries. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t1.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t2.so %t-o.o %t1.so -# RUN: llvm-readobj -dt -r -s %t2.so | FileCheck -check-prefix=PLT-SYM %s - -# PLT-SYM: Sections [ -# PLT-SYM: Section { -# PLT-SYM-NOT: Name: .plt ({{[0-9]+}}) -# -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: Section (4) .rel.dyn { -# PLT-SYM-NEXT: 0x150 R_MIPS_REL32 T1 0x0 -# PLT-SYM-NEXT: 0x2000 R_MIPS_REL32 T1 0x0 -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] -# -# PLT-SYM: Name: T1@ (7) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_32 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T1 - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 -... diff --git a/test/elf/Mips/rel-dynamic-12.test b/test/elf/Mips/rel-dynamic-12.test deleted file mode 100644 index 2a4061ab4035..000000000000 --- a/test/elf/Mips/rel-dynamic-12.test +++ /dev/null @@ -1,213 +0,0 @@ -# Conditions: -# a) Linking a non-shared executable file. -# b) Relocations' targets are symbols defined in the shared object. -# c) Relocations are R_MIPS_PCHI16 / R_MIPS_PCLO16. -# Check: -# a) Emitting R_MIPS_REL32, R_MIPS_COPY, R_MIPS_JUMP_SLOT relocations. -# b) STO_MIPS_PLT flag in the dynamic symbol table for symbols require -# a pointer equality. -# -# RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so -# RUN: llvm-readobj -dt -r %t.exe | FileCheck -check-prefix=PLT-SYM %s - -# PLT-SYM: Relocations [ -# PLT-SYM-NEXT: Section (5) .rel.dyn { -# PLT-SYM-NEXT: 0x402014 R_MIPS_REL32 T2 0x0 -# PLT-SYM-NEXT: 0x402014 R_MIPS_REL32 D2 0x0 -# PLT-SYM-NEXT: 0x402018 R_MIPS_COPY D1 0x0 -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Section (6) .rel.plt { -# PLT-SYM-NEXT: 0x402008 R_MIPS_JUMP_SLOT T3 0x0 -# PLT-SYM-NEXT: 0x40200C R_MIPS_JUMP_SLOT T1 0x0 -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -# PLT-SYM: DynamicSymbols [ -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: @ (0) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Local (0x0) -# PLT-SYM-NEXT: Type: None (0x0) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: D1@ (1) -# PLT-SYM-NEXT: Value: 0x402018 -# PLT-SYM-NEXT: Size: 4 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Object (0x1) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: .bss (0xD) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: T1@ (4) -# PLT-SYM-NEXT: Value: 0x400220 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 8 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: T3@ (10) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: T2@ (7) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 0 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Function (0x2) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: Symbol { -# PLT-SYM-NEXT: Name: D2@ (13) -# PLT-SYM-NEXT: Value: 0x0 -# PLT-SYM-NEXT: Size: 4 -# PLT-SYM-NEXT: Binding: Global (0x1) -# PLT-SYM-NEXT: Type: Object (0x1) -# PLT-SYM-NEXT: Other: 0 -# PLT-SYM-NEXT: Section: Undefined (0x0) -# PLT-SYM-NEXT: } -# PLT-SYM-NEXT: ] - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x0C - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x4 - Size: 4 - - Name: T3 - Section: .text - Type: STT_FUNC - Value: 0x8 - Size: 4 - - Name: D1 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 4 - - Name: D2 - Section: .data - Type: STT_OBJECT - Value: 0x4 - Size: 4 - -# o.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_EXECINSTR, SHF_ALLOC] - -- Name: .data - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_WRITE, SHF_ALLOC] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0x04 - Symbol: T3 - Type: R_MIPS_26 - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_PCHI16 - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_PCLO16 - - Offset: 0x04 - Symbol: T2 - Type: R_MIPS_32 - - - Offset: 0x04 - Symbol: D1 - Type: R_MIPS_PCHI16 - - Offset: 0x04 - Symbol: D1 - Type: R_MIPS_PCLO16 - - Offset: 0x04 - Symbol: D2 - Type: R_MIPS_32 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 - - Name: T1 - Type: STT_FUNC - - Name: T2 - Type: STT_FUNC - - Name: T3 - Type: STT_FUNC - - Name: D0 - Section: .data - Type: STT_OBJECT - Value: 0x0 - Size: 8 - - Name: D1 - Type: STT_OBJECT - - Name: D2 - Type: STT_OBJECT -... diff --git a/test/elf/Mips/rel-gprel16.test b/test/elf/Mips/rel-gprel16.test deleted file mode 100644 index dc188ea6825a..000000000000 --- a/test/elf/Mips/rel-gprel16.test +++ /dev/null @@ -1,104 +0,0 @@ -# Check R_MIPS_GPREL16 relocation handling. -# -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -e G1 -shared -o %t.so %t-obj -# RUN: llvm-readobj -symbols %t.so | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.so | FileCheck -check-prefix=SEC %s - -# SYM: Name: L1 (1) -# SYM-NEXT: Value: 0xCC -# SYM-NEXT: Size: 4 -# SYM-NEXT: Binding: Local (0x0) -# SYM-NEXT: Type: Function (0x2) -# SYM-NEXT: Other: 0 -# SYM-NEXT: Section: .text (0x4) - -# SYM: Name: G1 (4) -# SYM-NEXT: Value: 0xD0 -# SYM-NEXT: Size: 4 -# SYM-NEXT: Binding: Global (0x1) -# SYM-NEXT: Type: Function (0x2) -# SYM-NEXT: Other: 0 -# SYM-NEXT: Section: .text (0x4) - -# SYM: Name: _gp (34) -# SYM-NEXT: Value: 0x8FF0 -# SYM-NEXT: Size: 0 -# SYM-NEXT: Binding: Global (0x1) -# SYM-NEXT: Type: Object (0x1) -# SYM-NEXT: Other: 0 -# SYM-NEXT: Section: Absolute (0xFFF1) - -# 0x160db == 0xffff (addend) + 0x00cc (L1) + 0x01f000 (GP0) - 0x8ff0 (_gp) -# SEC: Contents of section .rodata: -# SEC-NEXT: 00d4 db600008 00000000 00000000 00000000 .`.............. - -!ELF -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: -- Type: SHT_PROGBITS - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - -- Type: SHT_REL - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0 - Symbol: .rodata - Type: R_MIPS_GOT16 - - Offset: 4 - Symbol: .rodata - Type: R_MIPS_LO16 - -- Type: SHT_PROGBITS - Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x04 - Content: ffff0008000000000000000000000000 - -- Type: SHT_REL - Name: .rel.rodata - Type: SHT_REL - Link: .symtab - Info: .rodata - AddressAlign: 0x04 - Relocations: - - Offset: 0 - Symbol: L1 - Type: R_MIPS_GPREL16 - -- Type: SHT_MIPS_REGINFO - Name: .reginfo - Type: SHT_MIPS_REGINFO - Flags: [ SHF_ALLOC ] - AddressAlign: 0x01 - Content: 000000000000000000000000000000000000000000f00100 - -Symbols: - Local: - - Name: L1 - Section: .text - Value: 0x00 - Size: 0x04 - - Name: .rodata - Type: STT_SECTION - Section: .rodata - Global: - - Name: G1 - Section: .text - Value: 0x04 - Size: 0x04 diff --git a/test/elf/Mips/rel-gprel32-64.test b/test/elf/Mips/rel-gprel32-64.test deleted file mode 100644 index 723c8e1ee738..000000000000 --- a/test/elf/Mips/rel-gprel32-64.test +++ /dev/null @@ -1,70 +0,0 @@ -# Check R_MIPS_GPREL32/R_MIPS_64 relocations handling. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mips64el -e T0 -o %t.exe %t.o -# RUN: llvm-objdump -s %t.exe | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK-NEXT: 1200001a0 c871ffff ffffffff c871ffff c871ffff .q.......q...q.. -# CHECK-NEXT: 1200001b0 c871ffff ffffffff 00000000 00000000 .q.............. - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 16 - Size: 32 - - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 8 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: LT1 - Type: R_MIPS_GPREL16 - Type2: R_MIPS_64 - Type3: R_MIPS_NONE - - Offset: 0x08 - Symbol: LT1 - Type: R_MIPS_GPREL16 - Type2: R_MIPS_64 - Type3: R_MIPS_NONE - - Offset: 0x0C - Symbol: LT1 - Type: R_MIPS_GPREL32 - Type2: R_MIPS_64 - Type3: R_MIPS_NONE - - Offset: 0x10 - Symbol: LT1 - Type: R_MIPS_GPREL32 - Type2: R_MIPS_64 - Type3: R_MIPS_NONE - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Global: - - Name: LT1 - Type: STT_FUNC - Section: .text - Value: 0x18 - Size: 0x8 - - Name: T0 - Type: STT_FUNC - Section: .text - Value: 0x0 - Size: 0x18 -... diff --git a/test/elf/Mips/rel-gprel32.test b/test/elf/Mips/rel-gprel32.test deleted file mode 100644 index 73ae6f161979..000000000000 --- a/test/elf/Mips/rel-gprel32.test +++ /dev/null @@ -1,84 +0,0 @@ -# Check R_MIPS_GPREL32 relocation handling. -# -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -o %t-exe %t-obj -# RUN: llvm-readobj -symbols %t-exe | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t-exe | FileCheck -check-prefix=SEC %s - -# SYM: Name: $L1 (1) -# SYM-NEXT: Value: 0x400108 -# SYM-NEXT: Size: 4 -# SYM-NEXT: Binding: Local (0x0) -# SYM-NEXT: Type: Function (0x2) -# SYM-NEXT: Other: 0 -# SYM-NEXT: Section: .text (0x5) -# -# SYM: Name: _gp (212) -# SYM-NEXT: Value: 0x408FF0 -# SYM-NEXT: Size: 0 -# SYM-NEXT: Binding: Global (0x1) -# SYM-NEXT: Type: Object (0x1) -# SYM-NEXT: Other: 0 -# SYM-NEXT: Section: Absolute (0xFFF1) - -# 0x08FF711B == 0x8000001 (addend) + 0x400108 ($L1) + -# 0x1000002 (GP0) - 0x408FF0 (_gp) -# SEC: Contents of section .rodata: -# SEC-NEXT: 400118 1b71ff08 00000000 00000000 00000000 .q.............. - -!ELF -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: -- Type: SHT_PROGBITS - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Content: 00000000000000000000000000000000 - -- Type: SHT_PROGBITS - Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x04 - Content: 01000008000000000000000000000000 - -- Type: SHT_REL - Name: .rel.rodata - Type: SHT_REL - Link: .symtab - Info: .rodata - AddressAlign: 0x04 - Relocations: - - Offset: 0 - Symbol: $L1 - Type: R_MIPS_GPREL32 - -- Type: SHT_MIPS_REGINFO - Name: .reginfo - Type: SHT_MIPS_REGINFO - Flags: [ SHF_ALLOC ] - AddressAlign: 0x01 - Content: 000000000000000000000000000000000000000002000001 - -Symbols: - Local: - - Name: $L1 - Section: .text - Value: 0x00 - - Name: .rodata - Type: STT_SECTION - Section: .rodata - Global: - - Name: __start - Section: .text - Type: STT_FUNC - Value: 0x04 - Size: 12 - - Name: _gp_disp diff --git a/test/elf/Mips/rel-pc-hilo.test b/test/elf/Mips/rel-pc-hilo.test deleted file mode 100644 index 89cd2b121797..000000000000 --- a/test/elf/Mips/rel-pc-hilo.test +++ /dev/null @@ -1,70 +0,0 @@ -# Check handling of R_MIPS_PCHI16 / R_MIPS_PCLO16 relocations. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t.o -# RUN: llvm-objdump -s -t %t.exe | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK-NEXT: 400110 01000000 02000000 03000000 00000000 -# ^ -# A = 0x10000 - 1 == 0xffff -# V = (T1 + 0xffff - T0) >> 16 => -# V => 0x1000b >> 16 = 1 -# ^ -# A = 0x20000 - 1 == 0x1ffff -# V = (T1 + 0x1ffff - T0 - 4) >> 16 => -# V => 0x20007 >> 16 = 2 -# ^ -# A = 0xffff == -1 -# V = T1 - 1 - T0 - 8 = 3 - -# CHECK: SYMBOL TABLE: -# CHECK: 00400110 g F .text 0000000c T0 -# CHECK: 0040011c g F .text 00000004 T1 - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "0100000002000000ffff000000000000" -# ^ T0 -# ^ A := 0x1 == 0x10000 -# ^ A := 0x2 == 0x20000 -# ^ A := 0xffff == -1 -# ^ T1 - AddressAlign: 16 - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0 - Symbol: T1 - Type: R_MIPS_PCHI16 - - Offset: 4 - Symbol: T1 - Type: R_MIPS_PCHI16 - - Offset: 8 - Symbol: T1 - Type: R_MIPS_PCLO16 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0 - Size: 12 - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 12 - Size: 4 diff --git a/test/elf/Mips/rel-pc18-s3.test b/test/elf/Mips/rel-pc18-s3.test deleted file mode 100644 index 5d5d5c7ce658..000000000000 --- a/test/elf/Mips/rel-pc18-s3.test +++ /dev/null @@ -1,54 +0,0 @@ -# Check handling of R_MIPS_PC18_S3 relocation. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t.o -# RUN: llvm-objdump -s -t %t.exe | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK-NEXT: 400110 00000000 01000000 00000000 00000000 -# ^ V -# A = -1 << 3 = -8 => -# V = (T1 - 8 - (T0|7)^7) >> 3 => -# V => 8 >> 3 = 1 - -# CHECK: SYMBOL TABLE: -# CHECK: 00400110 g F .text 00000010 T0 -# CHECK: 00400120 g F .text 00000004 T1 - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "00000000ffff0300000000000000000000000000" -# ^ T1 -# ^ T0 ^ A := 0x3ffff == -1 - AddressAlign: 16 - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 4 - Symbol: T1 - Type: R_MIPS_PC18_S3 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0 - Size: 16 - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 16 - Size: 4 diff --git a/test/elf/Mips/rel-pc19-s2.test b/test/elf/Mips/rel-pc19-s2.test deleted file mode 100644 index 479965df814f..000000000000 --- a/test/elf/Mips/rel-pc19-s2.test +++ /dev/null @@ -1,54 +0,0 @@ -# Check handling of R_MIPS_PC19_S2 relocation. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t.o -# RUN: llvm-objdump -s -t %t.exe | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK-NEXT: 400110 01000000 00000000 00000000 -# ^ V -# A = -1 << 2 = -4 => -# V = (T1 - 4 - T0) >> 2 => -# V => 4 >> 2 = 1 - -# CHECK: SYMBOL TABLE: -# CHECK: 00400110 g F .text 00000008 T0 -# CHECK: 00400118 g F .text 00000004 T1 - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "ffff07000000000000000000" -# ^ T1 -# ^ T0 A := 0x7ffff == -1 - AddressAlign: 16 - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0 - Symbol: T1 - Type: R_MIPS_PC19_S2 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0 - Size: 8 - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 8 - Size: 4 diff --git a/test/elf/Mips/rel-pc21-s2.test b/test/elf/Mips/rel-pc21-s2.test deleted file mode 100644 index 44d840e94c32..000000000000 --- a/test/elf/Mips/rel-pc21-s2.test +++ /dev/null @@ -1,54 +0,0 @@ -# Check handling of R_MIPS_PC21_S2 relocation. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t.o -# RUN: llvm-objdump -s -t %t.exe | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK-NEXT: 400110 01000000 00000000 00000000 -# ^ V -# A = -1 << 2 = -4 => -# V = (T1 - 4 - T0) >> 2 => -# V => 4 >> 2 = 1 - -# CHECK: SYMBOL TABLE: -# CHECK: 00400110 g F .text 00000008 T0 -# CHECK: 00400118 g F .text 00000004 T1 - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "ffff1f000000000000000000" -# ^ T1 -# ^ T0 A := 0x1fffff - AddressAlign: 16 - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0 - Symbol: T1 - Type: R_MIPS_PC21_S2 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0 - Size: 8 - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 8 - Size: 4 diff --git a/test/elf/Mips/rel-pc26-s2.test b/test/elf/Mips/rel-pc26-s2.test deleted file mode 100644 index abd05040f0c3..000000000000 --- a/test/elf/Mips/rel-pc26-s2.test +++ /dev/null @@ -1,54 +0,0 @@ -# Check handling of R_MIPS_PC26_S2 relocation. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t.o -# RUN: llvm-objdump -s -t %t.exe | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK-NEXT: 400110 01000000 00000000 00000000 -# ^ V -# A = -1 << 2 = -4 => -# V = (T1 - 4 - T0) >> 2 => -# V => 4 >> 2 = 1 - -# CHECK: SYMBOL TABLE: -# CHECK: 00400110 g F .text 00000008 T0 -# CHECK: 00400118 g F .text 00000004 T1 - -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "ffffff030000000000000000" -# ^ T1 -# ^ T0 A := 0x3ffffff == -1 - AddressAlign: 16 - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0 - Symbol: T1 - Type: R_MIPS_PC26_S2 - -Symbols: - Global: - - Name: T0 - Section: .text - Type: STT_FUNC - Value: 0 - Size: 8 - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 8 - Size: 4 diff --git a/test/elf/Mips/rel-pc32.test b/test/elf/Mips/rel-pc32.test deleted file mode 100644 index e448e8afc30e..000000000000 --- a/test/elf/Mips/rel-pc32.test +++ /dev/null @@ -1,59 +0,0 @@ -# Check handling of R_MIPS_PC32 relocation. -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -o %t-exe %t-obj -# RUN: llvm-objdump -s -t %t-exe | FileCheck %s - -# CHECK: Contents of section .data: -# CHECK-NEXT: 402000 00000000 05000080 fdffff7f ............ -# ^^ data2 + 0x80000001 - data1 -# ^^ data1 + 0x80000001 - data2 -# CHECK: SYMBOL TABLE: -# CHECK: 00402004 g .data 00000004 data1 -# CHECK: 00402008 g .data 00000004 data2 - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "00000000" - AddressAlign: 16 - Flags: [SHF_ALLOC] -- Name: .data - Type: SHT_PROGBITS - Content: "000000000100008001000080" - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_WRITE] - -- Name: .rel.data - Type: SHT_REL - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x4 - Symbol: data2 - Type: R_MIPS_PC32 - - Offset: 0x8 - Symbol: data1 - Type: R_MIPS_PC32 - -Symbols: - Global: - - Name: __start - Section: .text - Value: 0x0 - Size: 4 - - Name: data1 - Section: .data - Value: 0x4 - Size: 4 - - Name: data2 - Section: .data - Value: 0x8 - Size: 4 diff --git a/test/elf/Mips/rel-pc7-10-16-23.test b/test/elf/Mips/rel-pc7-10-16-23.test deleted file mode 100644 index c38b9eed2a5e..000000000000 --- a/test/elf/Mips/rel-pc7-10-16-23.test +++ /dev/null @@ -1,86 +0,0 @@ -# Check handling of R_MICROMIPS_PC7_S1, R_MICROMIPS_PC10_S1, -# R_MICROMIPS_PC16_S1, and R_MICROMIPS_PC23_S2 relocations. - -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target mipsel -o %t-exe %t-obj -# RUN: llvm-objdump -s -t %t-exe | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK-NEXT: 400110 00000000 80780500 a240fcff 000c03cc .....x...@...... -# ^^ addiu s1,$pc,20 -# ^^ bnezc v0,400114 <__start+0x4> -# ^^ b 400126 <L1> -# CHECK-NEXT: 400120 000c03ad 00000000 00000000 00000000 ................ -# ^^ bnez v0,40012a <L2> -# CHECK: SYMBOL TABLE: -# CHECK: 00400124 l F .text 00000002 L0 -# CHECK: 00400126 l F .text 00000004 L1 -# CHECK: 0040012a l F .text 00000004 L2 -# CHECK: 0040012e l F .text 00000002 L3 -# CHECK: 00400110 g F .text 00000014 __start - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, - EF_MIPS_MICROMIPS ] - -Sections: -- Name: .text - Type: SHT_PROGBITS -# v nop v nop v L0 - Content: "0000000080780100a240f5ff000cfdcf000c7dad000000000000000000000000" -# ^ PC23 ^ PC16 ^ PC10 ^ PC7 ^ L1 ^ L2 ^ L3 -# 7d << 1 = -6 => L3 + 2 - 6 = L2 -# 3fd << 1 = -6 => L2 + 2 - 6 = L1 -# fff5 << 1 = -22 => L1 + 2 - 22 = __start -# 1 << 2 = 4 => L0 + 4 - 4 = L0 - AddressAlign: 16 - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - -- Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 4 - Symbol: L0 - Type: R_MICROMIPS_PC23_S2 - - Offset: 8 - Symbol: L1 - Type: R_MICROMIPS_PC16_S1 - - Offset: 14 - Symbol: L2 - Type: R_MICROMIPS_PC10_S1 - - Offset: 18 - Symbol: L3 - Type: R_MICROMIPS_PC7_S1 - -Symbols: - Local: - - Name: L0 - Section: .text - Value: 20 - Other: [ STO_MIPS_MICROMIPS ] - - Name: L1 - Section: .text - Value: 22 - Other: [ STO_MIPS_MICROMIPS ] - - Name: L2 - Section: .text - Value: 26 - Other: [ STO_MIPS_MICROMIPS ] - - Name: L3 - Section: .text - Value: 30 - Other: [ STO_MIPS_MICROMIPS ] - Global: - - Name: __start - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 32 - Other: [ STO_MIPS_MICROMIPS ] diff --git a/test/elf/Mips/rel-sub.test b/test/elf/Mips/rel-sub.test deleted file mode 100644 index 93e569a22035..000000000000 --- a/test/elf/Mips/rel-sub.test +++ /dev/null @@ -1,61 +0,0 @@ -# Check handling of R_MIPS_SUB relocation. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target mips64el -o %t.exe %t.o -# RUN: llvm-objdump -s -t %t.exe | FileCheck %s - -# CHECK: Contents of section .data: -# CHECK-NEXT: 120002000 cf010020 01000000 d0010020 0100ffff ... ....... .... -# ^^ __start - 1 = 0x1200001cf -# ^^ __start - 0x1000000000000 -# = 0Xffff0001200001d0 -# CHECK: SYMBOL TABLE: -# CHECK: 00000001200001d0 g .rodata 00000008 __start - -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: -- Name: .text - Type: SHT_PROGBITS - Size: 0x08 - AddressAlign: 16 - Flags: [SHF_ALLOC] -- Name: .data - Type: SHT_PROGBITS - Size: 0x10 - AddressAlign: 16 - Flags: [SHF_ALLOC, SHF_WRITE] - -- Name: .rela.data - Type: SHT_RELA - Info: .data - AddressAlign: 4 - Relocations: - - Offset: 0x0 - Symbol: __start - Type: R_MIPS_SUB - Addend: 1 - - Offset: 0x8 - Symbol: __start - Type: R_MIPS_SUB - Addend: 0x1000000000000 - -Symbols: - Global: - - Name: __start - Section: .text - Value: 0x0 - Size: 8 - - Name: data1 - Section: .data - Value: 0x0 - Size: 8 - - Name: data2 - Section: .data - Value: 0x8 - Size: 8 diff --git a/test/elf/Mips/st-other.test b/test/elf/Mips/st-other.test deleted file mode 100644 index 8d15e75676b0..000000000000 --- a/test/elf/Mips/st-other.test +++ /dev/null @@ -1,90 +0,0 @@ -# Check STO_MICROMIPS flag handling. microMIPS symbol records in a dynamic -# symbol table should not have STO_MICROMIPS flag but their value field -# must be odd. microMIPS symbol records in a regular symbol table should -# have the STO_MICROMIPS flag. - -# RUN: yaml2obj -format=elf %s > %t-micro.o - -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-micro.o -# RUN: llvm-readobj -dyn-symbols %t.so | FileCheck -check-prefix=SO %s - -# RUN: lld -flavor gnu -target mipsel -e S0 -o %t.exe %t-micro.o -# RUN: llvm-readobj -symbols %t.exe | FileCheck -check-prefix=EXE-SYM %s -# RUN: llvm-readobj -dyn-symbols %t.exe | FileCheck -check-prefix=EXE-DSYM %s - -# SO: Symbol { -# SO: Name: S0@ (1) -# SO-NEXT: Value: 0xEC -# SO-NEXT: Size: 4 -# SO-NEXT: Binding: Global (0x1) -# SO-NEXT: Type: Function (0x2) -# SO-NEXT: Other: 0 -# SO-NEXT: Section: .text (0x4) -# SO-NEXT: } - -# SO: Symbol { -# SO: Name: S1@ (4) -# SO-NEXT: Value: 0xF1 -# SO-NEXT: Size: 4 -# SO-NEXT: Binding: Global (0x1) -# SO-NEXT: Type: Function (0x2) -# SO-NEXT: Other: 0 -# SO-NEXT: Section: .text (0x4) -# SO-NEXT: } - -# EXE-SYM: Symbol { -# EXE-SYM: Name: S0 (1) -# EXE-SYM-NEXT: Value: 0x400108 -# EXE-SYM-NEXT: Size: 4 -# EXE-SYM-NEXT: Binding: Global (0x1) -# EXE-SYM-NEXT: Type: Function (0x2) -# EXE-SYM-NEXT: Other: 0 -# EXE-SYM-NEXT: Section: .text (0x5) -# EXE-SYM-NEXT: } - -# EXE-SYM: Symbol { -# EXE-SYM: Name: S1 (4) -# EXE-SYM-NEXT: Value: 0x40010D -# EXE-SYM-NEXT: Size: 4 -# EXE-SYM-NEXT: Binding: Global (0x1) -# EXE-SYM-NEXT: Type: Function (0x2) -# EXE-SYM-NEXT: Other: 128 -# EXE-SYM-NEXT: Section: .text (0x5) -# EXE-SYM-NEXT: } - -# EXE-DSYM-NOT: Name: S1 (4) - -# micro.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - -Symbols: - Global: - - Name: S0 - Type: STT_FUNC - Section: .text - Size: 0x04 - Value: 0x00 - Visibility: STV_DEFAULT - Other: [ ] - - - Name: S1 - Type: STT_FUNC - Section: .text - Size: 0x04 - Value: 0x04 - Visibility: STV_DEFAULT - Other: [ STO_MIPS_MICROMIPS ] -... diff --git a/test/elf/Mips/tls-1-micro.test b/test/elf/Mips/tls-1-micro.test deleted file mode 100644 index bd962b4e9e80..000000000000 --- a/test/elf/Mips/tls-1-micro.test +++ /dev/null @@ -1,65 +0,0 @@ -# Check handling of R_MICROMIPS_TLS_TPREL_HI16 / R_MICROMIPS_TLS_TPREL_LO16 -# relocations. - -# RUN: yaml2obj -format=elf -o %t.o %s -# RUN: lld -flavor gnu -target mipsel -e L0 -o %t.exe %t.o -# RUN: llvm-objdump -s %t.exe | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK: 400150 00000000 00000100 00000380 00000480 ................ - -!ELF -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Content: '00000100000002000000030000000400' - - Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: L1 - Type: R_MICROMIPS_TLS_TPREL_HI16 - - Offset: 0x04 - Symbol: L2 - Type: R_MICROMIPS_TLS_TPREL_HI16 - - Offset: 0x08 - Symbol: L2 - Type: R_MICROMIPS_TLS_TPREL_LO16 - - Offset: 0x0C - Symbol: L1 - Type: R_MICROMIPS_TLS_TPREL_LO16 - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Address: 0x1000 - Size: 0x20000 - -Symbols: - Global: - - Name: L0 - Type: STT_FUNC - Section: .text - Size: 0x58 - Other: [ STO_MIPS_MICROMIPS ] - - Name: L1 - Type: STT_TLS - Section: .tdata - Value: 0x00 - Size: 0x04 - - Name: L2 - Type: STT_TLS - Section: .tdata - Value: 0x10000 - Size: 0x04 diff --git a/test/elf/Mips/tls-1.test b/test/elf/Mips/tls-1.test deleted file mode 100644 index 99176e69171d..000000000000 --- a/test/elf/Mips/tls-1.test +++ /dev/null @@ -1,63 +0,0 @@ -# Check handling of R_MIPS_TLS_TPREL_HI16 / R_MIPS_TLS_TPREL_LO16 relocations. - -# RUN: yaml2obj -format=elf -o %t.o %s -# RUN: lld -flavor gnu -target mipsel -e L0 -o %t.exe %t.o -# RUN: llvm-objdump -s %t.exe | FileCheck %s - -# CHECK: Contents of section .text: -# CHECK: 400150 00000000 01000000 03800000 04800000 ................ - -!ELF -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Content: '01000000020000000300000004000000' - - Name: .rel.text - Type: SHT_REL - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: L1 - Type: R_MIPS_TLS_TPREL_HI16 - - Offset: 0x04 - Symbol: L2 - Type: R_MIPS_TLS_TPREL_HI16 - - Offset: 0x08 - Symbol: L2 - Type: R_MIPS_TLS_TPREL_LO16 - - Offset: 0x0C - Symbol: L1 - Type: R_MIPS_TLS_TPREL_LO16 - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Address: 0x1000 - Size: 0x20000 - -Symbols: - Global: - - Name: L0 - Type: STT_FUNC - Section: .text - Size: 0x58 - - Name: L1 - Type: STT_TLS - Section: .tdata - Value: 0x00 - Size: 0x04 - - Name: L2 - Type: STT_TLS - Section: .tdata - Value: 0x10000 - Size: 0x04 diff --git a/test/elf/Mips/tls-2-64.test b/test/elf/Mips/tls-2-64.test deleted file mode 100644 index a068934aeafa..000000000000 --- a/test/elf/Mips/tls-2-64.test +++ /dev/null @@ -1,69 +0,0 @@ -# Check handling of R_MIPS_TLS_GOTTPREL and R_MIPS_TLS_GD relocations -# and generation of corresponding dynamic relocations R_MIPS_TLS_TPREL64, -# R_MIPS_TLS_DTPMOD64 and R_MIPS_TLS_DTPREL64 in case of shared library. - -# Create a shared library with thread symbol D1. -# RUN: yaml2obj -format=elf -o %t-so.o %s -# RUN: lld -flavor gnu -target mips64el -shared -o %t.so %t-so.o - -# Check dynamic relocations and GOT in the shared library. -# RUN: llvm-readobj -r %t.so | FileCheck -check-prefix=REL %s -# RUN: llvm-readobj -dynamic-table %t.so | FileCheck -check-prefix=DYN %s -# RUN: llvm-readobj -dt %t.so | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.so | FileCheck -check-prefix=GOT %s - -# REL: Section (4) .rel.dyn { -# REL-NEXT: 0x2010 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE D1 0x0 -# REL-NEXT: 0x2018 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE D1 0x0 -# REL-NEXT: } - -# DYN: 0x000000007000000A MIPS_LOCAL_GOTNO 2 -# DYN: 0x0000000070000013 MIPS_GOTSYM 0x3 - -# SYM: Name: T1@ (1) -# SYM: Name: D1@ (4) - -# GOT: Contents of section .got: -# GOT-NEXT: 2000 00000000 00000000 00000000 00000080 ................ -# GOT-NEXT: 2010 00000000 00000000 00000000 00000000 ................ - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 4 - Size: 4 - - Name: .rel.text - Type: SHT_RELA - Link: .symtab - Info: .text - AddressAlign: 4 - Relocations: - - Offset: 0 - Symbol: D1 - Type: R_MIPS_TLS_GD - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 4 - Size: 8 - -Symbols: - Global: - - Name: T1 - Type: STT_FUNC - Section: .text - Size: 4 - - Name: D1 - Type: STT_TLS - Section: .tdata - Size: 8 -... diff --git a/test/elf/Mips/tls-2-micro.test b/test/elf/Mips/tls-2-micro.test deleted file mode 100644 index 5a1fe2904ac9..000000000000 --- a/test/elf/Mips/tls-2-micro.test +++ /dev/null @@ -1,70 +0,0 @@ -# Check handling of R_MICROMIPS_TLS_GOTTPREL and R_MICROMIPS_TLS_GD relocations -# and generation of corresponding dynamic relocations R_MIPS_TLS_TPREL32, -# R_MIPS_TLS_DTPMOD32 and R_MIPS_TLS_DTPREL32 in case of shared library. - -# Create a shared library with thread symbol D1. -# RUN: yaml2obj -format=elf -o %t-so.o %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Check dynamic relocations and GOT in the shared library. -# RUN: llvm-readobj -r %t.so | FileCheck -check-prefix=REL %s -# RUN: llvm-readobj -dynamic-table %t.so | FileCheck -check-prefix=DYN %s -# RUN: llvm-readobj -dt %t.so | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.so | FileCheck -check-prefix=GOT %s - -# REL: Section (4) .rel.dyn { -# REL-NEXT: 0x2008 R_MIPS_TLS_DTPMOD32 D1 0x0 -# REL-NEXT: 0x200C R_MIPS_TLS_DTPREL32 D1 0x0 -# REL-NEXT: } - -# DYN: 0x7000000A MIPS_LOCAL_GOTNO 2 -# DYN: 0x70000013 MIPS_GOTSYM 0x3 - -# SYM: Name: T1@ (1) -# SYM: Name: D1@ (4) - -# GOT: Contents of section .got: -# GOT-NEXT: 2000 00000000 00000080 00000000 00000000 ................ - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: D1 - Type: R_MICROMIPS_TLS_GD - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T1 - Type: STT_FUNC - Section: .text - Size: 0x04 - Other: [ STO_MIPS_MICROMIPS ] - - Name: D1 - Type: STT_TLS - Section: .tdata - Size: 0x04 -... diff --git a/test/elf/Mips/tls-2.test b/test/elf/Mips/tls-2.test deleted file mode 100644 index 32b2bc105112..000000000000 --- a/test/elf/Mips/tls-2.test +++ /dev/null @@ -1,69 +0,0 @@ -# Check handling of R_MIPS_TLS_GOTTPREL and R_MIPS_TLS_GD relocations -# and generation of corresponding dynamic relocations R_MIPS_TLS_TPREL32, -# R_MIPS_TLS_DTPMOD32 and R_MIPS_TLS_DTPREL32 in case of shared library. - -# Create a shared library with thread symbol D1. -# RUN: yaml2obj -format=elf -o %t-so.o %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Check dynamic relocations and GOT in the shared library. -# RUN: llvm-readobj -r %t.so | FileCheck -check-prefix=REL %s -# RUN: llvm-readobj -dynamic-table %t.so | FileCheck -check-prefix=DYN %s -# RUN: llvm-readobj -dt %t.so | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.so | FileCheck -check-prefix=GOT %s - -# REL: Section (4) .rel.dyn { -# REL-NEXT: 0x2008 R_MIPS_TLS_DTPMOD32 D1 0x0 -# REL-NEXT: 0x200C R_MIPS_TLS_DTPREL32 D1 0x0 -# REL-NEXT: } - -# DYN: 0x7000000A MIPS_LOCAL_GOTNO 2 -# DYN: 0x70000013 MIPS_GOTSYM 0x3 - -# SYM: Name: T1@ (1) -# SYM: Name: D1@ (4) - -# GOT: Contents of section .got: -# GOT-NEXT: 2000 00000000 00000080 00000000 00000000 ................ - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: D1 - Type: R_MIPS_TLS_GD - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T1 - Type: STT_FUNC - Section: .text - Size: 0x04 - - Name: D1 - Type: STT_TLS - Section: .tdata - Size: 0x04 -... diff --git a/test/elf/Mips/tls-3-micro.test b/test/elf/Mips/tls-3-micro.test deleted file mode 100644 index 0e0f3d556f8f..000000000000 --- a/test/elf/Mips/tls-3-micro.test +++ /dev/null @@ -1,183 +0,0 @@ -# Check handling of R_MICROMIPS_TLS_GOTTPREL and R_MICROMIPS_TLS_GD relocations -# and generation of corresponding dynamic relocations R_MIPS_TLS_TPREL32, -# R_MIPS_TLS_DTPMOD32 and R_MIPS_TLS_DTPREL32 in case of executable linking. - -# Create a shared library with thread symbol D1. -# RUN: yaml2obj -format=elf -docnum 1 -o %t-so.o %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Create executable file linked using two object files and the shared library. -# The object files defines thread symbols D0 and D2. -# RUN: yaml2obj -format=elf -docnum 2 -o %t-o1.o %s -# RUN: yaml2obj -format=elf -docnum 3 -o %t-o2.o %s -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o1.o %t-o2.o %t.so - -# Check dynamic relocations and GOT in the executable file. -# RUN: llvm-readobj -r %t.exe | FileCheck -check-prefix=REL %s -# RUN: llvm-readobj -dynamic-table %t.exe | FileCheck -check-prefix=DYN %s -# RUN: llvm-readobj -dt %t.exe | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.exe | FileCheck -check-prefix=GOT %s - -# REL: Section (5) .rel.dyn { -# REL-NEXT: 0x402008 R_MIPS_TLS_TPREL32 D1 0x0 -# REL-NEXT: 0x40200C R_MIPS_TLS_TPREL32 D2 0x0 -# REL-NEXT: } - -# DYN: 0x7000000A MIPS_LOCAL_GOTNO 2 -# DYN: 0x70000013 MIPS_GOTSYM 0x3 - -# SYM: Name: D2@ (1) -# SYM: Name: D1@ (4) - -# GOT: Contents of section .got: -# GOT-NEXT: 402000 00000000 00000080 00000000 00000000 ................ - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: D1 - Type: R_MICROMIPS_TLS_GD - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T1 - Type: STT_FUNC - Section: .text - Size: 0x04 - Other: [ STO_MIPS_MICROMIPS ] - - Name: D1 - Type: STT_TLS - Section: .tdata - Size: 0x04 - -# o1.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: D2 - Type: R_MICROMIPS_TLS_TPREL_HI16 - - Offset: 0x04 - Symbol: D2 - Type: R_MICROMIPS_TLS_TPREL_LO16 - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T2 - Type: STT_FUNC - Section: .text - Size: 0x08 - Other: [ STO_MIPS_MICROMIPS ] - - Name: D2 - Type: STT_TLS - Section: .tdata - Size: 0x04 - -# o2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x10 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: D1 - Type: R_MICROMIPS_TLS_GOTTPREL - Addend: 0 - - Offset: 0x04 - Symbol: D0 - Type: R_MICROMIPS_TLS_TPREL_HI16 - Addend: 0 - - Offset: 0x08 - Symbol: D0 - Type: R_MICROMIPS_TLS_TPREL_LO16 - Addend: 0 - - Offset: 0x0C - Symbol: D2 - Type: R_MICROMIPS_TLS_GOTTPREL - Addend: 0 - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: D0 - Type: STT_TLS - Section: .tdata - Size: 0x04 - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x10 - Other: [ STO_MIPS_MICROMIPS ] - - Name: D1 - Type: STT_TLS - - Name: D2 - Type: STT_TLS -... diff --git a/test/elf/Mips/tls-3.test b/test/elf/Mips/tls-3.test deleted file mode 100644 index 7e54724fade5..000000000000 --- a/test/elf/Mips/tls-3.test +++ /dev/null @@ -1,180 +0,0 @@ -# Check handling of R_MIPS_TLS_GOTTPREL and R_MIPS_TLS_GD relocations -# and generation of corresponding dynamic relocations R_MIPS_TLS_TPREL32, -# R_MIPS_TLS_DTPMOD32 and R_MIPS_TLS_DTPREL32 in case of executable linking. - -# Create a shared library with thread symbol D1. -# RUN: yaml2obj -format=elf -docnum 1 -o %t-so.o %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o - -# Create executable file linked using two object files and the shared library. -# The object files defines thread symbols D0 and D2. -# RUN: yaml2obj -format=elf -docnum 2 -o %t-o1.o %s -# RUN: yaml2obj -format=elf -docnum 3 -o %t-o2.o %s -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o1.o %t-o2.o %t.so - -# Check dynamic relocations and GOT in the executable file. -# RUN: llvm-readobj -r %t.exe | FileCheck -check-prefix=REL %s -# RUN: llvm-readobj -dynamic-table %t.exe | FileCheck -check-prefix=DYN %s -# RUN: llvm-readobj -dt %t.exe | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.exe | FileCheck -check-prefix=GOT %s - -# REL: Section (5) .rel.dyn { -# REL-NEXT: 0x402008 R_MIPS_TLS_TPREL32 D1 0x0 -# REL-NEXT: 0x40200C R_MIPS_TLS_TPREL32 D2 0x0 -# REL-NEXT: } - -# DYN: 0x7000000A MIPS_LOCAL_GOTNO 2 -# DYN: 0x70000013 MIPS_GOTSYM 0x3 - -# SYM: Name: D2@ (1) -# SYM: Name: D1@ (4) - -# GOT: Contents of section .got: -# GOT-NEXT: 402000 00000000 00000080 00000000 00000000 ................ - -# so.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: D1 - Type: R_MIPS_TLS_GD - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T1 - Type: STT_FUNC - Section: .text - Size: 0x04 - - Name: D1 - Type: STT_TLS - Section: .tdata - Size: 0x04 - -# o1.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: D2 - Type: R_MIPS_TLS_TPREL_HI16 - - Offset: 0x04 - Symbol: D2 - Type: R_MIPS_TLS_TPREL_LO16 - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T2 - Type: STT_FUNC - Section: .text - Size: 0x08 - - Name: D2 - Type: STT_TLS - Section: .tdata - Size: 0x04 - -# o2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x10 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - Info: .text - AddressAlign: 0x04 - Relocations: - - Offset: 0x00 - Symbol: D1 - Type: R_MIPS_TLS_GOTTPREL - Addend: 0 - - Offset: 0x04 - Symbol: D0 - Type: R_MIPS_TLS_TPREL_HI16 - Addend: 0 - - Offset: 0x08 - Symbol: D0 - Type: R_MIPS_TLS_TPREL_LO16 - Addend: 0 - - Offset: 0x0C - Symbol: D2 - Type: R_MIPS_TLS_GOTTPREL - Addend: 0 - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: D0 - Type: STT_TLS - Section: .tdata - Size: 0x04 - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x10 - - Name: D1 - Type: STT_TLS - - Name: D2 - Type: STT_TLS -... diff --git a/test/elf/Mips/tls-4-micro.test b/test/elf/Mips/tls-4-micro.test deleted file mode 100644 index 1b0d03fa8875..000000000000 --- a/test/elf/Mips/tls-4-micro.test +++ /dev/null @@ -1,126 +0,0 @@ -# Check handling of R_MICROMIPS_TLS_LDM relocation and generation -# of corresponding dynamic relocation R_MICROMIPS_TLS_DTPMOD32. - -# RUN: yaml2obj -format=elf -docnum 1 -o %t-so1.o %s -# RUN: yaml2obj -format=elf -docnum 2 -o %t-so2.o %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so1.o %t-so2.o - -# RUN: llvm-readobj -r %t.so | FileCheck -check-prefix=REL %s -# RUN: llvm-readobj -dynamic-table %t.so | FileCheck -check-prefix=DYN %s -# RUN: llvm-readobj -dt %t.so | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.so | FileCheck -check-prefix=GOT %s - -# REL: Section (4) .rel.dyn { -# REL-NEXT: 0x2008 R_MIPS_TLS_DTPMOD32 - 0x0 -# REL-NEXT: } - -# DYN: 0x7000000A MIPS_LOCAL_GOTNO 2 -# DYN: 0x70000013 MIPS_GOTSYM 0x4 - -# SYM: Name: @ (0) -# SYM: Name: T1@ (1) -# SYM: Name: T2@ (4) -# SYM: Name: T3@ (7) - -# GOT: Contents of section .got: -# GOT-NEXT: 2000 00000000 00000080 00000000 00000000 ................ -# Two LDM entries --^--------^ - -# so1.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: L01 - Type: R_MICROMIPS_TLS_LDM - - Offset: 0x04 - Symbol: L01 - Type: R_MICROMIPS_TLS_LDM - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Local: - - Name: L01 - Type: STT_TLS - Section: .tdata - Size: 0x04 - Global: - - Name: T1 - Type: STT_FUNC - Section: .text - Value: 0x00 - Size: 0x04 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T2 - Type: STT_FUNC - Section: .text - Value: 0x04 - Size: 0x04 - Other: [ STO_MIPS_MICROMIPS ] - -# so2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: L02 - Type: R_MICROMIPS_TLS_LDM - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Local: - - Name: L02 - Type: STT_TLS - Section: .tdata - Size: 0x04 - Global: - - Name: T3 - Type: STT_FUNC - Section: .text - Size: 0x04 - Other: [ STO_MIPS_MICROMIPS ] -... diff --git a/test/elf/Mips/tls-4.test b/test/elf/Mips/tls-4.test deleted file mode 100644 index fb42f0d93378..000000000000 --- a/test/elf/Mips/tls-4.test +++ /dev/null @@ -1,123 +0,0 @@ -# Check handling of R_MIPS_TLS_LDM relocation and generation of corresponding -# dynamic relocation R_MIPS_TLS_DTPMOD32. - -# RUN: yaml2obj -format=elf -docnum 1 -o %t-so1.o %s -# RUN: yaml2obj -format=elf -docnum 2 -o %t-so2.o %s -# RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so1.o %t-so2.o - -# RUN: llvm-readobj -r %t.so | FileCheck -check-prefix=REL %s -# RUN: llvm-readobj -dynamic-table %t.so | FileCheck -check-prefix=DYN %s -# RUN: llvm-readobj -dt %t.so | FileCheck -check-prefix=SYM %s -# RUN: llvm-objdump -s %t.so | FileCheck -check-prefix=GOT %s - -# REL: Section (4) .rel.dyn { -# REL-NEXT: 0x2008 R_MIPS_TLS_DTPMOD32 - 0x0 -# REL-NEXT: } - -# DYN: 0x7000000A MIPS_LOCAL_GOTNO 2 -# DYN: 0x70000013 MIPS_GOTSYM 0x4 - -# SYM: Name: @ (0) -# SYM: Name: T1@ (1) -# SYM: Name: T2@ (4) -# SYM: Name: T3@ (7) - -# GOT: Contents of section .got: -# GOT-NEXT: 2000 00000000 00000080 00000000 00000000 ................ -# Two LDM entries --^--------^ - -# so1.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: L01 - Type: R_MIPS_TLS_LDM - - Offset: 0x04 - Symbol: L01 - Type: R_MIPS_TLS_LDM - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Local: - - Name: L01 - Type: STT_TLS - Section: .tdata - Size: 0x04 - Global: - - Name: T1 - Type: STT_FUNC - Section: .text - Value: 0x00 - Size: 0x04 - - Name: T2 - Type: STT_FUNC - Section: .text - Value: 0x04 - Size: 0x04 - -# so2.o ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x04 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: L02 - Type: R_MIPS_TLS_LDM - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Local: - - Name: L02 - Type: STT_TLS - Section: .tdata - Size: 0x04 - Global: - - Name: T3 - Type: STT_FUNC - Section: .text - Size: 0x04 -... diff --git a/test/elf/Mips/tls-5-64.test b/test/elf/Mips/tls-5-64.test deleted file mode 100644 index 784d71efc48f..000000000000 --- a/test/elf/Mips/tls-5-64.test +++ /dev/null @@ -1,71 +0,0 @@ -# Check that in case of an executable file linking symbol referred -# by the R_MIPS_TLS_GD relocation gets an entry in the dynamic symbol table. - -# RUN: yaml2obj -format=elf -o %t-o.o %s -# RUN: lld -flavor gnu -target mips64el -e T0 -o %t.exe %t-o.o - -# Check dynamic relocations: -# RUN: llvm-readobj -r %t.exe | FileCheck -check-prefix=REL %s -# Check dynamic symbol table: -# RUN: llvm-readobj -dt %t.exe | FileCheck -check-prefix=SYM %s - -# REL: Relocations [ -# REL-NEXT: Section (5) .rel.dyn { -# REL-NEXT: 0x120002010 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE T1 0x0 -# REL-NEXT: 0x120002018 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE T1 0x0 -# REL-NEXT: } -# REL-NEXT: ] - -# SYM: Symbol { -# SYM: Name: T1@ (1) -# SYM-NEXT: Value: 0x0 -# SYM-NEXT: Size: 8 -# SYM-NEXT: Binding: Global (0x1) -# SYM-NEXT: Type: TLS (0x6) -# SYM-NEXT: Other: 0 -# SYM-NEXT: Section: .tdata (0x7) -# SYM-NEXT: } - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64] - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 8 - - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 4 - Info: .text - Relocations: - - Offset: 0 - Symbol: T1 - Type: R_MIPS_TLS_GD - - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 4 - Size: 8 - -Symbols: - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 8 - - Name: T1 - Type: STT_TLS - Section: .tdata - Value: 0 - Size: 8 -... diff --git a/test/elf/Mips/tls-5-micro.test b/test/elf/Mips/tls-5-micro.test deleted file mode 100644 index 89d1d98a6877..000000000000 --- a/test/elf/Mips/tls-5-micro.test +++ /dev/null @@ -1,70 +0,0 @@ -# Check that in case of an executable file linking symbol referred by -# the R_MICROMIPS_TLS_GD relocation gets an entry in the dynamic symbol table. - -# RUN: yaml2obj -format=elf -o %t-o.o %s -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o - -# Check dynamic relocations: -# RUN: llvm-readobj -r %t.exe | FileCheck -check-prefix=REL %s -# Check dynamic symbol table: -# RUN: llvm-readobj -dt %t.exe | FileCheck -check-prefix=SYM %s - -# REL: Relocations [ -# REL-NEXT: Section (5) .rel.dyn { -# REL-NEXT: 0x402008 R_MIPS_TLS_DTPMOD32 T1 0x0 -# REL-NEXT: 0x40200C R_MIPS_TLS_DTPREL32 T1 0x0 -# REL-NEXT: } -# REL-NEXT: ] - -# SYM: Symbol { -# SYM: Name: T1@ (1) -# SYM-NEXT: Value: 0x0 -# SYM-NEXT: Size: 4 -# SYM-NEXT: Binding: Global (0x1) -# SYM-NEXT: Type: TLS (0x6) -# SYM-NEXT: Other: 0 -# SYM-NEXT: Section: .tdata (0x7) -# SYM-NEXT: } - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2, EF_MIPS_MICROMIPS ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x04 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MICROMIPS_TLS_GD - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x04 - Other: [ STO_MIPS_MICROMIPS ] - - Name: T1 - Type: STT_TLS - Section: .tdata - Value: 0x00 - Size: 0x04 -... diff --git a/test/elf/Mips/tls-5.test b/test/elf/Mips/tls-5.test deleted file mode 100644 index 378ce321b8c9..000000000000 --- a/test/elf/Mips/tls-5.test +++ /dev/null @@ -1,69 +0,0 @@ -# Check that in case of an executable file linking symbol referred -# by the R_MIPS_TLS_GD relocation gets an entry in the dynamic symbol table. - -# RUN: yaml2obj -format=elf -o %t-o.o %s -# RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o - -# Check dynamic relocations: -# RUN: llvm-readobj -r %t.exe | FileCheck -check-prefix=REL %s -# Check dynamic symbol table: -# RUN: llvm-readobj -dt %t.exe | FileCheck -check-prefix=SYM %s - -# REL: Relocations [ -# REL-NEXT: Section (5) .rel.dyn { -# REL-NEXT: 0x402008 R_MIPS_TLS_DTPMOD32 T1 0x0 -# REL-NEXT: 0x40200C R_MIPS_TLS_DTPREL32 T1 0x0 -# REL-NEXT: } -# REL-NEXT: ] - -# SYM: Symbol { -# SYM: Name: T1@ (1) -# SYM-NEXT: Value: 0x0 -# SYM-NEXT: Size: 4 -# SYM-NEXT: Binding: Global (0x1) -# SYM-NEXT: Type: TLS (0x6) -# SYM-NEXT: Other: 0 -# SYM-NEXT: Section: .tdata (0x7) -# SYM-NEXT: } - ---- -FileHeader: - Class: ELFCLASS32 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_MIPS - Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, - EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x10 - Size: 0x04 - - Name: .rel.text - Type: SHT_REL - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: T1 - Type: R_MIPS_TLS_GD - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 0x04 - - Name: T1 - Type: STT_TLS - Section: .tdata - Value: 0x00 - Size: 0x04 -... diff --git a/test/elf/X86_64/ExampleTarget/triple.test b/test/elf/X86_64/ExampleTarget/triple.test deleted file mode 100644 index 3aecceb4305e..000000000000 --- a/test/elf/X86_64/ExampleTarget/triple.test +++ /dev/null @@ -1,32 +0,0 @@ -# Check that the Example Target is actually used. - -# RUN: yaml2obj -format=elf %s -o %t.o -# RUN: lld -flavor gnu -target x86_64-example-freebsd9 %t.o -o %t.exe -# RUN: llvm-readobj -file-headers %t.exe | FileCheck %s -# -# CHECK: Type: 0xFF00 - -# object - -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E5B864000000C745FC000000005DC366666666662E0F1F840000000000554889E531C05DC3 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - Global: - - Name: _start - Type: STT_FUNC - Section: .text - Size: 0x0000000000000000 diff --git a/test/elf/X86_64/Inputs/constint.c b/test/elf/X86_64/Inputs/constint.c deleted file mode 100644 index 9fc0ebcf6591..000000000000 --- a/test/elf/X86_64/Inputs/constint.c +++ /dev/null @@ -1 +0,0 @@ -const int b = 20; diff --git a/test/elf/X86_64/Inputs/constint.o b/test/elf/X86_64/Inputs/constint.o Binary files differdeleted file mode 100644 index 8324b73014d0..000000000000 --- a/test/elf/X86_64/Inputs/constint.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/debug0.c b/test/elf/X86_64/Inputs/debug0.c deleted file mode 100644 index 1ebe50087383..000000000000 --- a/test/elf/X86_64/Inputs/debug0.c +++ /dev/null @@ -1,5 +0,0 @@ -int adena(); - -int main() { -return adena(); -} diff --git a/test/elf/X86_64/Inputs/debug0.x86-64 b/test/elf/X86_64/Inputs/debug0.x86-64 Binary files differdeleted file mode 100644 index 914f5224b9a2..000000000000 --- a/test/elf/X86_64/Inputs/debug0.x86-64 +++ /dev/null diff --git a/test/elf/X86_64/Inputs/debug1.c b/test/elf/X86_64/Inputs/debug1.c deleted file mode 100644 index 281b8a361dbb..000000000000 --- a/test/elf/X86_64/Inputs/debug1.c +++ /dev/null @@ -1,3 +0,0 @@ -int adena() { -return 0; -} diff --git a/test/elf/X86_64/Inputs/debug1.x86-64 b/test/elf/X86_64/Inputs/debug1.x86-64 Binary files differdeleted file mode 100644 index bfc81458a034..000000000000 --- a/test/elf/X86_64/Inputs/debug1.x86-64 +++ /dev/null diff --git a/test/elf/X86_64/Inputs/externtls.c b/test/elf/X86_64/Inputs/externtls.c deleted file mode 100644 index 499a645a9217..000000000000 --- a/test/elf/X86_64/Inputs/externtls.c +++ /dev/null @@ -1,6 +0,0 @@ -extern __thread int extern_tls; - -int main() { - extern_tls = 1; - return 0; -} diff --git a/test/elf/X86_64/Inputs/externtls.x86-64 b/test/elf/X86_64/Inputs/externtls.x86-64 Binary files differdeleted file mode 100644 index 3019aa0ca27c..000000000000 --- a/test/elf/X86_64/Inputs/externtls.x86-64 +++ /dev/null diff --git a/test/elf/X86_64/Inputs/fn.c b/test/elf/X86_64/Inputs/fn.c deleted file mode 100644 index 54939a2426b2..000000000000 --- a/test/elf/X86_64/Inputs/fn.c +++ /dev/null @@ -1,4 +0,0 @@ -int fn() -{ - return 0; -} diff --git a/test/elf/X86_64/Inputs/fn.o b/test/elf/X86_64/Inputs/fn.o Binary files differdeleted file mode 100644 index 4b67d459dfdb..000000000000 --- a/test/elf/X86_64/Inputs/fn.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/generaltls-so.o.yaml b/test/elf/X86_64/Inputs/generaltls-so.o.yaml deleted file mode 100644 index f0649e7639a6..000000000000 --- a/test/elf/X86_64/Inputs/generaltls-so.o.yaml +++ /dev/null @@ -1,68 +0,0 @@ ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E566488D3D00000000666648E8000000008B005DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000008 - Symbol: mynumber - Type: R_X86_64_TLSGD - Addend: -4 - - Offset: 0x0000000000000010 - Symbol: __tls_get_addr - Type: R_X86_64_PLT32 - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x0000000000000004 - Content: '21000000' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .tdata - Type: STT_SECTION - Section: .tdata - Global: - - Name: getnumber - Type: STT_FUNC - Section: .text - Size: 0x0000000000000018 - - Name: mynumber - Type: STT_TLS - Section: .tdata - Size: 0x0000000000000004 - - Name: _GLOBAL_OFFSET_TABLE_ - - Name: __tls_get_addr -... diff --git a/test/elf/X86_64/Inputs/group/1.c b/test/elf/X86_64/Inputs/group/1.c deleted file mode 100644 index f5e618bc4a85..000000000000 --- a/test/elf/X86_64/Inputs/group/1.c +++ /dev/null @@ -1,8 +0,0 @@ -int _start() { - return 0; -} - -int main() { -fn(); -return 0; -} diff --git a/test/elf/X86_64/Inputs/group/1.o b/test/elf/X86_64/Inputs/group/1.o Binary files differdeleted file mode 100644 index 743518eb0fa3..000000000000 --- a/test/elf/X86_64/Inputs/group/1.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/group/fn.c b/test/elf/X86_64/Inputs/group/fn.c deleted file mode 100644 index e443c73a1ee0..000000000000 --- a/test/elf/X86_64/Inputs/group/fn.c +++ /dev/null @@ -1,4 +0,0 @@ -int fn() { -fn1(); -return 0; -} diff --git a/test/elf/X86_64/Inputs/group/fn.o b/test/elf/X86_64/Inputs/group/fn.o Binary files differdeleted file mode 100644 index 1134432449cd..000000000000 --- a/test/elf/X86_64/Inputs/group/fn.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/group/fn1.c b/test/elf/X86_64/Inputs/group/fn1.c deleted file mode 100644 index cca0df7fd277..000000000000 --- a/test/elf/X86_64/Inputs/group/fn1.c +++ /dev/null @@ -1,3 +0,0 @@ -int fn1() { -fn2(); -} diff --git a/test/elf/X86_64/Inputs/group/fn1.o b/test/elf/X86_64/Inputs/group/fn1.o Binary files differdeleted file mode 100644 index 2b02310003db..000000000000 --- a/test/elf/X86_64/Inputs/group/fn1.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/group/fn2.c b/test/elf/X86_64/Inputs/group/fn2.c deleted file mode 100644 index a60370ed1e6b..000000000000 --- a/test/elf/X86_64/Inputs/group/fn2.c +++ /dev/null @@ -1,3 +0,0 @@ -int fn2() { -return 0; -} diff --git a/test/elf/X86_64/Inputs/group/fn2.o b/test/elf/X86_64/Inputs/group/fn2.o Binary files differdeleted file mode 100644 index fabec849a775..000000000000 --- a/test/elf/X86_64/Inputs/group/fn2.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/group/group.sh b/test/elf/X86_64/Inputs/group/group.sh deleted file mode 100755 index 2eba1030160b..000000000000 --- a/test/elf/X86_64/Inputs/group/group.sh +++ /dev/null @@ -1,38 +0,0 @@ -cat > 1.c << \! -int _start() { - return 0; -} - -int main() { -fn(); -return 0; -} -! - -cat > fn.c << \! -int fn() { -fn1(); -return 0; -} -! - -cat > fn2.c << \! -int fn2() { -return 0; -} -! - -cat > fn1.c << \! -int fn1() { -fn2(); -} -! - -gcc -c 1.c fn.c fn2.c fn1.c -ar cr libfn.a fn.o fn2.o -ar cr libfn1.a fn1.o -lld -flavor gnu -target x86_64 -shared -o libfn2.so fn2.o -lld -flavor gnu -target x86_64 1.o libfn.a libfn1.a -o x -lld -flavor gnu -target x86_64 1.o --start-group libfn.a libfn1.a --end-group -o x -lld -flavor gnu -target x86_64 1.o --start-group fn.o fn2.o fn1.o --end-group -o x -lld -flavor gnu -target x86_64 1.o --start-group --whole-archive libfn.a --no-whole-archive libfn1.a --end-group -o x diff --git a/test/elf/X86_64/Inputs/group/libfn.a b/test/elf/X86_64/Inputs/group/libfn.a Binary files differdeleted file mode 100644 index c157c3babed9..000000000000 --- a/test/elf/X86_64/Inputs/group/libfn.a +++ /dev/null diff --git a/test/elf/X86_64/Inputs/group/libfn.so b/test/elf/X86_64/Inputs/group/libfn.so Binary files differdeleted file mode 100755 index fcbd11fe5519..000000000000 --- a/test/elf/X86_64/Inputs/group/libfn.so +++ /dev/null diff --git a/test/elf/X86_64/Inputs/group/libfn1.a b/test/elf/X86_64/Inputs/group/libfn1.a Binary files differdeleted file mode 100644 index 69b9c75b5d16..000000000000 --- a/test/elf/X86_64/Inputs/group/libfn1.a +++ /dev/null diff --git a/test/elf/X86_64/Inputs/group/libfn2.so b/test/elf/X86_64/Inputs/group/libfn2.so Binary files differdeleted file mode 100755 index 7ce867373910..000000000000 --- a/test/elf/X86_64/Inputs/group/libfn2.so +++ /dev/null diff --git a/test/elf/X86_64/Inputs/initfini-option.c b/test/elf/X86_64/Inputs/initfini-option.c deleted file mode 100644 index e9a6c08c12ac..000000000000 --- a/test/elf/X86_64/Inputs/initfini-option.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <stdio.h> - -void init() { - printf("%s\n", __FUNCTION__); -} - -void fini() { - printf("%s\n", __FUNCTION__); -} - -int main() { -} - diff --git a/test/elf/X86_64/Inputs/initfini-option.o b/test/elf/X86_64/Inputs/initfini-option.o Binary files differdeleted file mode 100644 index b1ba0557353c..000000000000 --- a/test/elf/X86_64/Inputs/initfini-option.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/initfini.c b/test/elf/X86_64/Inputs/initfini.c deleted file mode 100644 index 9427a86b6c9b..000000000000 --- a/test/elf/X86_64/Inputs/initfini.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <stdio.h> - -void __attribute__ ((constructor)) constructor() { - printf("%s\n", __FUNCTION__); -} - -void __attribute__ ((destructor)) destructor() { - printf("%s\n", __FUNCTION__); -} - -int main() { - return 0; -} - diff --git a/test/elf/X86_64/Inputs/initfini.o b/test/elf/X86_64/Inputs/initfini.o Binary files differdeleted file mode 100644 index f0e55a90b8b6..000000000000 --- a/test/elf/X86_64/Inputs/initfini.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/largebss.c b/test/elf/X86_64/Inputs/largebss.c deleted file mode 100644 index 157d01755b6a..000000000000 --- a/test/elf/X86_64/Inputs/largebss.c +++ /dev/null @@ -1,3 +0,0 @@ -int largebss[1000] = { 0 }; -int largecommon[1000]; -__thread int largetbss[1000] = { 0 }; diff --git a/test/elf/X86_64/Inputs/largebss.o b/test/elf/X86_64/Inputs/largebss.o Binary files differdeleted file mode 100644 index 377370ec2db2..000000000000 --- a/test/elf/X86_64/Inputs/largebss.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/layoutpass/1.c b/test/elf/X86_64/Inputs/layoutpass/1.c deleted file mode 100644 index fec984503214..000000000000 --- a/test/elf/X86_64/Inputs/layoutpass/1.c +++ /dev/null @@ -1,8 +0,0 @@ -int main() { - a(); - return 0; -} - -int b() { - return 0; -} diff --git a/test/elf/X86_64/Inputs/layoutpass/1.o b/test/elf/X86_64/Inputs/layoutpass/1.o Binary files differdeleted file mode 100644 index 848a5b3321ac..000000000000 --- a/test/elf/X86_64/Inputs/layoutpass/1.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/layoutpass/2.c b/test/elf/X86_64/Inputs/layoutpass/2.c deleted file mode 100644 index fb9dbcc28aa6..000000000000 --- a/test/elf/X86_64/Inputs/layoutpass/2.c +++ /dev/null @@ -1,7 +0,0 @@ -int a() { - return 0; -} - -int c() { - return 0; -} diff --git a/test/elf/X86_64/Inputs/layoutpass/2.o b/test/elf/X86_64/Inputs/layoutpass/2.o Binary files differdeleted file mode 100644 index 4c5ef8679581..000000000000 --- a/test/elf/X86_64/Inputs/layoutpass/2.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/layoutpass/3.c b/test/elf/X86_64/Inputs/layoutpass/3.c deleted file mode 100644 index 054029fe5cfe..000000000000 --- a/test/elf/X86_64/Inputs/layoutpass/3.c +++ /dev/null @@ -1,3 +0,0 @@ -int d() { - return 0; -} diff --git a/test/elf/X86_64/Inputs/layoutpass/3.o b/test/elf/X86_64/Inputs/layoutpass/3.o Binary files differdeleted file mode 100644 index 76ef76e97901..000000000000 --- a/test/elf/X86_64/Inputs/layoutpass/3.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/layoutpass/lib2.a b/test/elf/X86_64/Inputs/layoutpass/lib2.a Binary files differdeleted file mode 100644 index 5f076c869817..000000000000 --- a/test/elf/X86_64/Inputs/layoutpass/lib2.a +++ /dev/null diff --git a/test/elf/X86_64/Inputs/libfn.a b/test/elf/X86_64/Inputs/libfn.a Binary files differdeleted file mode 100644 index 380844b0838d..000000000000 --- a/test/elf/X86_64/Inputs/libfn.a +++ /dev/null diff --git a/test/elf/X86_64/Inputs/libfn.so b/test/elf/X86_64/Inputs/libfn.so Binary files differdeleted file mode 100755 index dc02480aa690..000000000000 --- a/test/elf/X86_64/Inputs/libfn.so +++ /dev/null diff --git a/test/elf/X86_64/Inputs/main.c b/test/elf/X86_64/Inputs/main.c deleted file mode 100644 index 0280c9127076..000000000000 --- a/test/elf/X86_64/Inputs/main.c +++ /dev/null @@ -1,4 +0,0 @@ -int main() { - fn(); - return 0; -} diff --git a/test/elf/X86_64/Inputs/main.o b/test/elf/X86_64/Inputs/main.o Binary files differdeleted file mode 100644 index ec8929f4b51d..000000000000 --- a/test/elf/X86_64/Inputs/main.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/multi-ovrd.c b/test/elf/X86_64/Inputs/multi-ovrd.c deleted file mode 100644 index cf6c0b6ac361..000000000000 --- a/test/elf/X86_64/Inputs/multi-ovrd.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <stdio.h> -void f(void) -{ - printf("overridden f!\n"); -} - -void g(void) -{ - printf("overridden g!\n"); -} diff --git a/test/elf/X86_64/Inputs/multi-ovrd.o b/test/elf/X86_64/Inputs/multi-ovrd.o Binary files differdeleted file mode 100644 index e4c4d6037fdd..000000000000 --- a/test/elf/X86_64/Inputs/multi-ovrd.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/multi-weak.c b/test/elf/X86_64/Inputs/multi-weak.c deleted file mode 100644 index 10b9160352d9..000000000000 --- a/test/elf/X86_64/Inputs/multi-weak.c +++ /dev/null @@ -1,20 +0,0 @@ -int fn() -{ - return 0; -} - -void __attribute__((weak)) f() -{ - printf("original f..\n"); -} - -void __attribute__((weak)) g() -{ - printf("original f..\n"); -} - -int main(void) -{ - f(); - return 0; -} diff --git a/test/elf/X86_64/Inputs/multi-weak.o b/test/elf/X86_64/Inputs/multi-weak.o Binary files differdeleted file mode 100644 index d5677b699ac4..000000000000 --- a/test/elf/X86_64/Inputs/multi-weak.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/multiweaksyms.o b/test/elf/X86_64/Inputs/multiweaksyms.o Binary files differdeleted file mode 100644 index 5e2e54d66b0d..000000000000 --- a/test/elf/X86_64/Inputs/multiweaksyms.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/nmagic.c b/test/elf/X86_64/Inputs/nmagic.c deleted file mode 100644 index 3ad15f0c4971..000000000000 --- a/test/elf/X86_64/Inputs/nmagic.c +++ /dev/null @@ -1,8 +0,0 @@ -int a = 10; -__thread int b = 20; -__thread int c; -__thread int d; - -int main() { - return 0; -} diff --git a/test/elf/X86_64/Inputs/nmagic.o b/test/elf/X86_64/Inputs/nmagic.o Binary files differdeleted file mode 100644 index af28e0ada8b3..000000000000 --- a/test/elf/X86_64/Inputs/nmagic.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/no-interp-section.c b/test/elf/X86_64/Inputs/no-interp-section.c deleted file mode 100644 index 3981c038ed33..000000000000 --- a/test/elf/X86_64/Inputs/no-interp-section.c +++ /dev/null @@ -1 +0,0 @@ -int c = 10; diff --git a/test/elf/X86_64/Inputs/no-interp-section.o b/test/elf/X86_64/Inputs/no-interp-section.o Binary files differdeleted file mode 100644 index 063eb3244f22..000000000000 --- a/test/elf/X86_64/Inputs/no-interp-section.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/note.o b/test/elf/X86_64/Inputs/note.o Binary files differdeleted file mode 100644 index d86b0cf85d19..000000000000 --- a/test/elf/X86_64/Inputs/note.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/note.s b/test/elf/X86_64/Inputs/note.s deleted file mode 100644 index 0a0b03da6bb7..000000000000 --- a/test/elf/X86_64/Inputs/note.s +++ /dev/null @@ -1,11 +0,0 @@ - .section ".note.ident", "a" - .p2align 2 - .long 1f - 0f # name size (not including padding) - .long 3f - 2f # desc size (not including padding) - .long 0x01234567 # type -0: .asciz "NaMe" # name -1: .p2align 2 -2: .long 0x76543210 # desc - .long 0x89abcdef -3: .p2align 2 - diff --git a/test/elf/X86_64/Inputs/note_ro_rw.o b/test/elf/X86_64/Inputs/note_ro_rw.o Binary files differdeleted file mode 100644 index 76f2486d2736..000000000000 --- a/test/elf/X86_64/Inputs/note_ro_rw.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/note_ro_rw.s b/test/elf/X86_64/Inputs/note_ro_rw.s deleted file mode 100644 index 2a0eff5dfb2b..000000000000 --- a/test/elf/X86_64/Inputs/note_ro_rw.s +++ /dev/null @@ -1,21 +0,0 @@ - .section ".note.ro", "a" - .p2align 2 - .long 1f - 0f # name size (not including padding) - .long 3f - 2f # desc size (not including padding) - .long 0x01234567 # type -0: .asciz "NaMe" # name -1: .p2align 2 -2: .long 0x76543210 # desc - .long 0x89abcdef -3: .p2align 2 - .section ".note.rw", "aw" - .p2align 2 - .long 1f - 0f # name size (not including padding) - .long 3f - 2f # desc size (not including padding) - .long 0x01234567 # type -0: .asciz "NaMe" # name -1: .p2align 2 -2: .long 0x76543210 # desc - .long 0x89abcdef -3: .p2align 2 - diff --git a/test/elf/X86_64/Inputs/ovrd.c b/test/elf/X86_64/Inputs/ovrd.c deleted file mode 100644 index a3d721dac2aa..000000000000 --- a/test/elf/X86_64/Inputs/ovrd.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <stdio.h> -void f(void) -{ - printf("overridden f!\n"); -} - diff --git a/test/elf/X86_64/Inputs/ovrd.o b/test/elf/X86_64/Inputs/ovrd.o Binary files differdeleted file mode 100644 index ea7353d94ed9..000000000000 --- a/test/elf/X86_64/Inputs/ovrd.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/rodata.c b/test/elf/X86_64/Inputs/rodata.c deleted file mode 100644 index 01489fe550c8..000000000000 --- a/test/elf/X86_64/Inputs/rodata.c +++ /dev/null @@ -1,3 +0,0 @@ -const char _nl_default_default_domain[] __attribute__ ((visibility ("hidden"))) = "messages"; -const char *_nl_current_default_domain __attribute__ ((visibility ("hidden"))) = _nl_default_default_domain; -const char _nl_default_default_dirname[] = "/usr/local"; diff --git a/test/elf/X86_64/Inputs/rodata.o b/test/elf/X86_64/Inputs/rodata.o Binary files differdeleted file mode 100644 index 660606cdc9c0..000000000000 --- a/test/elf/X86_64/Inputs/rodata.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/rodata.s b/test/elf/X86_64/Inputs/rodata.s deleted file mode 100644 index e1a2eb702736..000000000000 --- a/test/elf/X86_64/Inputs/rodata.s +++ /dev/null @@ -1,24 +0,0 @@ - .file "x.c" - .hidden _nl_default_default_domain - .globl _nl_default_default_domain - .section .rodata._nl_default_default_domain,"ams",@progbits,1 - .type _nl_default_default_domain, @object - .size _nl_default_default_domain, 9 -_nl_default_default_domain: - .string "messages" - .hidden _nl_current_default_domain - .globl _nl_current_default_domain - .section .data._nl_current_default_domain,"aw",@progbits - .align 8 - .type _nl_current_default_domain, @object - .size _nl_current_default_domain, 8 -_nl_current_default_domain: - .quad _nl_default_default_domain - .globl _nl_default_default_dirname - .section .rodata._nl_default_default_dirname,"ams",@progbits,1 - .type _nl_default_default_dirname, @object - .size _nl_default_default_dirname, 11 -_nl_default_default_dirname: - .string "/usr/local" - .ident "GCC: (Ubuntu 4.8.1-2ubuntu1~10.04.1) 4.8.1" - .section .note.GNU-stack,"",@progbits diff --git a/test/elf/X86_64/Inputs/rwint.c b/test/elf/X86_64/Inputs/rwint.c deleted file mode 100644 index d1cf7d62c801..000000000000 --- a/test/elf/X86_64/Inputs/rwint.c +++ /dev/null @@ -1 +0,0 @@ -int a = 10; diff --git a/test/elf/X86_64/Inputs/rwint.o b/test/elf/X86_64/Inputs/rwint.o Binary files differdeleted file mode 100644 index 9fba51f07add..000000000000 --- a/test/elf/X86_64/Inputs/rwint.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/sectionmap.c b/test/elf/X86_64/Inputs/sectionmap.c deleted file mode 100644 index c4f530148949..000000000000 --- a/test/elf/X86_64/Inputs/sectionmap.c +++ /dev/null @@ -1,4 +0,0 @@ -int foo __attribute__((section(".gcc_except_table.foo"))) = 4; -const int bar __attribute__((section(".data.rel.local"))) = 2; -const int baz __attribute__((section(".data.rel.ro"))) = 2; -const int bak __attribute__((section(".data.xyz"))) = 2; diff --git a/test/elf/X86_64/Inputs/sectionmap.o b/test/elf/X86_64/Inputs/sectionmap.o Binary files differdeleted file mode 100644 index 599cf2cca563..000000000000 --- a/test/elf/X86_64/Inputs/sectionmap.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/undefcpp.c b/test/elf/X86_64/Inputs/undefcpp.c deleted file mode 100644 index ce84c2a592b6..000000000000 --- a/test/elf/X86_64/Inputs/undefcpp.c +++ /dev/null @@ -1 +0,0 @@ -int foo() { return _Z3fooPKc(); } diff --git a/test/elf/X86_64/Inputs/undefcpp.o b/test/elf/X86_64/Inputs/undefcpp.o Binary files differdeleted file mode 100644 index 6b8ebf5b6ab0..000000000000 --- a/test/elf/X86_64/Inputs/undefcpp.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/weak-zero-sized.o b/test/elf/X86_64/Inputs/weak-zero-sized.o Binary files differdeleted file mode 100644 index 7c10c6a509ed..000000000000 --- a/test/elf/X86_64/Inputs/weak-zero-sized.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/weak.c b/test/elf/X86_64/Inputs/weak.c deleted file mode 100644 index ae07ffc745d8..000000000000 --- a/test/elf/X86_64/Inputs/weak.c +++ /dev/null @@ -1,14 +0,0 @@ -int fn() -{ - return 0; -} - -void __attribute__((weak)) f() -{ - printf("original f..\n"); -} -int main(void) -{ - f(); - return 0; -} diff --git a/test/elf/X86_64/Inputs/weak.o b/test/elf/X86_64/Inputs/weak.o Binary files differdeleted file mode 100644 index 41cc88a0c482..000000000000 --- a/test/elf/X86_64/Inputs/weak.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/weak.s b/test/elf/X86_64/Inputs/weak.s deleted file mode 100644 index 64ce779553b6..000000000000 --- a/test/elf/X86_64/Inputs/weak.s +++ /dev/null @@ -1,21 +0,0 @@ - .file "weak.s" - .text - .p2align 4,,15 - .globl test - .type test, @function -test: - ret - .size test, .-test - .weak myfn2 - .data - .align 8 - .type myfn2, @object - .size myfn2, 8 -myfn2: - .quad test - .weak myfn1 - .align 8 - .type myfn1, @object - .size myfn1, 8 -myfn1: - .quad test diff --git a/test/elf/X86_64/Inputs/zerosizedsection.o b/test/elf/X86_64/Inputs/zerosizedsection.o Binary files differdeleted file mode 100644 index a0f2f13a307a..000000000000 --- a/test/elf/X86_64/Inputs/zerosizedsection.o +++ /dev/null diff --git a/test/elf/X86_64/Inputs/zerosizedsection.s b/test/elf/X86_64/Inputs/zerosizedsection.s deleted file mode 100644 index 651ee3aab503..000000000000 --- a/test/elf/X86_64/Inputs/zerosizedsection.s +++ /dev/null @@ -1,3 +0,0 @@ -.text -.data -.word .text diff --git a/test/elf/X86_64/alignoffset.test b/test/elf/X86_64/alignoffset.test deleted file mode 100644 index b061f8937935..000000000000 --- a/test/elf/X86_64/alignoffset.test +++ /dev/null @@ -1,119 +0,0 @@ -# Checks that segments are aligned as per ELF spec. The segment virtual address -# modulo page alignment should be equal to offset modulo page alignment. - -# Build executable -# RUN: yaml2obj -format=elf -docnum 1 %s -o %t.o -# RUN: lld -flavor gnu -target x86_64 %t.o -o %t.exe -static \ -# RUN: --no-align-segments --rosegment --noinhibit-exec -# RUN: llvm-readobj -program-headers %t.exe | FileCheck %s -# -#CHECK: Offset: 0x15C -#CHECK: VirtualAddress: 0x40015C -#CHECK: PhysicalAddress: 0x40015C -# -# -#const int a = 0; -#int main() { -# foo(); -# return 0; -#} -# -#int foo() { return 0; } - -# object ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E54883EC10C745FC00000000E81C000000B9000000008945F889C84883C4105DC36666662E0F1F840000000000554889E5B8000000005DC3 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '00000000' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 005562756E747520636C616E672076657273696F6E20332E352E302D73766E3231373330342D317E6578703120286272616E636865732F72656C656173655F33352920286261736564206F6E204C4C564D20332E352E302900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C070890010000180000001C000000000000002400000000410E108602430D060000001800000038000000000000000B00000000410E108602430D06000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 - Addend: 0 - - Offset: 0x000000000000003C - Symbol: .text - Type: R_X86_64_PC32 - Addend: 48 -Symbols: - Local: - - Name: 1.c - Type: STT_FILE - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .rodata - Type: STT_SECTION - Section: .rodata - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: a - Type: STT_OBJECT - Section: .rodata - Size: 0x0000000000000004 - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x0000000000000030 - Size: 0x000000000000000B - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x0000000000000024 -... diff --git a/test/elf/X86_64/debug.test b/test/elf/X86_64/debug.test deleted file mode 100644 index a13d12fba382..000000000000 --- a/test/elf/X86_64/debug.test +++ /dev/null @@ -1,57 +0,0 @@ -# Test that debug info is assigned typeNoAlloc and that the output sections have -# a virtual address of 0. -RUN: lld -flavor gnu -target x86_64 -e main --output-filetype=yaml \ -RUN: %p/Inputs/debug0.x86-64 %p/Inputs/debug1.x86-64 -o %t -RUN: FileCheck %s -check-prefix YAML < %t - -RUN: lld -flavor gnu -target x86_64 -e main %p/Inputs/debug0.x86-64 \ -RUN: %p/Inputs/debug1.x86-64 -o %t1 -RUN: llvm-readobj -sections %t1 | FileCheck %s -check-prefix ELF -# Verify that non SHF_ALLOC sections are relocated correctly. -RUN: llvm-objdump -s %t1 | FileCheck %s -check-prefix RELOC - -YAML: type: no-alloc - -ELF: Section { -ELF: Name: .debug_info -ELF: Type: SHT_PROGBITS (0x1) -ELF: Flags [ (0x0) -ELF: ] -ELF: Address: 0x0 -ELF: } -ELF: Section { -ELF: Name: .debug_abbrev -ELF: Type: SHT_PROGBITS (0x1) -ELF: Flags [ (0x0) -ELF: ] -ELF: Address: 0x0 -ELF: } -ELF: Section { -ELF: Name: .debug_aranges -ELF: Type: SHT_PROGBITS (0x1) -ELF: Flags [ (0x0) -ELF: ] -ELF: Address: 0x0 -ELF: } -ELF: Section { -ELF: Name: .debug_line -ELF: Type: SHT_PROGBITS (0x1) -ELF: Flags [ (0x0) -ELF: ] -ELF: Address: 0x0 -ELF: } -ELF: Section { -ELF: Name: .debug_str -ELF: Type: SHT_PROGBITS (0x1) -ELF: Flags [ (0x0) -ELF: ] -ELF: Address: 0x0 -ELF: } - -RELOC: Contents of section .debug_info: -RELOC: 0000 4e000000 04000000 00000801 3a000000 N...........:... -# ^^ Relocation: ._debug_str + 0x3a -RELOC: 0010 01780000 00000000 00dc0140 00000000 .x.........@.... -# ^^ Relocation: .debug_str + 0x78 -RELOC: 0020 00100000 00000000 00000000 00028100 ................ -# ^^ Relocation: .debug_str + 0x81 diff --git a/test/elf/X86_64/defsym.test b/test/elf/X86_64/defsym.test deleted file mode 100644 index 5d2256a09ac8..000000000000 --- a/test/elf/X86_64/defsym.test +++ /dev/null @@ -1,22 +0,0 @@ -RUN: lld -flavor gnu -target x86_64 --defsym=main=fn --noinhibit-exec \ -RUN: %p/Inputs/fn.o -o %t -RUN: llvm-readobj -symbols %t | FileCheck %s - -CHECK: Symbol { -CHECK: Name: main (1) -CHECK: Value: 0x4001E0 -CHECK: Size: 0 -CHECK: Binding: Global (0x1) -CHECK: Type: Function (0x2) -CHECK: Other: 0 -CHECK: Section: .text (0x5) -CHECK: } -CHECK: Symbol { -CHECK: Name: fn (6) -CHECK: Value: 0x4001E0 -CHECK: Size: 6 -CHECK: Binding: Global (0x1) -CHECK: Type: Function (0x2) -CHECK: Other: 0 -CHECK: Section: .text (0x5) -CHECK: } diff --git a/test/elf/X86_64/demangle.test b/test/elf/X86_64/demangle.test deleted file mode 100644 index 1977fd7f1e3a..000000000000 --- a/test/elf/X86_64/demangle.test +++ /dev/null @@ -1,12 +0,0 @@ -# XFAIL: win32 -# -# Check that the linker is able to demangle strings properly. -# Once there is a way to add undefined symbols using yaml2obj, the test will be -# changed. - -RUN: lld -flavor gnu -target x86_64 %p/Inputs/undefcpp.o --noinhibit-exec 2>&1 | FileCheck -check-prefix=DEMANGLE %s -RUN: lld -flavor gnu -target x86_64 %p/Inputs/undefcpp.o --noinhibit-exec --no-demangle 2>&1 | FileCheck -check-prefix=NODEMANGLE %s -RUN: lld -flavor gnu -target x86_64 %p/Inputs/undefcpp.o --noinhibit-exec --demangle 2>&1 | FileCheck -check-prefix=DEMANGLE %s - -#DEMANGLE: undefcpp.o: foo(char const*) -#NODEMANGLE: undefcpp.o: _Z3fooPKc diff --git a/test/elf/X86_64/dontignorezerosize-sections.test b/test/elf/X86_64/dontignorezerosize-sections.test deleted file mode 100644 index 101e6cb55b24..000000000000 --- a/test/elf/X86_64/dontignorezerosize-sections.test +++ /dev/null @@ -1,9 +0,0 @@ -# This tests that lld is not ignoring zero sized sections -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/zerosizedsection.o \ -RUN: --noinhibit-exec --output-filetype=yaml -o %t -RUN: FileCheck %s < %t - -CHECK: references: -CHECK: - kind: R_X86_64_16 -CHECK: offset: 0 -CHECK: target: L000 diff --git a/test/elf/X86_64/dynamicvars.test b/test/elf/X86_64/dynamicvars.test deleted file mode 100644 index f5db73063650..000000000000 --- a/test/elf/X86_64/dynamicvars.test +++ /dev/null @@ -1,124 +0,0 @@ -# Tests that the dynamic variables created by the linker are set to the right -# values. - -#RUN: yaml2obj --format elf -docnum 1 %s -o %t.o -#RUN: lld -flavor gnu -target x86_64 -e main %t.o -o %t1 --noinhibit-exec -#RUN: llvm-readobj -sections -symbols %t1 | FileCheck -check-prefix CHECKSYMS %s - - -#CHECKSYMS: Name: .dynamic -#CHECKSYMS: Type: SHT_DYNAMIC -#CHECKSYMS: Address: [[TARGETA:[0xa-fA-f0-9]+]] -#CHECKSYMS: Name: .got.plt -#CHECKSYMS: Type: SHT_PROGBITS -#CHECKSYMS: Address: [[TARGETB:[0xa-fA-f0-9]+]] -#CHECKSYMS: Name: _DYNAMIC -#CHECKSYMS: Value: [[TARGETA]] -#CHECKSYMS: Section: .dynamic -#CHECKSYMS: Name: _GLOBAL_OFFSET_TABLE_ -#CHECKSYMS: Value: [[TARGETB]] -#CHECKSYMS: Section: .got.plt - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E54883EC10488B0500000000C745FC00000000C7000A000000E80000000031C98945F889C84883C4105DC36690554889E531C05DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x000000000000000B - Symbol: a - Type: R_X86_64_GOTPCREL - Addend: -4 - - Offset: 0x000000000000001D - Symbol: foo - Type: R_X86_64_PLT32 - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 00636C616E672076657273696F6E20332E362E302000 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C070890010000180000001C000000000000002E00000000410E108602430D060000001800000038000000000000000800000000410E108602430D06000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 - Addend: 0 - - Offset: 0x000000000000003C - Symbol: .text - Type: R_X86_64_PC32 - Addend: 48 -Symbols: - Local: - - Name: 1.c - Type: STT_FILE - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: a - Type: STT_OBJECT - Value: 0x0000000000000004 - Size: 0x0000000000000004 - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x0000000000000030 - Size: 0x0000000000000008 - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x000000000000002E - - Name: _GLOBAL_OFFSET_TABLE_ -... diff --git a/test/elf/X86_64/dynlib-nointerp-section.test b/test/elf/X86_64/dynlib-nointerp-section.test deleted file mode 100644 index dca3d925b38b..000000000000 --- a/test/elf/X86_64/dynlib-nointerp-section.test +++ /dev/null @@ -1,4 +0,0 @@ -RUN: lld -flavor gnu -target x86_64 %p/Inputs/no-interp-section.o -o %t -shared -RUN: llvm-objdump -section-headers %t | FileCheck %s - -CHECK-NOT: .interp diff --git a/test/elf/X86_64/dynlib-search.test b/test/elf/X86_64/dynlib-search.test deleted file mode 100644 index 017208ac11ad..000000000000 --- a/test/elf/X86_64/dynlib-search.test +++ /dev/null @@ -1,6 +0,0 @@ -# This tests the functionality for finding the shared library libfn.so for ELF -RUN: lld -flavor gnu -target x86_64 %p/Inputs/main.o -L%p/Inputs/ -lfn -o %t \ -RUN: --noinhibit-exec -t 2> %t1 -RUN: FileCheck %s < %t1 - -CHECK: {{[\/0-9A-Za-z_]+}}libfn.so diff --git a/test/elf/X86_64/dynsym-weak.test b/test/elf/X86_64/dynsym-weak.test deleted file mode 100644 index 4f05656a41f2..000000000000 --- a/test/elf/X86_64/dynsym-weak.test +++ /dev/null @@ -1,118 +0,0 @@ -# Check that a symbol declared as a week in a shared library gets a dynamic -# symbol table record in an executable file if this executabe file declares the -# symbol as strong. - -# RUN: yaml2obj -format=elf -docnum 1 %s > %t.foo.o -# RUN: lld -flavor gnu -target x86_64 -shared -o %t.so %t.foo.o -# RUN: yaml2obj -format=elf -docnum 2 %s > %t.main.o -# -# Link executable file with strong symbol. Weak symbol is in the shared lib. -# RUN: lld -flavor gnu -target x86_64 -e main -o %t1.exe %t.main.o %t.so -# RUN: llvm-readobj -dyn-symbols %t1.exe | FileCheck -check-prefix=EXE %s -# -# Link executable file. Strong and weak symbol come from different object files. -# RUN: lld -flavor gnu -target x86_64 -e main -o %t2.exe %t.main.o %t.foo.o -# RUN: llvm-readobj -dyn-symbols %t2.exe | FileCheck -check-prefix=OBJ %s -# -# Link shared library. Weak symbol is in the another shared lib. -# RUN: lld -flavor gnu -target x86_64 -shared -o %t.res.so %t.main.o %t.so -# RUN: llvm-readobj -dyn-symbols %t.res.so | FileCheck -check-prefix=SO %s - -# EXE: Symbol { -# EXE: Name: flag@ ({{[0-9]+}}) -# EXE-NEXT: Value: 0x{{[0-9A-F]+}} -# EXE-NEXT: Size: 4 -# EXE-NEXT: Binding: Global (0x1) -# EXE-NEXT: Type: Object (0x1) -# EXE-NEXT: Other: 0 -# EXE-NEXT: Section: .data (0x{{[0-9A-F]+}}) -# EXE-NEXT: } - -# OBJ-NOT: Name: flag@ ({{[0-9]+}}) - -# SO: Symbol { -# SO: Name: flag@ ({{[0-9]+}}) -# SO-NEXT: Value: 0x{{[0-9A-F]+}} -# SO-NEXT: Size: 4 -# SO-NEXT: Binding: Global (0x1) -# SO-NEXT: Type: Object (0x1) -# SO-NEXT: Other: 0 -# SO-NEXT: Section: .data (0x{{[0-9A-F]+}}) -# SO-NEXT: } - -# foo.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x08 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: flag - Type: R_X86_64_GOTPCREL - Addend: -4 - -Symbols: - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Size: 0x08 - Weak: - - Name: flag - -# main.o ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x08 - Info: .text - Relocations: - - Offset: 0x00 - Symbol: foo - Type: R_X86_64_PLT32 - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x04 - Size: 0x04 - -Symbols: - Global: - - Name: flag - Type: STT_OBJECT - Section: .data - Size: 0x04 - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x08 - - Name: foo -... diff --git a/test/elf/X86_64/extern-tls.test b/test/elf/X86_64/extern-tls.test deleted file mode 100644 index c8e7580e5f3c..000000000000 --- a/test/elf/X86_64/extern-tls.test +++ /dev/null @@ -1,16 +0,0 @@ -# This tests verifies that TLS variables have correct offsets -# when variables the TLS variables are not defined in the program -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/externtls.x86-64 -static \ -RUN: --output-filetype=yaml --noinhibit-exec | FileCheck %s -check-prefix=CHECKGOT - - - name: __got_tls_extern_tls -CHECKGOT: type: got -CHECKGOT: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ] -CHECKGOT: alignment: 2^3 -CHECKGOT: section-choice: custom-required -CHECKGOT: section-name: .got -CHECKGOT: permissions: rw- -CHECKGOT: references: -CHECKGOT: - kind: R_X86_64_TPOFF64 -CHECKGOT: offset: 0 -CHECKGOT: target: extern_tls diff --git a/test/elf/X86_64/general-dynamic-tls.test b/test/elf/X86_64/general-dynamic-tls.test deleted file mode 100644 index c1a6f6e5d120..000000000000 --- a/test/elf/X86_64/general-dynamic-tls.test +++ /dev/null @@ -1,129 +0,0 @@ -# This test exercises a simple general dynamic TLS access model in X86_64. -# -# It is composed of two parts: a program and a shared library. The shared -# library uses TLS, but the program does not. -# -# The shared library should import __tls_get_addr, since it uses the general -# dynamic TLS access mode (see www.akkadia.org/drepper/tls.pdf). Notice that -# once we support TLS strength reduction, this test should be updated, since -# this can be converted into a local dynamic TLS model. - -# Prepare inputs -#RUN: yaml2obj -format=elf %p/Inputs/generaltls-so.o.yaml -o=%t.o.so -#RUN: lld -flavor gnu -target x86_64 -shared %t.o.so -o %T/libgeneraltls.so -#RUN: yaml2obj -format=elf %s -o=%t.o - -# Link - (we supply --defsym=__tls_get_addr to avoid the need to link with -# system libraries) -#RUN: lld -flavor gnu -target x86_64 -e main %t.o -L%T -lgeneraltls -o %t1 \ -#RUN: --defsym=__tls_get_addr=0 - -# Check -#RUN: llvm-readobj -dyn-symbols %t1 | FileCheck -check-prefix CHECKPROG %s -#RUN: llvm-readobj -relocations -dyn-symbols %T/libgeneraltls.so | FileCheck \ -#RUN: -check-prefix CHECKDSO %s - -# Test case generated with the following code: -# -# DSO: (file %p/Inputs/generaltls-so.o.yaml) -# -# __thread int mynumber=33; -# -# int getnumber() { -# return mynumber; -# } -# -# Program: (this file). Note: The printf() relocation was removed to simplify -# this test and allow us to test this without libc. -# -# #include <stdio.h> -# int getnumber(); -# -# int main() { -# printf("getnumber() = %d\n", getnumber()); -# return 0; -# } -# ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E54883EC10C745FC00000000B000E80000000048BF000000000000000089C6B000E80000000031F68945F889F04883C4105DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000012 - Symbol: getnumber - Type: R_X86_64_PC32 - Addend: -4 - - Offset: 0x0000000000000018 - Symbol: .rodata.str1.1 - Type: R_X86_64_64 - Addend: 0 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .rodata.str1.1 - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 6765746E756D6265722829203D2025640A00 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .rodata.str1.1 - Type: STT_SECTION - Section: .rodata.str1.1 - Global: - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x0000000000000036 - - Name: getnumber - -# Program should import the function defined in the shared library -#CHECKPROG: getnumber@ -# Program should not import __tls_get_addr, since it does not directly use TLS -#CHECKPROG-NOT: __tls_get_addr@ - -# Check for the presence of X86_64 TLS relocations in the shared library -#CHECKDSO: R_X86_64_DTPMOD64 -#CHECKDSO: R_X86_64_DTPOFF64 -#CHECKDSO: R_X86_64_JUMP_SLOT - -# The shared library should import __tls_get_addr, since it uses the general -# dynamic TLS access mode. -#CHECKDSO: Name: __tls_get_addr@ -#CHECKDSO-NEXT: Value: 0x0 -#CHECKDSO-NEXT: Size: 0 -#CHECKDSO-NEXT: Binding: Global -#CHECKDSO-NEXT: Type: None -#CHECKDSO-NEXT: Other: 0 -#CHECKDSO-NEXT: Section: Undefined - diff --git a/test/elf/X86_64/imagebase.test b/test/elf/X86_64/imagebase.test deleted file mode 100644 index 67c3b6e1ff49..000000000000 --- a/test/elf/X86_64/imagebase.test +++ /dev/null @@ -1,94 +0,0 @@ -# Checks that segments start at the image address specified. - -# Build executable -# RUN: yaml2obj -format=elf -docnum 1 %s -o %t.o -# RUN: lld -flavor gnu -target x86_64 %t.o -o %t.exe -static \ -# RUN: --no-align-segments --noinhibit-exec --image-base 0x600000 -# RUN: llvm-readobj -program-headers %t.exe | FileCheck %s -# -#CHECK: VirtualAddress: 0x600000 -#CHECK: PhysicalAddress: 0x600000 -#CHECK: VirtualAddress: 0x600178 -#CHECK: PhysicalAddress: 0x600178 - -# object ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E5B864000000C745FC000000005DC366666666662E0F1F840000000000554889E531C05DC3 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '64000000' - - Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '64000000' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C070890010000180000001C000000000000001200000000410E108602430D060000001800000038000000000000000800000000410E108602430D06000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 - Addend: 0 - - Offset: 0x000000000000003C - Symbol: .text - Type: R_X86_64_PC32 - Addend: 32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x0000000000000020 - Size: 0x0000000000000008 - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x0000000000000012 - - Name: myval - Type: STT_OBJECT - Section: .bss - Size: 0x0000000000000004 - - Name: val - Type: STT_OBJECT - Section: .rodata - Size: 0x0000000000000004 -... diff --git a/test/elf/X86_64/initfini-order.test b/test/elf/X86_64/initfini-order.test deleted file mode 100644 index d3981eb0914e..000000000000 --- a/test/elf/X86_64/initfini-order.test +++ /dev/null @@ -1,10 +0,0 @@ -# This tests the functionality that lld is able to emit -# init_array/fini_array sections in the right order. - -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/initfini.o \ -RUN: --noinhibit-exec -o %t -RUN: llvm-objdump -t -section-headers %t | FileCheck %s - -CHECK: {{[0-9]+}} .eh_frame {{[0-9a-z]+}} {{[0-9a-z]+}} DATA -CHECK: {{[0-9]+}} .init_array {{[0-9a-z]+}} {{[0-9a-z]+}} DATA -CHECK: {{[0-9]+}} .fini_array {{[0-9a-z]+}} {{[0-9a-z]+}} DATA diff --git a/test/elf/X86_64/initfini.test b/test/elf/X86_64/initfini.test deleted file mode 100644 index d882352a1c38..000000000000 --- a/test/elf/X86_64/initfini.test +++ /dev/null @@ -1,23 +0,0 @@ -# This tests the functionality that lld is able to read -# init_array/fini_array sections in the input ELF. This -# corresponds to the the .init_array/.fini_array sections -# in the output ELF. - -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/initfini.o \ -RUN: --noinhibit-exec --output-filetype=yaml -o %t -RUN: FileCheck %s < %t - -CHECK: - type: data -CHECK: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ] -CHECK: section-name: .init_array -CHECK: references: -CHECK: - kind: R_X86_64_64 -CHECK: offset: 0 -CHECK: target: constructor -CHECK: - type: data -CHECK: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ] -CHECK: section-name: .fini_array -CHECK: references: -CHECK: - kind: R_X86_64_64 -CHECK: offset: 0 -CHECK: target: destructor diff --git a/test/elf/X86_64/largebss.test b/test/elf/X86_64/largebss.test deleted file mode 100644 index d2dde4954139..000000000000 --- a/test/elf/X86_64/largebss.test +++ /dev/null @@ -1,20 +0,0 @@ -# This tests the functionality of handling BSS symbols -# BSS symbols don't occupy file content and are associated with typeZeroFill -# Any typeZeroFill content wouldn't have space reserved in the file to store -# its content - -RUN: lld -flavor gnu -target x86_64 %p/Inputs/largebss.o --output-filetype=yaml --noinhibit-exec | FileCheck %s - -CHECK: - name: largecommon -CHECK: scope: global -CHECK: type: zero-fill -CHECK: size: 4000 -CHECK: merge: as-tentative -CHECK: - name: largebss -CHECK: scope: global -CHECK: type: zero-fill -CHECK: size: 4000 -CHECK: - name: largetbss -CHECK: scope: global -CHECK: type: thread-zero-fill -CHECK: size: 4000 diff --git a/test/elf/X86_64/layoutpass-order.test b/test/elf/X86_64/layoutpass-order.test deleted file mode 100644 index e4ebef1d52db..000000000000 --- a/test/elf/X86_64/layoutpass-order.test +++ /dev/null @@ -1,14 +0,0 @@ -# This test checks that we follow the command line order of layouting -# symbols in the output file - -RUN: lld -flavor gnu -target x86_64 %p/Inputs/layoutpass/1.o \ -RUN: %p/Inputs/layoutpass/lib2.a %p/Inputs/layoutpass/3.o -o %t \ -RUN: --noinhibit-exec -static - -RUN: llvm-nm -n %t | FileCheck -check-prefix=SYMBOLSORDER %s - -SYMBOLSORDER: {{[A-Fa-f0-9]+}} T main -SYMBOLSORDER: {{[A-Fa-f0-9]+}} T b -SYMBOLSORDER: {{[A-Fa-f0-9]+}} T a -SYMBOLSORDER: {{[A-Fa-f0-9]+}} T c -SYMBOLSORDER: {{[A-Fa-f0-9]+}} T d diff --git a/test/elf/X86_64/maxpagesize.test b/test/elf/X86_64/maxpagesize.test deleted file mode 100644 index 649d09fcada0..000000000000 --- a/test/elf/X86_64/maxpagesize.test +++ /dev/null @@ -1,113 +0,0 @@ -# Checks that segments are aligned as per ELF spec when the user specifies -# max-page-size option, and the segment alignment is set to the page size -# specified by the user. - -# Build executable -# RUN: yaml2obj -format=elf -docnum 1 %s -o %t.o -# RUN: not lld -flavor gnu -target x86_64 %t.o -o %t.exe -static \ -# RUN: --no-align-segments --noinhibit-exec -z max-page-size=0 -# RUN: not lld -flavor gnu -target x86_64 %t.o -o %t.exe -static \ -# RUN: --no-align-segments --noinhibit-exec -z max-page-size=0xFF -# RUN: not lld -flavor gnu -target x86_64 %t.o -o %t.exe -static \ -# RUN: --no-align-segments --noinhibit-exec -z max-page-size=0x1010 -# RUN: lld -flavor gnu -target x86_64 %t.o -o %t1.exe -static \ -# RUN: --no-align-segments --noinhibit-exec -z max-page-size=0x100000 -# RUN: lld -flavor gnu -target x86_64 %t.o -o %t.exe -static \ -# RUN: --no-align-segments --noinhibit-exec -z max-page-size=0x10000 -# RUN: llvm-readobj -program-headers %t.exe | FileCheck %s -# RUN: llvm-readobj -program-headers %t1.exe | FileCheck %s -check-prefix=CHECKLARGE -# -#CHECK: VirtualAddress: 0x400000 -#CHECK: PhysicalAddress: 0x400000 -#CHECK: Alignment: 65536 -#CHECK: VirtualAddress: 0x400178 -#CHECK: PhysicalAddress: 0x400178 -#CHECK: Alignment: 65536 -#CHECKLARGE: VirtualAddress: 0x400000 -#CHECKLARGE: PhysicalAddress: 0x400000 -#CHECKLARGE: Alignment: 1048576 -#CHECKLARGE: VirtualAddress: 0x400178 -#CHECKLARGE: PhysicalAddress: 0x400178 -#CHECKLARGE: Alignment: 1048576 - -# object ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E5B864000000C745FC000000005DC366666666662E0F1F840000000000554889E531C05DC3 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '64000000' - - Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '64000000' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C070890010000180000001C000000000000001200000000410E108602430D060000001800000038000000000000000800000000410E108602430D06000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 - Addend: 0 - - Offset: 0x000000000000003C - Symbol: .text - Type: R_X86_64_PC32 - Addend: 32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x0000000000000020 - Size: 0x0000000000000008 - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x0000000000000012 - - Name: myval - Type: STT_OBJECT - Section: .bss - Size: 0x0000000000000004 - - Name: val - Type: STT_OBJECT - Section: .rodata - Size: 0x0000000000000004 -... diff --git a/test/elf/X86_64/mergesimilarstrings.test b/test/elf/X86_64/mergesimilarstrings.test deleted file mode 100644 index 3836f0b50758..000000000000 --- a/test/elf/X86_64/mergesimilarstrings.test +++ /dev/null @@ -1,47 +0,0 @@ -# Check that relocations to section that contains strings is properly handled -# when merging strings is enabled. -# -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target x86_64 %t.o --noinhibit-exec -o %t1.out -# RUN: llvm-readobj -sections %t1.out | FileCheck %s -# RUN: lld -flavor gnu -target x86_64 %t.o --noinhibit-exec -o %t2.out --output-filetype=yaml -# RUN: FileCheck %s -check-prefix=CHECKRELOCS < %t2.out - -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Content: 54889e5488d3d00000000e80000000088d3d00000000e800000000b8000000005dc3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x04 - Info: .text - Relocations: - - Offset: 0x07 - Symbol: .rodata - Type: R_X86_64_PC32 - Addend: -4 - - Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x01 - Content: 48656c6c6f20576f726c6400576f726c6400 -Symbols: - Global: - - Name: .rodata - Section: .rodata - -#CHECK: Name: .rodata -#CHECK: Size: 18 -#CHECKRELOCS: references: -#CHECKRELOCS: - kind: R_X86_64_PC32 -#CHECKRELOCS: offset: 7 -#CHECKRELOCS: target: .rodata -#CHECKRELOCS: addend: -4 diff --git a/test/elf/X86_64/multi-weak-layout.test b/test/elf/X86_64/multi-weak-layout.test deleted file mode 100644 index 4bbf1dfc7e90..000000000000 --- a/test/elf/X86_64/multi-weak-layout.test +++ /dev/null @@ -1,52 +0,0 @@ -# Test that we are able to layout multiple weak symbols -# properly - -RUN: lld -flavor gnu -target x86_64 %p/Inputs/multiweaksyms.o \ -RUN: --noinhibit-exec -static --output-filetype=yaml -o %t -RUN: FileCheck %s -check-prefix=WEAKSYMS < %t - -WEAKSYMS: - type: data -WEAKSYMS: alignment: 2^3 -WEAKSYMS: references: -WEAKSYMS: - kind: layout-after -WEAKSYMS: offset: 0 -WEAKSYMS: target: [[L001:[-a-zA-Z0-9_]+]] -WEAKSYMS: - name: myfn2 -WEAKSYMS: scope: global -WEAKSYMS: type: data -WEAKSYMS: merge: as-weak -WEAKSYMS: alignment: 2^3 -WEAKSYMS: references: -WEAKSYMS: - kind: layout-after -WEAKSYMS: offset: 0 -WEAKSYMS: target: [[L001]] -WEAKSYMS: - ref-name: [[L001]] -WEAKSYMS: scope: global -WEAKSYMS: type: data -WEAKSYMS: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ] -WEAKSYMS: alignment: 2^3 -WEAKSYMS: references: -WEAKSYMS: - kind: R_X86_64_64 -WEAKSYMS: offset: 0 -WEAKSYMS: target: test -WEAKSYMS: - kind: layout-after -WEAKSYMS: offset: 0 -WEAKSYMS: target: [[L003:[-a-zA-Z0-9_]+]] -WEAKSYMS: - name: myfn1 -WEAKSYMS: scope: global -WEAKSYMS: type: data -WEAKSYMS: merge: as-weak -WEAKSYMS: alignment: 2^3 -WEAKSYMS: references: -WEAKSYMS: - kind: layout-after -WEAKSYMS: offset: 0 -WEAKSYMS: target: [[L003]] -WEAKSYMS: - ref-name: [[L003]] -WEAKSYMS: scope: global -WEAKSYMS: type: data -WEAKSYMS: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ] -WEAKSYMS: alignment: 2^3 -WEAKSYMS: references: -WEAKSYMS: - kind: R_X86_64_64 -WEAKSYMS: offset: 0 -WEAKSYMS: target: test diff --git a/test/elf/X86_64/multi-weak-override.test b/test/elf/X86_64/multi-weak-override.test deleted file mode 100644 index f2d0e0c2f77b..000000000000 --- a/test/elf/X86_64/multi-weak-override.test +++ /dev/null @@ -1,16 +0,0 @@ -# Test for weak symbol getting overridden -RUN: lld -flavor gnu -target x86_64 %p/Inputs/multi-weak.o \ -RUN: %p/Inputs/multi-ovrd.o -o %t -e main --noinhibit-exec -RUN: llvm-nm -n %t | FileCheck -check-prefix=WEAKORDER %s -RUN: lld -flavor gnu -target x86_64 %p/Inputs/multi-weak.o \ -RUN: %p/Inputs/multi-ovrd.o --output-filetype=yaml -o %t2 --noinhibit-exec -RUN: FileCheck -check-prefix=WEAKATOMSORDER %s < %t2 - -WEAKORDER: {{[0-9a-f]+}} T f -WEAKORDER: {{[0-9a-f]+}} T g - -WEAKATOMSORDER: - ref-name: {{[A-Z0-9]+}} -WEAKATOMSORDER: - ref-name: {{[A-Z0-9]+}} -WEAKATOMSORDER: - name: f -WEAKATOMSORDER: - name: g - diff --git a/test/elf/X86_64/multi-weak-syms-order.test b/test/elf/X86_64/multi-weak-syms-order.test deleted file mode 100644 index 2b414593fed4..000000000000 --- a/test/elf/X86_64/multi-weak-syms-order.test +++ /dev/null @@ -1,13 +0,0 @@ -# Test for weak symbol getting overridden -RUN: lld -flavor gnu -target x86_64 %p/Inputs/multi-weak.o -o %t --noinhibit-exec -RUN: llvm-nm -n %t | FileCheck -check-prefix=WEAKORDER %s -RUN: lld -flavor gnu -target x86_64 %p/Inputs/multi-weak.o -o %t2 --output-filetype=yaml --noinhibit-exec -RUN: FileCheck -check-prefix=WEAKATOMSORDER %s < %t2 - -WEAKORDER: {{[0-9a-f]+}} T fn -WEAKORDER: {{[0-9a-f]+}} T f -WEAKORDER: {{[0-9a-f]+}} T g -WEAKORDER: {{[0-9a-f]+}} T main - -WEAKATOMSORDER: - name: f -WEAKATOMSORDER: - name: g diff --git a/test/elf/X86_64/nmagic.test b/test/elf/X86_64/nmagic.test deleted file mode 100644 index b313c1f051ba..000000000000 --- a/test/elf/X86_64/nmagic.test +++ /dev/null @@ -1,91 +0,0 @@ -# This tests verifies functionality of NMAGIC that we create only two segments, -# PT_LOAD, PT_TLS -# The data segment should be aligned to a page boundary -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/nmagic.o \ -RUN: --noinhibit-exec -o %t --nmagic -static -RUN: llvm-readobj -sections %t | FileCheck -check-prefix=NMAGICSECTIONS %s -RUN: llvm-readobj -program-headers %t | FileCheck -check-prefix=NMAGICPROGRAMHEADERS %s - -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Index: 0 -NMAGICSECTIONS: Name: (0) -NMAGICSECTIONS: Type: SHT_NULL (0x0) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .text -NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .eh_frame -NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .tdata -NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .tbss -NMAGICSECTIONS: Type: SHT_NOBITS (0x8) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .got.plt -NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .data -NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .bss -NMAGICSECTIONS: Type: SHT_NOBITS (0x8) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .comment -NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .note.GNU-stack -NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .shstrtab -NMAGICSECTIONS: Type: SHT_STRTAB (0x3) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .symtab -NMAGICSECTIONS: Type: SHT_SYMTAB (0x2) -NMAGICSECTIONS: } -NMAGICSECTIONS: Section { -NMAGICSECTIONS: Name: .strtab -NMAGICSECTIONS: Type: SHT_STRTAB (0x3) -NMAGICSECTIONS: } - -NMAGICPROGRAMHEADERS: ProgramHeaders [ -NMAGICPROGRAMHEADERS: ProgramHeader { -NMAGICPROGRAMHEADERS: Type: PT_LOAD (0x1) -NMAGICPROGRAMHEADERS: Offset: 0x0 -NMAGICPROGRAMHEADERS: VirtualAddress: 0x400000 -NMAGICPROGRAMHEADERS: PhysicalAddress: 0x400000 -NMAGICPROGRAMHEADERS: FileSize: 4108 -NMAGICPROGRAMHEADERS: MemSize: 4108 -NMAGICPROGRAMHEADERS: Flags [ (0x7) -NMAGICPROGRAMHEADERS: PF_R (0x4) -NMAGICPROGRAMHEADERS: PF_W (0x2) -NMAGICPROGRAMHEADERS: PF_X (0x1) -NMAGICPROGRAMHEADERS: ] -NMAGICPROGRAMHEADERS: Alignment: 8 -NMAGICPROGRAMHEADERS: } -NMAGICPROGRAMHEADERS: ProgramHeader { -NMAGICPROGRAMHEADERS: Type: PT_TLS (0x7) -NMAGICPROGRAMHEADERS: Offset: 0x1000 -NMAGICPROGRAMHEADERS: VirtualAddress: 0x401000 -NMAGICPROGRAMHEADERS: PhysicalAddress: 0x401000 -NMAGICPROGRAMHEADERS: FileSize: 4 -NMAGICPROGRAMHEADERS: MemSize: 12 -NMAGICPROGRAMHEADERS: Flags [ (0x6) -NMAGICPROGRAMHEADERS: PF_R (0x4) -NMAGICPROGRAMHEADERS: PF_W (0x2) -NMAGICPROGRAMHEADERS: ] -NMAGICPROGRAMHEADERS: Alignment: 4 -NMAGICPROGRAMHEADERS: } -NMAGICPROGRAMHEADERS: ] diff --git a/test/elf/X86_64/noalignsegments.test b/test/elf/X86_64/noalignsegments.test deleted file mode 100644 index 8432bda51f00..000000000000 --- a/test/elf/X86_64/noalignsegments.test +++ /dev/null @@ -1,95 +0,0 @@ -# Checks that segments are aligned as per ELF spec than aligning each -# segment fileoffset / virtual address to a page. - -# Build executable -# RUN: yaml2obj -format=elf -docnum 1 %s -o %t.o -# RUN: lld -flavor gnu -target x86_64 %t.o -o %t.exe -static \ -# RUN: --no-align-segments --noinhibit-exec -# RUN: llvm-readobj -program-headers %t.exe | FileCheck %s -# -#CHECK: VirtualAddress: 0x400000 -#CHECK: PhysicalAddress: 0x400000 -#CHECK: VirtualAddress: 0x400178 -#CHECK: PhysicalAddress: 0x400178 - -# object ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E5B864000000C745FC000000005DC366666666662E0F1F840000000000554889E531C05DC3 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '64000000' - - Name: .rodata - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '64000000' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C070890010000180000001C000000000000001200000000410E108602430D060000001800000038000000000000000800000000410E108602430D06000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 - Addend: 0 - - Offset: 0x000000000000003C - Symbol: .text - Type: R_X86_64_PC32 - Addend: 32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x0000000000000020 - Size: 0x0000000000000008 - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x0000000000000012 - - Name: myval - Type: STT_OBJECT - Section: .bss - Size: 0x0000000000000004 - - Name: val - Type: STT_OBJECT - Section: .rodata - Size: 0x0000000000000004 -... diff --git a/test/elf/X86_64/note-sections-ro_plus_rw.test b/test/elf/X86_64/note-sections-ro_plus_rw.test deleted file mode 100644 index ddeeaa41a758..000000000000 --- a/test/elf/X86_64/note-sections-ro_plus_rw.test +++ /dev/null @@ -1,42 +0,0 @@ -# This tests the functionality that lld is able to recreate the note sections -# if they appear in the input, it looks like we need to differentiate RO note -# sections from RW note sections, and each creating a segment of its own - -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/note_ro_rw.o \ -RUN: --noinhibit-exec -o %t -static -RUN: llvm-readobj -sections %t | FileCheck -check-prefix=NOTESECTIONS %s -RUN: llvm-readobj -program-headers %t | FileCheck -check-prefix=NOTESEGMENT %s - -NOTESECTIONS: Section { -NOTESECTIONS: Name: .note.ro (1) -NOTESECTIONS: Type: SHT_NOTE (0x7) -NOTESECTIONS: Flags [ (0x2) -NOTESECTIONS: SHF_ALLOC (0x2) -NOTESECTIONS: ] -NOTESECTIONS: AddressAlignment: 4 -NOTESECTIONS: } -NOTESECTIONS: Section { -NOTESECTIONS: Name: .note.rw (31) -NOTESECTIONS: Type: SHT_NOTE (0x7) -NOTESECTIONS: Flags [ (0x3) -NOTESECTIONS: SHF_ALLOC (0x2) -NOTESECTIONS: SHF_WRITE (0x1) -NOTESECTIONS: ] -NOTESECTIONS: Size: 28 -NOTESECTIONS: AddressAlignment: 4 -NOTESECTIONS: } -NOTESEGMENT: ProgramHeader { -NOTESEGMENT: Type: PT_NOTE (0x4) -NOTESEGMENT: Flags [ (0x4) -NOTESEGMENT: PF_R (0x4) -NOTESEGMENT: ] -NOTESEGMENT: Alignment: 4 -NOTESEGMENT: } -NOTESEGMENT: ProgramHeader { -NOTESEGMENT: Type: PT_NOTE (0x4) -NOTESEGMENT: Flags [ (0x6) -NOTESEGMENT: PF_R (0x4) -NOTESEGMENT: PF_W (0x2) -NOTESEGMENT: ] -NOTESEGMENT: Alignment: 4 -NOTESEGMENT: } diff --git a/test/elf/X86_64/note-sections.test b/test/elf/X86_64/note-sections.test deleted file mode 100644 index a49f95cf4a27..000000000000 --- a/test/elf/X86_64/note-sections.test +++ /dev/null @@ -1,23 +0,0 @@ -# This tests the functionality that lld is able to recreate the note sections -# if they appear in the input - -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/note.o \ -RUN: --noinhibit-exec -o %t -static -RUN: llvm-readobj -sections %t | FileCheck -check-prefix=NOTESECTIONS %s -RUN: llvm-readobj -program-headers %t | FileCheck -check-prefix=NOTESEGMENT %s - - -NOTESECTIONS: Section { -NOTESECTIONS: Index: 1 -NOTESECTIONS: Name: .note.ident (1) -NOTESECTIONS: Type: SHT_NOTE (0x7) -NOTESECTIONS: Size: 28 -NOTESECTIONS: AddressAlignment: 4 -NOTESECTIONS: } - -NOTESEGMENT: ProgramHeader { -NOTESEGMENT: Type: PT_NOTE (0x4) -NOTESEGMENT: FileSize: 28 -NOTESEGMENT: MemSize: 28 -NOTESEGMENT: Alignment: 4 -NOTESEGMENT: } diff --git a/test/elf/X86_64/omagic.test b/test/elf/X86_64/omagic.test deleted file mode 100644 index 437d2e2a9f98..000000000000 --- a/test/elf/X86_64/omagic.test +++ /dev/null @@ -1,237 +0,0 @@ -# This tests verifies functionality of omagic that we create only two segments, -# PT_LOAD, PT_TLS -# The data segment should not be aligned to a page boundary -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/nmagic.o \ -RUN: --noinhibit-exec -o %t --omagic -static -RUN: llvm-readobj -sections %t | FileCheck -check-prefix=OMAGICSECTIONS %s -RUN: llvm-readobj -program-headers %t | FileCheck -check-prefix=OMAGICPROGRAMHEADERS %s - -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: (0) -OMAGICSECTIONS: Type: SHT_NULL (0x0) -OMAGICSECTIONS: Flags [ (0x0) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x0 -OMAGICSECTIONS: Offset: 0x0 -OMAGICSECTIONS: Size: 0 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 0 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .text -OMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -OMAGICSECTIONS: Flags [ (0x6) -OMAGICSECTIONS: SHF_ALLOC (0x2) -OMAGICSECTIONS: SHF_EXECINSTR (0x4) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x4000E8 -OMAGICSECTIONS: Offset: 0xE8 -OMAGICSECTIONS: Size: 11 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 4 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .eh_frame -OMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -OMAGICSECTIONS: Flags [ (0x2) -OMAGICSECTIONS: SHF_ALLOC (0x2) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x4000F8 -OMAGICSECTIONS: Offset: 0xF8 -OMAGICSECTIONS: Size: 56 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 8 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .eh_frame_hdr -OMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -OMAGICSECTIONS: Flags [ (0x2) -OMAGICSECTIONS: SHF_ALLOC (0x2) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x400130 -OMAGICSECTIONS: Offset: 0x130 -OMAGICSECTIONS: Size: 8 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 8 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .tdata -OMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -OMAGICSECTIONS: Flags [ (0x403) -OMAGICSECTIONS: SHF_ALLOC (0x2) -OMAGICSECTIONS: SHF_TLS (0x400) -OMAGICSECTIONS: SHF_WRITE (0x1) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x400138 -OMAGICSECTIONS: Offset: 0x138 -OMAGICSECTIONS: Size: 4 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 4 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .tbss -OMAGICSECTIONS: Type: SHT_NOBITS (0x8) -OMAGICSECTIONS: Flags [ (0x403) -OMAGICSECTIONS: SHF_ALLOC (0x2) -OMAGICSECTIONS: SHF_TLS (0x400) -OMAGICSECTIONS: SHF_WRITE (0x1) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x40013C -OMAGICSECTIONS: Offset: 0x13C -OMAGICSECTIONS: Size: 8 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 4 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .got.plt -OMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -OMAGICSECTIONS: Flags [ (0x3) -OMAGICSECTIONS: SHF_ALLOC (0x2) -OMAGICSECTIONS: SHF_WRITE (0x1) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x400140 -OMAGICSECTIONS: Offset: 0x140 -OMAGICSECTIONS: Size: 0 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 8 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .data -OMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -OMAGICSECTIONS: Flags [ (0x3) -OMAGICSECTIONS: SHF_ALLOC (0x2) -OMAGICSECTIONS: SHF_WRITE (0x1) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x400140 -OMAGICSECTIONS: Offset: 0x140 -OMAGICSECTIONS: Size: 4 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 4 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .bss -OMAGICSECTIONS: Type: SHT_NOBITS (0x8) -OMAGICSECTIONS: Flags [ (0x3) -OMAGICSECTIONS: SHF_ALLOC (0x2) -OMAGICSECTIONS: SHF_WRITE (0x1) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x400144 -OMAGICSECTIONS: Offset: 0x144 -OMAGICSECTIONS: Size: 0 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 4 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .comment -OMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -OMAGICSECTIONS: Flags [ (0x0) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x0 -OMAGICSECTIONS: Offset: 0x144 -OMAGICSECTIONS: Size: 43 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 1 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .note.GNU-stack -OMAGICSECTIONS: Type: SHT_PROGBITS (0x1) -OMAGICSECTIONS: Flags [ (0x0) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x0 -OMAGICSECTIONS: Offset: 0x16F -OMAGICSECTIONS: Size: 0 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 1 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .shstrtab -OMAGICSECTIONS: Type: SHT_STRTAB (0x3) -OMAGICSECTIONS: Flags [ (0x0) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x0 -OMAGICSECTIONS: Offset: 0x16F -OMAGICSECTIONS: Size: 115 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 1 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .symtab -OMAGICSECTIONS: Type: SHT_SYMTAB (0x2) -OMAGICSECTIONS: Flags [ (0x0) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x0 -OMAGICSECTIONS: Offset: 0x1E8 -OMAGICSECTIONS: Size: 504 -OMAGICSECTIONS: Link: 13 -OMAGICSECTIONS: Info: 2 -OMAGICSECTIONS: AddressAlignment: 8 -OMAGICSECTIONS: EntrySize: 24 -OMAGICSECTIONS: } -OMAGICSECTIONS: Section { -OMAGICSECTIONS: Name: .strtab -OMAGICSECTIONS: Type: SHT_STRTAB (0x3) -OMAGICSECTIONS: Flags [ (0x0) -OMAGICSECTIONS: ] -OMAGICSECTIONS: Address: 0x0 -OMAGICSECTIONS: Offset: 0x3E0 -OMAGICSECTIONS: Size: 231 -OMAGICSECTIONS: Link: 0 -OMAGICSECTIONS: Info: 0 -OMAGICSECTIONS: AddressAlignment: 1 -OMAGICSECTIONS: EntrySize: 0 -OMAGICSECTIONS: } -OMAGICSECTIONS: ] - -OMAGICPROGRAMHEADERS: ProgramHeaders [ -OMAGICPROGRAMHEADERS: ProgramHeader { -OMAGICPROGRAMHEADERS: Type: PT_LOAD (0x1) -OMAGICPROGRAMHEADERS: Offset: 0x0 -OMAGICPROGRAMHEADERS: VirtualAddress: 0x400000 -OMAGICPROGRAMHEADERS: PhysicalAddress: 0x400000 -OMAGICPROGRAMHEADERS: FileSize: 324 -OMAGICPROGRAMHEADERS: MemSize: 324 -OMAGICPROGRAMHEADERS: Flags [ (0x7) -OMAGICPROGRAMHEADERS: PF_R (0x4) -OMAGICPROGRAMHEADERS: PF_W (0x2) -OMAGICPROGRAMHEADERS: PF_X (0x1) -OMAGICPROGRAMHEADERS: ] -OMAGICPROGRAMHEADERS: Alignment: 8 -OMAGICPROGRAMHEADERS: } -OMAGICPROGRAMHEADERS: ProgramHeader { -OMAGICPROGRAMHEADERS: Type: PT_TLS (0x7) -OMAGICPROGRAMHEADERS: Offset: 0x138 -OMAGICPROGRAMHEADERS: VirtualAddress: 0x400138 -OMAGICPROGRAMHEADERS: PhysicalAddress: 0x400138 -OMAGICPROGRAMHEADERS: FileSize: 4 -OMAGICPROGRAMHEADERS: MemSize: 12 -OMAGICPROGRAMHEADERS: Flags [ (0x6) -OMAGICPROGRAMHEADERS: PF_R (0x4) -OMAGICPROGRAMHEADERS: PF_W (0x2) -OMAGICPROGRAMHEADERS: ] -OMAGICPROGRAMHEADERS: Alignment: 4 -OMAGICPROGRAMHEADERS: } -OMAGICPROGRAMHEADERS: ] diff --git a/test/elf/X86_64/outputsegments.test b/test/elf/X86_64/outputsegments.test deleted file mode 100644 index ab6ba8deb47d..000000000000 --- a/test/elf/X86_64/outputsegments.test +++ /dev/null @@ -1,189 +0,0 @@ -# Tests that lld does not create separate segment if the input sections are part -# of the same output section - -# Build executable -# RUN: yaml2obj -format=elf -docnum 1 %s -o %t.o -# RUN: lld -flavor gnu -target x86_64 %t.o -o %t1.exe -static \ -# RUN: --no-align-segments --noinhibit-exec -# RUN: lld -flavor gnu -target x86_64 %t.o -o %t2.exe -static \ -# RUN: --noinhibit-exec -# RUN: llvm-readobj -program-headers %t1.exe | FileCheck %s -check-prefix=SEGMENTS -# RUN: llvm-readobj -program-headers %t2.exe | FileCheck %s -check-prefix=SEGMENTS -# -#SEGMENTS: VirtualAddress: 0x400000 -#SEGMENTS: PhysicalAddress: 0x400000 -#SEGMENTS: FileSize: 288 -#SEGMENTS: MemSize: 288 -#SEGMENTS: VirtualAddress: 0x404000 -#SEGMENTS: PhysicalAddress: 0x404000 -#SEGMENTS: FileSize: 16608 -#SEGMENTS: MemSize: 16608 -#SEGMENTS: Alignment: 16384 -# -# object ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .text.foo - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000002000 - Content: 554889E54883EC1048BF0000000000000000B000E800000000B9000000008945FC89C84883C4105DC3 - - Name: .rela.text.foo - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text.foo - Relocations: - - Offset: 0x000000000000000A - Symbol: .rodata.str1.1 - Type: R_X86_64_64 - Addend: 0 - - Offset: 0x0000000000000015 - Symbol: printf - Type: R_X86_64_PC32 - Addend: -4 - - Name: .text.bar - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000004000 - Content: 554889E54883EC1048BF0000000000000000B000E800000000B9000000008945FC89C84883C4105DC3 - - Name: .rela.text.bar - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text.bar - Relocations: - - Offset: 0x000000000000000A - Symbol: .rodata.str1.1 - Type: R_X86_64_64 - Addend: 7 - - Offset: 0x0000000000000015 - Symbol: printf - Type: R_X86_64_PC32 - Addend: -4 - - Name: .text.main - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E54883EC10C745FC00000000E8000000008945F8E8000000008B4DF801C189C84883C4105DC3 - - Name: .rela.text.main - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text.main - Relocations: - - Offset: 0x0000000000000010 - Symbol: foo - Type: R_X86_64_PC32 - Addend: -4 - - Offset: 0x0000000000000018 - Symbol: bar - Type: R_X86_64_PC32 - Addend: -4 - - Name: .rodata.str1.1 - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 48656C6C6F0A00576F726C640A00 - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 005562756E747520636C616E672076657273696F6E20332E352E302D73766E3231373330342D317E6578703120286272616E636865732F72656C656173655F33352920286261736564206F6E204C4C564D20332E352E302900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C070890010000180000001C000000000000002900000000410E108602430D060000001800000038000000000000002900000000410E108602430D060000001C00000054000000000000002900000000410E108602430D0600000000000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text.foo - Type: R_X86_64_PC32 - Addend: 0 - - Offset: 0x000000000000003C - Symbol: .text.bar - Type: R_X86_64_PC32 - Addend: 0 - - Offset: 0x0000000000000058 - Symbol: .text.main - Type: R_X86_64_PC32 - Addend: 0 -Symbols: - Local: - - Name: 1.c - Type: STT_FILE - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .text.foo - Type: STT_SECTION - Section: .text.foo - - Name: .text.bar - Type: STT_SECTION - Section: .text.bar - - Name: .text.main - Type: STT_SECTION - Section: .text.main - - Name: .rodata.str1.1 - Type: STT_SECTION - Section: .rodata.str1.1 - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: bar - Type: STT_FUNC - Section: .text.bar - Size: 0x0000000000000029 - - Name: foo - Type: STT_FUNC - Section: .text.foo - Size: 0x0000000000000029 - - Name: main - Type: STT_FUNC - Section: .text.main - Size: 0x0000000000000029 - - Name: printf -... diff --git a/test/elf/X86_64/reloc_r_x86_64_16.test b/test/elf/X86_64/reloc_r_x86_64_16.test deleted file mode 100644 index 7cca839eb623..000000000000 --- a/test/elf/X86_64/reloc_r_x86_64_16.test +++ /dev/null @@ -1,60 +0,0 @@ -# Tests that lld can handle relocations of type R_X86_64_16 -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t1.o -#RUN: lld -flavor gnu -target x86_64 %t1.o --noinhibit-exec -o %t2.out -static -#RUN: llvm-objdump -s %t2.out | FileCheck %s -#CHECK: Contents of section .data: -#CHECK: 401000 0210 ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: '0000' - - Name: .rela.data - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .data - Relocations: - - Offset: 0x0000000000000000 - Symbol: foo - Type: R_X86_64_16 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: bar - Type: STT_OBJECT - Section: .data - Size: 0x0000000000000008 - - Name: foo - Type: STT_OBJECT - Section: .data - Value: 0x0000000000000002 - Size: 0x0000000000000002 -... diff --git a/test/elf/X86_64/reloc_r_x86_64_pc16.test b/test/elf/X86_64/reloc_r_x86_64_pc16.test deleted file mode 100644 index 6e43e5fade61..000000000000 --- a/test/elf/X86_64/reloc_r_x86_64_pc16.test +++ /dev/null @@ -1,61 +0,0 @@ -# Tests that lld can handle relocations of type R_X86_64_PC16 -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t1.o -#RUN: lld -flavor gnu -target x86_64 %t1.o --noinhibit-exec -o %t2.out -static -#RUN: llvm-objdump -s %t2.out | FileCheck %s -#CHECK: Contents of section .data: -#CHECK: 401000 0700 ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: '0000' - - Name: .rela.data - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .data - Relocations: - - Offset: 0x0000000000000000 - Symbol: foo - Type: R_X86_64_PC16 - Addend: 5 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: bar - Type: STT_OBJECT - Section: .data - Size: 0x0000000000000008 - - Name: foo - Type: STT_OBJECT - Section: .data - Value: 0x0000000000000002 - Size: 0x0000000000000002 -... diff --git a/test/elf/X86_64/reloc_r_x86_64_pc64.test b/test/elf/X86_64/reloc_r_x86_64_pc64.test deleted file mode 100644 index 75744390be91..000000000000 --- a/test/elf/X86_64/reloc_r_x86_64_pc64.test +++ /dev/null @@ -1,61 +0,0 @@ -# Tests that lld can handle relocations of type R_X86_64_PC64 -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t1.o -#RUN: lld -flavor gnu -target x86_64 %t1.o --noinhibit-exec -o %t2.out -static -#RUN: llvm-objdump -s %t2.out | FileCheck %s -#CHECK: Contents of section .data: -#CHECK: 401000 0a00 ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: '0000' - - Name: .rela.data - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .data - Relocations: - - Offset: 0x0000000000000000 - Symbol: foo - Type: R_X86_64_PC64 - Addend: 8 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: bar - Type: STT_OBJECT - Section: .data - Size: 0x0000000000000008 - - Name: foo - Type: STT_OBJECT - Section: .data - Value: 0x0000000000000002 - Size: 0x0000000000000002 -... diff --git a/test/elf/X86_64/rodata.test b/test/elf/X86_64/rodata.test deleted file mode 100644 index 61af99f65cfc..000000000000 --- a/test/elf/X86_64/rodata.test +++ /dev/null @@ -1,9 +0,0 @@ -# This tests that the ordinals for all merge atoms and defined atoms have been -# set properly - -RUN: lld -flavor gnu -target x86_64 %p/Inputs/rodata.o --noinhibit-exec \ -RUN: --merge-strings -static -o %t1 -RUN: llvm-nm -n %t1 | FileCheck %s - -CHECK: {{[0-9a-f]+}} R _nl_default_default_domain -CHECK: {{[0-9a-f]+}} R _nl_default_default_dirname diff --git a/test/elf/X86_64/sectionchoice.test b/test/elf/X86_64/sectionchoice.test deleted file mode 100644 index 4034d8b1111a..000000000000 --- a/test/elf/X86_64/sectionchoice.test +++ /dev/null @@ -1,7 +0,0 @@ -# This tests that we are able to properly set the sectionChoice for DefinedAtoms -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/zerosizedsection.o \ -RUN: --noinhibit-exec -o %t --output-filetype=yaml -RUN: FileCheck %s < %t - -CHECK-NOT: section-choice: sectionCustomRequired - diff --git a/test/elf/X86_64/sectionmap.test b/test/elf/X86_64/sectionmap.test deleted file mode 100644 index a38f23e32b95..000000000000 --- a/test/elf/X86_64/sectionmap.test +++ /dev/null @@ -1,22 +0,0 @@ -# This tests that we are able to merge the section .gcc_except_table, -# .data.rel.local, .data.rel.ro, any other sections that belong to .data -# into appropriate output sections -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/sectionmap.o \ -RUN: --noinhibit-exec -o %t -RUN: llvm-readobj -sections %t | FileCheck %s -check-prefix=VERIFYSECTIONHEADERS - -VERIFYSECTIONHEADERS: Section { -VERIFYSECTIONHEADERS: Name: .data -VERIFYSECTIONHEADERS: } -VERIFYSECTIONHEADERS: Section { -VERIFYSECTIONHEADERS: Name: .gcc_except_table -VERIFYSECTIONHEADERS: } -VERIFYSECTIONHEADERS: Section { -VERIFYSECTIONHEADERS: Name: .data.rel.local -VERIFYSECTIONHEADERS: } -VERIFYSECTIONHEADERS: Section { -VERIFYSECTIONHEADERS: Name: .data.rel.ro -VERIFYSECTIONHEADERS: } -VERIFYSECTIONHEADERS: Section { -VERIFYSECTIONHEADERS: Name: .bss -VERIFYSECTIONHEADERS: } diff --git a/test/elf/X86_64/startGroupEndGroup.test b/test/elf/X86_64/startGroupEndGroup.test deleted file mode 100644 index ce1897683b34..000000000000 --- a/test/elf/X86_64/startGroupEndGroup.test +++ /dev/null @@ -1,48 +0,0 @@ -# This tests functionality of --start-group, --end-group - -# This link should fail with unresolve symbol -RUN: not lld -flavor gnu -target x86_64 %p/Inputs/group/1.o \ -RUN: %p/Inputs/group/libfn.a %p/Inputs/group/libfn1.a -o x 2> %t.err - -# Test group -RUN: lld -flavor gnu -target x86_64 %p/Inputs/group/1.o --start-group \ -RUN: %p/Inputs/group/libfn.a %p/Inputs/group/libfn1.a --end-group -o %t1 - -# Mix object files in group -RUN: lld -flavor gnu -target x86_64 %p/Inputs/group/1.o --start-group \ -RUN: %p/Inputs/group/fn.o %p/Inputs/group/fn2.o \ -RUN: %p/Inputs/group/fn1.o --end-group -o %t2 - -# Mix Whole archive input, the group should not iterate the file libfn.a -RUN: lld -flavor gnu -target x86_64 %p/Inputs/group/1.o --start-group \ -RUN: --whole-archive %p/Inputs/group/libfn.a --no-whole-archive \ -RUN: %p/Inputs/group/libfn1.a --end-group -o %t3 - -# Defined symbols in a shared library. -RUN: lld -flavor gnu -target x86_64 %p/Inputs/group/1.o --start-group \ -RUN: %p/Inputs/group/libfn2.so %p/Inputs/group/fn1.o %p/Inputs/group/fn.o \ -RUN: --end-group -o %t4 - -# Test alias options too, as they are more widely used -# Test group -RUN: lld -flavor gnu -target x86_64 %p/Inputs/group/1.o '-(' \ -RUN: %p/Inputs/group/libfn.a %p/Inputs/group/libfn1.a '-)' -o %t1.alias - -# Mix object files in group -RUN: lld -flavor gnu -target x86_64 %p/Inputs/group/1.o '-(' \ -RUN: %p/Inputs/group/fn.o %p/Inputs/group/fn2.o \ -RUN: %p/Inputs/group/fn1.o '-)' -o %t2.alias - -# Mix Whole archive input, the group should not iterate the file libfn.a -RUN: lld -flavor gnu -target x86_64 %p/Inputs/group/1.o '-(' \ -RUN: --whole-archive %p/Inputs/group/libfn.a --no-whole-archive \ -RUN: %p/Inputs/group/libfn1.a '-)' -o %t3.alias - -RUN: llvm-nm %t1 | FileCheck -check-prefix=RESOLVEDEXTERNAL %s -RUN: llvm-nm %t2 | FileCheck -check-prefix=RESOLVEDEXTERNAL %s -RUN: llvm-nm %t3 | FileCheck -check-prefix=RESOLVEDEXTERNAL %s -RUN: llvm-nm %t1.alias | FileCheck -check-prefix=RESOLVEDEXTERNAL %s -RUN: llvm-nm %t2.alias | FileCheck -check-prefix=RESOLVEDEXTERNAL %s -RUN: llvm-nm %t3.alias | FileCheck -check-prefix=RESOLVEDEXTERNAL %s - -RESOLVEDEXTERNAL: {{[0-9a-z]+}} T fn2 diff --git a/test/elf/X86_64/startGroupEndGroupWithDynlib.test b/test/elf/X86_64/startGroupEndGroupWithDynlib.test deleted file mode 100644 index 3e40997db384..000000000000 --- a/test/elf/X86_64/startGroupEndGroupWithDynlib.test +++ /dev/null @@ -1,10 +0,0 @@ -# This tests functionality of --start-group, --end-group with a dynamic library - -# Mix dynamic libraries/object files in group -RUN: lld -flavor gnu -target x86_64 %p/Inputs/group/1.o --start-group \ -RUN: %p/Inputs/group/libfn.so %p/Inputs/group/fn2.o \ -RUN: %p/Inputs/group/fn1.o --end-group -o %t1 - -RUN: llvm-nm %t1 | FileCheck -check-prefix=RESOLVEDEXTERNAL %s - -RESOLVEDEXTERNAL: {{[0-9a-z]+}} T fn2 diff --git a/test/elf/X86_64/staticlib-search.test b/test/elf/X86_64/staticlib-search.test deleted file mode 100644 index 9c512571932d..000000000000 --- a/test/elf/X86_64/staticlib-search.test +++ /dev/null @@ -1,6 +0,0 @@ -# This tests the functionality for finding the static library libfn.a for ELF -RUN: lld -flavor gnu -target x86_64 %p/Inputs/main.o -L%p/Inputs/ -lfn -o %t \ -RUN: --noinhibit-exec -static -t 2> %t1 -RUN: FileCheck %s < %t1 - -CHECK: {{[\/0-9A-Za-z_]+}}libfn.a diff --git a/test/elf/X86_64/undef.test b/test/elf/X86_64/undef.test deleted file mode 100644 index 8f0039a14693..000000000000 --- a/test/elf/X86_64/undef.test +++ /dev/null @@ -1,18 +0,0 @@ -# This tests the functionality that an undefined symbol thats defined in the -# commmand line pulls in the required object file from the archive library -# which is usually the usecase for it -RUN: lld -flavor gnu -target x86_64 -u fn %p/Inputs/libfn.a -o %t --noinhibit-exec -RUN: llvm-readobj -symbols %t | FileCheck -check-prefix=SYMFROMARCHIVE %s -RUN: lld -flavor gnu -target x86_64 %p/Inputs/libfn.a -o %t --noinhibit-exec -RUN: llvm-readobj -symbols %t | FileCheck %s - -SYMFROMARCHIVE: Symbol { -SYMFROMARCHIVE: Name: fn ({{[0-9]+}} -SYMFROMARCHIVE: Size: 11 -SYMFROMARCHIVE: Binding: Global (0x1) -SYMFROMARCHIVE: Type: Function (0x2) -SYMFROMARCHIVE: Other: 0 -SYMFROMARCHIVE: Section: .text -SYMFROMARCHIVE: } - -CHECK-NOT: Name: fn diff --git a/test/elf/X86_64/underscore-end.test b/test/elf/X86_64/underscore-end.test deleted file mode 100644 index 337aa197f812..000000000000 --- a/test/elf/X86_64/underscore-end.test +++ /dev/null @@ -1,81 +0,0 @@ -# This tests verifies that the value of _end symbol is point to the right value -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/nmagic.o \ -RUN: --noinhibit-exec -o %t --nmagic -RUN: llvm-readobj -symbols %t | FileCheck -check-prefix=NMAGICABSSYMBOLS %s -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/nmagic.o \ -RUN: --noinhibit-exec -o %t --omagic -RUN: llvm-readobj -symbols %t | FileCheck -check-prefix=OMAGICABSSYMBOLS %s - -NMAGICABSSYMBOLS: Symbol { -NMAGICABSSYMBOLS: Name: __bss_start ({{[0-9]+}} -NMAGICABSSYMBOLS: Value: 0x40100C -NMAGICABSSYMBOLS: Size: 0 -NMAGICABSSYMBOLS: Binding: Global (0x1) -NMAGICABSSYMBOLS: Type: Object (0x1) -NMAGICABSSYMBOLS: Other: 0 -NMAGICABSSYMBOLS: Section: Absolute (0xFFF1) -NMAGICABSSYMBOLS: } -NMAGICABSSYMBOLS: Symbol { -NMAGICABSSYMBOLS: Name: __bss_end ({{[0-9]+}} -NMAGICABSSYMBOLS: Value: 0x40100C -NMAGICABSSYMBOLS: Size: 0 -NMAGICABSSYMBOLS: Binding: Global (0x1) -NMAGICABSSYMBOLS: Type: Object (0x1) -NMAGICABSSYMBOLS: Other: 0 -NMAGICABSSYMBOLS: Section: Absolute (0xFFF1) -NMAGICABSSYMBOLS: } -NMAGICABSSYMBOLS: Symbol { -NMAGICABSSYMBOLS: Name: _end ({{[0-9]+}} -NMAGICABSSYMBOLS: Value: 0x40100C -NMAGICABSSYMBOLS: Size: 0 -NMAGICABSSYMBOLS: Binding: Global (0x1) -NMAGICABSSYMBOLS: Type: Object (0x1) -NMAGICABSSYMBOLS: Other: 0 -NMAGICABSSYMBOLS: Section: Absolute (0xFFF1) -NMAGICABSSYMBOLS: } -NMAGICABSSYMBOLS: Symbol { -NMAGICABSSYMBOLS: Name: end ({{[0-9]+}} -NMAGICABSSYMBOLS: Value: 0x40100C -NMAGICABSSYMBOLS: Size: 0 -NMAGICABSSYMBOLS: Binding: Global (0x1) -NMAGICABSSYMBOLS: Type: Object (0x1) -NMAGICABSSYMBOLS: Other: 0 -NMAGICABSSYMBOLS: Section: Absolute (0xFFF1) -NMAGICABSSYMBOLS: } - -OMAGICABSSYMBOLS: Symbol { -OMAGICABSSYMBOLS: Name: __bss_start ({{[0-9]+}}) -OMAGICABSSYMBOLS: Value: 0x400144 -OMAGICABSSYMBOLS: Size: 0 -OMAGICABSSYMBOLS: Binding: Global (0x1) -OMAGICABSSYMBOLS: Type: Object (0x1) -OMAGICABSSYMBOLS: Other: 0 -OMAGICABSSYMBOLS: Section: Absolute (0xFFF1) -OMAGICABSSYMBOLS: } -OMAGICABSSYMBOLS: Symbol { -OMAGICABSSYMBOLS: Name: __bss_end ({{[0-9]+}} -OMAGICABSSYMBOLS: Value: 0x400144 -OMAGICABSSYMBOLS: Size: 0 -OMAGICABSSYMBOLS: Binding: Global (0x1) -OMAGICABSSYMBOLS: Type: Object (0x1) -OMAGICABSSYMBOLS: Other: 0 -OMAGICABSSYMBOLS: Section: Absolute (0xFFF1) -OMAGICABSSYMBOLS: } -OMAGICABSSYMBOLS: Symbol { -OMAGICABSSYMBOLS: Name: _end ({{[0-9]+}} -OMAGICABSSYMBOLS: Value: 0x400144 -OMAGICABSSYMBOLS: Size: 0 -OMAGICABSSYMBOLS: Binding: Global (0x1) -OMAGICABSSYMBOLS: Type: Object (0x1) -OMAGICABSSYMBOLS: Other: 0 -OMAGICABSSYMBOLS: Section: Absolute (0xFFF1) -OMAGICABSSYMBOLS: } -OMAGICABSSYMBOLS: Symbol { -OMAGICABSSYMBOLS: Name: end ({{[0-9]+}} -OMAGICABSSYMBOLS: Value: 0x400144 -OMAGICABSSYMBOLS: Size: 0 -OMAGICABSSYMBOLS: Binding: Global (0x1) -OMAGICABSSYMBOLS: Type: Object (0x1) -OMAGICABSSYMBOLS: Other: 0 -OMAGICABSSYMBOLS: Section: Absolute (0xFFF1) -OMAGICABSSYMBOLS: } diff --git a/test/elf/X86_64/weak-override.test b/test/elf/X86_64/weak-override.test deleted file mode 100644 index b68b449a6649..000000000000 --- a/test/elf/X86_64/weak-override.test +++ /dev/null @@ -1,45 +0,0 @@ -# Test for weak symbol getting overridden -RUN: lld -flavor gnu -target x86_64 %p/Inputs/weak.o %p/Inputs/ovrd.o \ -RUN: -o %t --noinhibit-exec -RUN: llvm-nm %t | FileCheck -check-prefix=WEAKORDER %s -RUN: lld -flavor gnu -target x86_64 %p/Inputs/weak.o \ -RUN: %p/Inputs/ovrd.o -o %t2 --output-filetype=yaml --noinhibit-exec -RUN: FileCheck -check-prefix=WEAKATOMSORDER %s < %t2 - -WEAKORDER: {{[0-9a-c]+}} T f - -WEAKATOMSORDER: references: -WEAKATOMSORDER: - kind: layout-after -WEAKATOMSORDER: offset: 0 -WEAKATOMSORDER: target: fn -WEAKATOMSORDER: - name: fn -WEAKATOMSORDER: references: -WEAKATOMSORDER: - kind: layout-after -WEAKATOMSORDER: offset: 0 -WEAKATOMSORDER: target: [[CONSTSTRA:[-a-zA-Z0-9_]+]] -WEAKATOMSORDER: - ref-name: [[CONSTSTRA]] -WEAKATOMSORDER: scope: global -WEAKATOMSORDER: content: [ 55, 48, 89, E5, BF, 00, 00, 00, 00, E8, 00, 00, -WEAKATOMSORDER: 00, 00, 5D, C3 ] -WEAKATOMSORDER: references: -WEAKATOMSORDER: - kind: layout-after -WEAKATOMSORDER: offset: 0 -WEAKATOMSORDER: target: main -WEAKATOMSORDER: - name: main -WEAKATOMSORDER: scope: global -WEAKATOMSORDER: content: [ 55, 48, 89, E5, B8, 00, 00, 00, 00, E8, 00, 00, -WEAKATOMSORDER: 00, 00, B8, 00, 00, 00, 00, 5D, C3 ] -WEAKATOMSORDER: references: -WEAKATOMSORDER: - kind: R_X86_64_PC32 -WEAKATOMSORDER: offset: 10 -WEAKATOMSORDER: target: f -WEAKATOMSORDER: addend: -4 -WEAKATOMSORDER: - ref-name: {{[0-9A-Z]+}} -WEAKATOMSORDER: references: -WEAKATOMSORDER: - kind: layout-after -WEAKATOMSORDER: offset: 0 -WEAKATOMSORDER: target: f -WEAKATOMSORDER: - name: f -WEAKATOMSORDER: scope: global -WEAKATOMSORDER: content: [ 55, 48, 89, E5, BF, 00, 00, 00, 00, E8, 00, 00, -WEAKATOMSORDER: 00, 00, 5D, C3 ] diff --git a/test/elf/X86_64/weak-zero-sized.test b/test/elf/X86_64/weak-zero-sized.test deleted file mode 100644 index 76e051064b9d..000000000000 --- a/test/elf/X86_64/weak-zero-sized.test +++ /dev/null @@ -1,26 +0,0 @@ -# Test for zero sized weak atoms, there is only a single weak atom -RUN: lld -flavor gnu -target x86_64 %p/Inputs/weak-zero-sized.o -o %t \ -RUN: --noinhibit-exec -RUN: llvm-nm %t | FileCheck -check-prefix=WEAKORDER %s -RUN: lld -flavor gnu -target x86_64 %p/Inputs/weak-zero-sized.o \ -RUN: --output-filetype=yaml -o %t2 --noinhibit-exec -RUN: FileCheck -check-prefix=WEAKATOMSORDER %s < %t2 - -WEAKORDER: 004001a4 T _start - -WEAKATOMSORDER: alignment: 2^2 -WEAKATOMSORDER: - kind: layout-after -WEAKATOMSORDER: offset: 0 -WEAKATOMSORDER: target: [[TARGETC:[-a-zA-Z0-9_]+]] -WEAKATOMSORDER: - name: [[TARGETA:[-a-zA-Z0-9_]+]] -WEAKATOMSORDER: scope: global -WEAKATOMSORDER: merge: as-weak -WEAKATOMSORDER: alignment: 2^2 -WEAKATOMSORDER: references: -WEAKATOMSORDER: - kind: layout-after -WEAKATOMSORDER: offset: 0 -WEAKATOMSORDER: target: [[TARGETC]] -WEAKATOMSORDER: - ref-name: [[TARGETC]] -WEAKATOMSORDER: scope: global -WEAKATOMSORDER: content: [ C3 ] -WEAKATOMSORDER: alignment: 2^2 diff --git a/test/elf/X86_64/weaksym.test b/test/elf/X86_64/weaksym.test deleted file mode 100644 index d44ca8a36968..000000000000 --- a/test/elf/X86_64/weaksym.test +++ /dev/null @@ -1,78 +0,0 @@ -# Tests that an executable with a weak undefine will put this symbol in the -# dynamic symbol table if the executable has a dynamic relocation against this -# symbol. - -#RUN: yaml2obj --format elf %s -o %t.o -#RUN: lld -flavor gnu -target x86_64 -e main %t.o -o %t1 -#RUN: llvm-readobj -dt %t1 | FileCheck -check-prefix CHECKSYMS %s - -#CHECKSYMS: Name: x@ -#CHECKSYMS-NEXT: Value: 0x0 -#CHECKSYMS-NEXT: Size: 0 -#CHECKSYMS-NEXT: Binding: Weak (0x2) -#CHECKSYMS-NEXT: Type: None (0x0) -#CHECKSYMS-NEXT: Other: 0 -#CHECKSYMS-NEXT: Section: Undefined (0x0) - -# The object file above corresponds to the following C program compiled with -# -fPIC: -# extern int *x __attribute__((weak)); -# -# int main() { -# if (x) -# return 1; -# return 0; -# } - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E5488B0500000000C745FC00000000488138000000000F840C000000C745FC01000000E907000000C745FC000000008B45FC5DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000007 - Symbol: x - Type: R_X86_64_GOTPCREL - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x0000000000000037 - - Name: _GLOBAL_OFFSET_TABLE_ - Weak: - - Name: x diff --git a/test/elf/X86_64/yamlinput.test b/test/elf/X86_64/yamlinput.test deleted file mode 100644 index 6e529b41b7a6..000000000000 --- a/test/elf/X86_64/yamlinput.test +++ /dev/null @@ -1,166 +0,0 @@ -# This tests the functionality that lld is able to read -# an input YAML from a previous link - -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/initfini.o \ -RUN: --noinhibit-exec --output-filetype=yaml -o %t.objtxt -RUN: lld -flavor gnu -target x86_64-linux %t.objtxt \ -RUN: --noinhibit-exec -o %t1 -RUN: llvm-readobj -sections %t1 | FileCheck %s -check-prefix=SECTIONS - -SECTIONS: Section { -SECTIONS: Index: 0 -SECTIONS: Name: (0) -SECTIONS: Type: SHT_NULL (0x0) -SECTIONS: Flags [ (0x0) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 1 -SECTIONS: Name: .interp -SECTIONS: Type: SHT_PROGBITS (0x1) -SECTIONS: Flags [ (0x2) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 2 -SECTIONS: Name: .hash -SECTIONS: Type: SHT_HASH (0x5) -SECTIONS: Flags [ (0x2) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 3 -SECTIONS: Name: .dynsym -SECTIONS: Type: SHT_DYNSYM (0xB) -SECTIONS: Flags [ (0x2) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 4 -SECTIONS: Name: .dynstr -SECTIONS: Type: SHT_STRTAB (0x3) -SECTIONS: Flags [ (0x2) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 5 -SECTIONS: Name: .text -SECTIONS: Type: SHT_PROGBITS (0x1) -SECTIONS: Flags [ (0x6) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: SHF_EXECINSTR (0x4) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 6 -SECTIONS: Name: .rodata -SECTIONS: Type: SHT_PROGBITS (0x1) -SECTIONS: Flags [ (0x2) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 7 -SECTIONS: Name: .eh_frame -SECTIONS: Type: SHT_PROGBITS (0x1) -SECTIONS: Flags [ (0x2) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 8 -SECTIONS: Name: .eh_frame_hdr -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 9 -SECTIONS: Name: .init_array -SECTIONS: Type: SHT_PROGBITS (0x1) -SECTIONS: Flags [ (0x3) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: SHF_WRITE (0x1) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 10 -SECTIONS: Name: .fini_array -SECTIONS: Type: SHT_PROGBITS (0x1) -SECTIONS: Flags [ (0x3) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: SHF_WRITE (0x1) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 11 -SECTIONS: Name: .dynamic -SECTIONS: Type: SHT_DYNAMIC (0x6) -SECTIONS: Flags [ (0x3) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: SHF_WRITE (0x1) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 12 -SECTIONS: Name: .got.plt -SECTIONS: Type: SHT_PROGBITS (0x1) -SECTIONS: Flags [ (0x3) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: SHF_WRITE (0x1) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 13 -SECTIONS: Name: .data -SECTIONS: Type: SHT_PROGBITS (0x1) -SECTIONS: Flags [ (0x3) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: SHF_WRITE (0x1) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 14 -SECTIONS: Name: .bss -SECTIONS: Type: SHT_NOBITS (0x8) -SECTIONS: Flags [ (0x3) -SECTIONS: SHF_ALLOC (0x2) -SECTIONS: SHF_WRITE (0x1) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 15 -SECTIONS: Name: .comment -SECTIONS: Type: SHT_PROGBITS (0x1) -SECTIONS: Flags [ (0x0) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 16 -SECTIONS: Name: .note.GNU-stack -SECTIONS: Type: SHT_PROGBITS (0x1) -SECTIONS: Flags [ (0x0) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 17 -SECTIONS: Name: .shstrtab -SECTIONS: Type: SHT_STRTAB (0x3) -SECTIONS: Flags [ (0x0) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 18 -SECTIONS: Name: .symtab -SECTIONS: Type: SHT_SYMTAB (0x2) -SECTIONS: Flags [ (0x0) -SECTIONS: ] -SECTIONS: } -SECTIONS: Section { -SECTIONS: Index: 19 -SECTIONS: Name: .strtab -SECTIONS: Type: SHT_STRTAB (0x3) -SECTIONS: Flags [ (0x0) -SECTIONS: ] -SECTIONS: } diff --git a/test/elf/abs-dup.objtxt b/test/elf/abs-dup.objtxt deleted file mode 100644 index 7340a29b0f00..000000000000 --- a/test/elf/abs-dup.objtxt +++ /dev/null @@ -1,19 +0,0 @@ -# Tests handling an absolute symbol with no name -# RUN: lld -flavor gnu -target x86_64 -r %s \ -# RUN: --output-filetype=yaml | FileCheck %s - -absolute-atoms: - - name: abs - scope: static - value: 0x10 - - name: '' - scope: static - value: 0x15 - -# CHECK: absolute-atoms: -# CHECK: - name: abs -# CHECK: scope: static -# CHECK: value: 0x0000000000000010 -# CHECK: - name: '' -# CHECK: scope: static -# CHECK: value: 0x0000000000000015 diff --git a/test/elf/abs.test b/test/elf/abs.test deleted file mode 100644 index bad74f10d194..000000000000 --- a/test/elf/abs.test +++ /dev/null @@ -1,19 +0,0 @@ -# -# Source File: -# .local absGlobalSymbol -# .set absLocalSymbol,0xC0000 -# .type absLocalSymbol, @object -# .globl absGlobalSymbol -# .set absGlobalSymbol,0xD0000 -# .type absGlobalSymbol, @object - -# built using: "gcc -m32" -# -RUN: lld -flavor gnu -target i386 --output-filetype=yaml -r %p/Inputs/abs-test.i386 | FileCheck -check-prefix=YAML %s - -YAML: absolute-atoms: -YAML: - name: absLocalSymbol -YAML: value: {{0x[0]+C0000}} -YAML: - name: absGlobalSymbol -YAML: scope: global -YAML: value: {{0x[0]+D0000}} diff --git a/test/elf/allowduplicates.objtxt b/test/elf/allowduplicates.objtxt deleted file mode 100644 index dbad3bd312ed..000000000000 --- a/test/elf/allowduplicates.objtxt +++ /dev/null @@ -1,51 +0,0 @@ -# RUN: lld -flavor gnu -target x86_64 --allow-multiple-definition %s \ -# RUN: --output-filetype=yaml --noinhibit-exec | FileCheck %s -# -# RUN: not lld -flavor gnu -target x86_64 %s --output-filetype=yaml \ -# RUN: --noinhibit-exec 2>&1 | FileCheck -check-prefix=ERROR %s -# -# RUN: lld -flavor gnu -target x86_64 -z muldefs %s \ -# RUN: --noinhibit-exec --output-filetype=yaml | FileCheck %s - ---- -defined-atoms: - - name: .text - alignment: 2^4 - section-choice: custom-required - section-name: .text - - name: main - scope: global - content: [ B8, 00, 00, 00, 00, C7, 44, 24, FC, 00, 00, 00, - 00, C3 ] - alignment: 2^4 - section-choice: custom-required - section-name: .text ---- -defined-atoms: - - name: .text - alignment: 2^4 - section-choice: custom-required - section-name: .text - - name: main - scope: global - content: [ B8, 00, 00, 00, 00, C7, 44, 24, FC, 00, 00, 00, - 00, C3 ] - alignment: 2^4 - section-choice: custom-required - section-name: .text ---- - -# CHECK: defined-atoms: -# CHECK: - name: .text -# CHECK: alignment: 2^4 -# CHECK: section-choice: custom-required -# CHECK: section-name: .text -# CHECK: - name: main -# CHECK: scope: global -# CHECK: content: [ B8, 00, 00, 00, 00, C7, 44, 24, FC, 00, 00, 00, -# CHECK: 00, C3 ] -# CHECK: alignment: 2^4 -# CHECK: section-choice: custom-required -# CHECK: section-name: .text - -# ERROR: duplicate symbol error diff --git a/test/elf/archive-elf-forceload.test b/test/elf/archive-elf-forceload.test deleted file mode 100644 index a0d115094815..000000000000 --- a/test/elf/archive-elf-forceload.test +++ /dev/null @@ -1,43 +0,0 @@ -# Tests the functionality of archive libraries reading -# and resolution -# Note: The binary files would not be required once we have support to generate -# binary archives from textual(yaml) input -# -# Tests generated using the source files below -# main file -# int main() -# { -# fn(); -# return 0; -# } -# -# archive file -# int fn() -# { -# return 0; -# } -# -# int fn1() -# { -# return 0; -# } -# gcc -c main.c fn.c fn1.c - -RUN: lld -flavor gnu -target x86_64-linux -e main %p/Inputs/mainobj.x86_64 \ -RUN: --whole-archive %p/Inputs/libfnarchive.a --no-whole-archive --output-filetype=yaml \ -RUN: | FileCheck -check-prefix FORCELOAD %s - -FORCELOAD: defined-atoms: -FORCELOAD: - name: fn1 -FORCELOAD: scope: global -FORCELOAD: content: [ 55, 48, 89, E5, B8, 00, 00, 00, 00, 5D, C3 ] -FORCELOAD: - name: fn -FORCELOAD: scope: global -FORCELOAD: content: [ 55, 48, 89, E5, B8, 00, 00, 00, 00, 5D, C3 ] -FORCELOAD: absolute-atoms: -FORCELOAD: - name: main.c -FORCELOAD: value: 0x0 -FORCELOAD: - name: fn1.c -FORCELOAD: value: 0x0 -FORCELOAD: - name: fn.c -FORCELOAD: value: 0x0 diff --git a/test/elf/archive-elf.test b/test/elf/archive-elf.test deleted file mode 100644 index ba6774644cbd..000000000000 --- a/test/elf/archive-elf.test +++ /dev/null @@ -1,38 +0,0 @@ -# Tests the functionality of archive libraries reading -# and resolution -# Note: The binary files would not be required once we have support to generate -# binary archives from textual(yaml) input -# -# Tests generated using the source files below -# main file -# int main() -# { -# fn(); -# return 0; -# } -# -# archive file -# int fn() -# { -# return 0; -# } -# -# int fn1() -# { -# return 0; -# } -# gcc -c main.c fn.c fn1.c - -RUN: lld -flavor gnu -target x86_64-linux --output-filetype=yaml -r \ -RUN: %p/Inputs/mainobj.x86_64 %p/Inputs/libfnarchive.a | \ -RUN: FileCheck -check-prefix NOFORCELOAD %s - -NOFORCELOAD: defined-atoms: -NOFORCELOAD: - name: fn -NOFORCELOAD: scope: global -NOFORCELOAD: content: [ 55, 48, 89, E5, B8, 00, 00, 00, 00, 5D, C3 ] -NOFORCELOAD: absolute-atoms: -NOFORCELOAD: - name: main.c -NOFORCELOAD: value: 0x0 -NOFORCELOAD: - name: fn.c -NOFORCELOAD: value: 0x0 diff --git a/test/elf/as-needed.test b/test/elf/as-needed.test deleted file mode 100644 index 4477f0fe0ca6..000000000000 --- a/test/elf/as-needed.test +++ /dev/null @@ -1,15 +0,0 @@ -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/use-shared.x86-64 \ -RUN: --as-needed %p/Inputs/shared.so-x86-64 %p/Inputs/libifunc.x86-64.so \ -RUN: -o %t1 -e main --allow-shlib-undefined -RUN: llvm-readobj -dynamic-table %t1 | FileCheck %s -check-prefix AS_NEEDED - -AS_NEEDED: NEEDED SharedLibrary (shared.so-x86-64) -AS_NEEDED-NOT: NEEDED SharedLibrary (libifunc.x86-64.so) - -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/use-shared.x86-64 \ -RUN: %p/Inputs/shared.so-x86-64 %p/Inputs/libifunc.x86-64.so \ -RUN: -o %t2 -e main --allow-shlib-undefined -RUN: llvm-readobj -dynamic-table %t2 | FileCheck %s -check-prefix NO_AS_NEEDED - -NO_AS_NEEDED: NEEDED SharedLibrary (shared.so-x86-64) -NO_AS_NEEDED: NEEDED SharedLibrary (libifunc.x86-64.so) diff --git a/test/elf/branch.test b/test/elf/branch.test deleted file mode 100644 index 5e0b4a5aabf1..000000000000 --- a/test/elf/branch.test +++ /dev/null @@ -1,34 +0,0 @@ -RUN: lld -flavor gnu -target hexagon -static --output-filetype=yaml \ -RUN: %p/Inputs/branch-test.hexagon %p/Inputs/target-test.hexagon --noinhibit-exec | FileCheck %s -check-prefix hexagon-yaml -RUN: lld -flavor gnu -target hexagon -e target -o %t1 \ -RUN: %p/Inputs/branch-test.hexagon %p/Inputs/target-test.hexagon --noinhibit-exec -RUN: llvm-readobj -h %t1 | FileCheck -check-prefix=hexagon-readobj %s - -hexagon-yaml: - name: back -hexagon-yaml: scope: global -hexagon-yaml: content: [ 00, C0, 00, 7F, 00, C0, 00, 5A, 00, 00, 00, 00, -hexagon-yaml: 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 ] -hexagon-yaml: references: -hexagon-yaml: - kind: -hexagon-yaml: offset: 4 -hexagon-yaml: target: target - -hexagon-yaml: - name: target -hexagon-yaml: scope: global -hexagon-yaml: content: [ 00, C0, 00, 5A ] -hexagon-yaml: references: -hexagon-yaml: - kind: -hexagon-yaml: offset: 0 -hexagon-yaml: target: back - - -hexagon-readobj: ElfHeader { -hexagon-readobj: Ident { -hexagon-readobj: Class: 32-bit (0x1) -hexagon-readobj: DataEncoding: LittleEndian (0x1) -hexagon-readobj: FileVersion: 1 -hexagon-readobj: OS/ABI: SystemV (0x0) -hexagon-readobj: ABIVersion: 0 -hexagon-readobj: } -hexagon-readobj: Type: Executable (0x2) -hexagon-readobj: Machine: EM_HEXAGON (0xA4) diff --git a/test/elf/check.test b/test/elf/check.test deleted file mode 100644 index 336b7fc1335c..000000000000 --- a/test/elf/check.test +++ /dev/null @@ -1,39 +0,0 @@ -# This tests the basic functionality of ordering data and functions as they -# appear in the inputs -RUN: lld -flavor gnu -target i386 -e global_func --noinhibit-exec --output-filetype=yaml \ -RUN: %p/Inputs/object-test.elf-i386 -o %t -RUN: FileCheck %s -check-prefix ELF-i386 < %t -RUN: lld -flavor gnu -target hexagon -e global_func --noinhibit-exec --output-filetype=yaml \ -RUN: %p/Inputs/object-test.elf-hexagon -o %t1 -RUN: FileCheck %s -check-prefix ELF-hexagon < %t1 - -ELF-i386: defined-atoms: -ELF-i386: - name: global_func -ELF-i386: - name: static_func -ELF-i386: - name: weak_func -ELF-i386: - name: hidden_func -ELF-i386: - name: no_dead_strip -ELF-i386: - name: no_special_section_func -ELF-i386: - name: global_variable -ELF-i386: - name: uninitialized_static_variable -ELF-i386: - name: special_section_func -ELF-i386: undefined-atoms: -ELF-i386: - name: puts -ELF-i386: absolute-atoms: -ELF-i386: - name: sample.c - -ELF-hexagon: - name: global_func -ELF-hexagon: - name: static_func -ELF-hexagon: - name: weak_func -ELF-hexagon: - name: hidden_func -ELF-hexagon: - name: no_dead_strip -ELF-hexagon: - name: no_special_section_func -ELF-hexagon: - name: global_variable -ELF-hexagon: - name: uninitialized_static_variable -ELF-hexagon: - name: special_section_func -ELF-hexagon: undefined-atoms: -ELF-hexagon: - name: puts -ELF-hexagon: absolute-atoms: -ELF-hexagon: - name: sample.c -ELF-hexagon: scope: static -ELF-hexagon: value: 0x0000000000000000 diff --git a/test/elf/checkrodata.test b/test/elf/checkrodata.test deleted file mode 100644 index fc75657b4afb..000000000000 --- a/test/elf/checkrodata.test +++ /dev/null @@ -1,9 +0,0 @@ - -RUN: lld -flavor gnu -target i386 -o %t1 %p/Inputs/rodata-test.i386 --noinhibit-exec -RUN: llvm-objdump -section-headers %t1 | FileCheck -check-prefix=i386 %s -RUN: lld -flavor gnu -target hexagon -o %t2 %p/Inputs/rodata-test.hexagon --noinhibit-exec -RUN: llvm-objdump -section-headers %t2 | FileCheck -check-prefix=hexagon %s - -i386: .rodata 00000004 0000000000000114 DATA - -hexagon: .rodata 00000004 0000000000000114 DATA diff --git a/test/elf/common.test b/test/elf/common.test deleted file mode 100644 index 46fcfe39d486..000000000000 --- a/test/elf/common.test +++ /dev/null @@ -1,10 +0,0 @@ -RUN: lld -flavor gnu -target x86_64-linux -o %t %p/Inputs/relocs.x86-64 \ -RUN: -e _start -static -RUN: llvm-readobj -t %t | FileCheck %s - -CHECK: Symbol { -CHECK: Name: i -CHECK-NEXT: Value: -CHECK-NEXT: Size: -CHECK-NEXT: Binding: -CHECK-NEXT: Type: Object diff --git a/test/elf/consecutive-weak-sym-defs.test b/test/elf/consecutive-weak-sym-defs.test deleted file mode 100644 index 095fabb17ab8..000000000000 --- a/test/elf/consecutive-weak-sym-defs.test +++ /dev/null @@ -1,81 +0,0 @@ -#Tests that multiple consecutive weak symbol definitions do not confuse the -#ELF reader. For example: -# -# my_weak_func1: -# my_weak_func2: -# my_weak_func3: -# code -# -#If my_weak_func2 is merged to other definition, this should not disturb the -#definition my_weak_func1 to "code". -# -# -#RUN: yaml2obj -format=elf %p/Inputs/consecutive-weak-defs.o.yaml -o=%t1.o -#RUN: yaml2obj -format=elf %p/Inputs/main-with-global-def.o.yaml -o=%t2.o -#RUN: lld -flavor gnu -target x86_64 %t1.o %t2.o -e=main -o %t1 -#RUN: obj2yaml %t1 | FileCheck -check-prefix CHECKLAYOUT %s -# -# Check that the layout has not been changed: -# -#CHECKLAYOUT: Name: .text -#CHECKLAYOUT-NEXT: Type: -#CHECKLAYOUT-NEXT: Flags: -#CHECKLAYOUT-NEXT: Address: -#CHECKLAYOUT-NEXT: AddressAlign: -#CHECKLAYOUT-NEXT: Content: 554889E5E8020000005DC3554889E5B8640000005DC3 -# ^~~> my_func ^~~> my_weak_func -# -# -# -#Our two input files were produced by the following code: -# -#Inputs/consecutive-weak-defs.o.yaml (this one is in assembly to allow us to -# easily define multiple labels) -# -# .text -# .globl my_func -# .type my_func,@function -# my_func: -# pushq %rbp -# movq %rsp, %rbp -# callq my_weak_func -# popq %rbp -# retq -# .Ltmp0: -# .size my_func, .Ltmp0-my_func -# -# .text -# .weak my_weak_func -# .type my_weak_func,@function -# .weak my_weak_func2 -# .type my_weak_func2,@function -# .weak my_weak_func3 -# .type my_weak_func3,@function -# my_weak_func: -# my_weak_func2: -# my_weak_func3: -# pushq %rbp -# movq %rsp, %rbp -# movl $100, %eax -# popq %rbp -# retq -# .Ltmp1: -# .size my_weak_func, .Ltmp1-my_weak_func -# .size my_weak_func2, .Ltmp1-my_weak_func2 -# .size my_weak_func3, .Ltmp1-my_weak_func3 -# -#Inputs/main-with-global-def.o.yaml: -# -# int my_func(); -# -# int my_weak_func2() { -# return 200; -# } -# -# int main() { -# return my_func(); -# } -# -#------------------------------------------------------------------------------- -# The net effect is that this program should return 100. - diff --git a/test/elf/defsym.objtxt b/test/elf/defsym.objtxt deleted file mode 100644 index e9c3922d5994..000000000000 --- a/test/elf/defsym.objtxt +++ /dev/null @@ -1,28 +0,0 @@ -# RUN: lld -flavor gnu -target x86_64 --defsym=foo=0x1234 -r %s \ -# RUN: --output-filetype=yaml | FileCheck -check-prefix=ABS %s - -# RUN: lld -flavor gnu -target x86_64 --defsym=foo=main -r %s \ -# RUN: --output-filetype=yaml | FileCheck -check-prefix=ALIAS %s - -defined-atoms: - - name: main - scope: global - content: [ B8, 00, 00, 00, 00, C7, 44, 24, FC, 00, 00, 00, 00, C3 ] - alignment: 2^4 - section-choice: custom-required - section-name: .text - -# ABS: absolute-atoms: -# ABS: - name: foo -# ABS: scope: global -# ABS: value: 0x0000000000001234 - -# ALIAS: defined-atoms: -# ALIAS: - name: foo -# ALIAS: scope: global -# ALIAS: section-choice: custom-required -# ALIAS: section-name: .text -# ALIAS: references: -# ALIAS: - kind: layout-after -# ALIAS: offset: 0 -# ALIAS: target: main diff --git a/test/elf/dynamic-segorder.test b/test/elf/dynamic-segorder.test deleted file mode 100644 index 1fdccec9921b..000000000000 --- a/test/elf/dynamic-segorder.test +++ /dev/null @@ -1,17 +0,0 @@ -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/tls.x86-64 \ -RUN: %p/Inputs/shared.so-x86-64 -o %t -e main --allow-shlib-undefined \ -RUN: --defsym=__tls_get_addr=0 -RUN: llvm-objdump -p %t | FileCheck %s - -CHECK: PHDR -CHECK: flags r-x -CHECK: INTERP -CHECK: flags r-- -CHECK: LOAD -CHECK: flags r-x -CHECK: LOAD -CHECK: flags rw- -CHECK: DYNAMIC -CHECK: flags rw- -CHECK: TLS -CHECK: flags rw- diff --git a/test/elf/dynamic-undef.test b/test/elf/dynamic-undef.test deleted file mode 100644 index 7506b21b3ca7..000000000000 --- a/test/elf/dynamic-undef.test +++ /dev/null @@ -1,34 +0,0 @@ -# -# This test creates a executable and tests the options that are used to -# to create an executable and a shared library -# -# This test will fail because there are unresolved symbols from the shared -# library and we are not passing --allow-shlib-undefined -RUN: not lld -flavor gnu -target x86_64-linux %p/Inputs/tls.x86-64 \ -RUN: %p/Inputs/shared.so-x86-64 -o %t -e main 2> %t1 -RUN: FileCheck -check-prefix=EXEC %s < %t1 -# This test will pass because of --allow-shlib-undefined -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/tls.x86-64 \ -RUN: %p/Inputs/shared.so-x86-64 -o %t -e main --allow-shlib-undefined \ -RUN: --defsym=__tls_get_addr=0 -# Building shared libraries should not fail when there is a undefined symbol. -# Test creation of shared library, this should pass because we are using -# shared option and by default, dynamic library wouldn't create undefined atoms -# from the input shared library -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/tls.x86-64 \ -RUN: %p/Inputs/shared.so-x86-64 -o %t.usenoundefines -e main -shared -RUN: llvm-readobj -symbols %t.usenoundefines | FileCheck %s -check-prefix=SHLIB-NOUNDEF -# Test creation of shared library, this should fail because we are using -# shared option setting the options to use the shared library undefines to -# create undefined atoms from the input shared library -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/tls.x86-64 \ -RUN: %p/Inputs/shared.so-x86-64 -o %t.useundefines -e main -shared \ -RUN: --use-shlib-undefines --no-allow-shlib-undefined 2> %t2 -RUN: llvm-readobj -symbols %t.useundefines | FileCheck -check-prefix=SHLIB-UNDEF-SYMBOLS %s - -EXEC: Undefined symbol: {{.+[\\/]}}shared.so-x86-64: puts -SHLIB: Undefined symbol: {{.+[\\/]}}shared.so-x86-64: puts -EXEC-NOT: Undefined symbol: {{.+[\\/]}}shared.so-x86-64: weakfoo -SHLIB-NOT: Undefined symbol: {{.+[\\/]}}shared.so-x86-64: weakfoo -SHLIB-NOUNDEF-NOT: Name: puts -SHLIB-UNDEF-SYMBOLS: Name: puts diff --git a/test/elf/dynamic.test b/test/elf/dynamic.test deleted file mode 100644 index 59269612cf8e..000000000000 --- a/test/elf/dynamic.test +++ /dev/null @@ -1,80 +0,0 @@ -# Checks functionality of dynamic executables -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/use-shared.x86-64 \ -RUN: %p/Inputs/shared.so-x86-64 -o %t -e main --allow-shlib-undefined \ -RUN: -rpath /l1:/l2 -rpath /l3 -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/use-shared.x86-64 \ -RUN: %p/Inputs/shared.so-x86-64 --output-filetype=yaml -o %t2 --allow-shlib-undefined \ -RUN: --noinhibit-exec -RUN: llvm-objdump -p %t >> %t2 -RUN: llvm-readobj -s -dyn-symbols -dynamic-table %t >> %t2 -RUN: FileCheck %s < %t2 - -CHECK: name: main -CHECK: kind: R_X86_64_PC32 -CHECK: offset: 18 -CHECK: target: [[PLTNAME:[-a-zA-Z0-9_]+]] - -CHECK: name: [[PLTNAME]] -CHECK: type: stub - -CHECK: type: got -CHECK: references: -CHECK: kind: R_X86_64_JUMP_SLOT - -CHECK: shared-library-atoms: -CHECK: name: foo -CHECK: load-name: shared.so-x86-64 - -CHECK: PHDR off 0x{{0+}}40 -CHECK: INTERP -CHECK: flags r-- - -CHECK: Section { -CHECK: Name: .hash -CHECK-NEXT: Type: SHT_HASH -CHECK-NEXT: Flags [ -CHECK-NEXT: SHF_ALLOC -CHECK-NEXT: ] -CHECK-NEXT: Address: -CHECK-NEXT: Offset: -CHECK-NEXT: Size: 32 -CHECK-NEXT: Link: -CHECK-NEXT: Info: -CHECK-NEXT: AddressAlignment: 8 -CHECK-NEXT: EntrySize: -CHECK-NEXT: } - -CHECK: DynamicSymbols [ -CHECK: Symbol { -CHECK: Name: foo -CHECK-NEXT: Value: 0 -CHECK-NEXT: Size: -CHECK-NEXT: Binding: Global -CHECK-NEXT: Type: Function -CHECK: } -CHECK: Symbol { -CHECK: Name: i -CHECK-NEXT: Value: 0 -CHECK-NEXT: Size: -CHECK-NEXT: Binding: Global -CHECK-NEXT: Type: Object -CHECK: } - -CHECK: DynamicSection [ (15 entries) -CHECK: Tag Type Name/Value -CHECK: 0x0000000000000004 HASH -CHECK: 0x0000000000000005 STRTAB -CHECK: 0x0000000000000006 SYMTAB -CHECK: 0x000000000000000A STRSZ -CHECK: 0x000000000000000B SYMENT 24 -CHECK: 0x0000000000000007 RELA -CHECK: 0x0000000000000008 RELASZ 24 -CHECK: 0x0000000000000009 RELAENT 24 -CHECK: 0x0000000000000002 PLTRELSZ 24 -CHECK: 0x0000000000000003 PLTGOT -CHECK: 0x0000000000000014 PLTREL RELA -CHECK: 0x0000000000000017 JMPREL -CHECK: 0x0000000000000001 NEEDED SharedLibrary (shared.so-x86-64) -CHECK: 0x000000000000000F RPATH /l1:/l2:/l3 -CHECK: 0x0000000000000000 NULL 0x0 -CHECK: ] diff --git a/test/elf/eh_frame_hdr.test b/test/elf/eh_frame_hdr.test deleted file mode 100644 index 31429857ec69..000000000000 --- a/test/elf/eh_frame_hdr.test +++ /dev/null @@ -1,30 +0,0 @@ -#RUN: yaml2obj -format=elf %s > %t -#RUN: lld -flavor gnu -target x86_64-linux %t --noinhibit-exec \ -#RUN: -o %t1 -#RUN: llvm-objdump -s %t1 | FileCheck %s - -!ELF -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 - -Sections: -- Name: .eh_frame - Type: SHT_PROGBITS - Content: "00" - AddressAlign: 8 - Flags: [SHF_ALLOC] - -Symbols: - Local: - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - -# CHECK: Contents of section .eh_frame: -# CHECK-NEXT: 4001e0 00 -# CHECK-NEXT: Contents of section .eh_frame_hdr: -# CHECK-NEXT: 4001e8 011bffff f4ffffff -# ^ 0x4001e0 - 0x4001e8 - 4 = 0xfffffff4 diff --git a/test/elf/entry.objtxt b/test/elf/entry.objtxt deleted file mode 100644 index 7e0c1623565a..000000000000 --- a/test/elf/entry.objtxt +++ /dev/null @@ -1,58 +0,0 @@ -# Tests entry point handling -# -# Test generated using the source file below: -# -# int main() -# { -# return 0; -# } -# - -# RUN: lld -flavor gnu -target x86_64 %s -e _entrypoint --noinhibit-exec -o %t1 -# RUN: llvm-nm -n %t1 | FileCheck %s -# -# CHECK: 004001e0 T main -# CHECK: 00401000 D _DYNAMIC -# CHECK: 00401060 A _end -# CHECK: 00401060 A end -# CHECK: U _entrypoint - -defined-atoms: - - name: .text - alignment: 2^4 - section-choice: custom-required - section-name: .text - - name: main - scope: global - content: [ B8, 00, 00, 00, 00, C7, 44, 24, FC, 00, 00, 00, - 00, C3 ] - alignment: 2^4 - section-choice: custom-required - section-name: .text - - name: .data - type: data - alignment: 2^2 - section-choice: custom-required - section-name: .data - - name: .bss - type: zero-fill - alignment: 2^2 - section-choice: custom-required - section-name: .bss - - name: .note.GNU-stack - section-choice: custom-required - section-name: .note.GNU-stack - permissions: r-- - - name: .eh_frame - content: [ 14, 00, 00, 00, 00, 00, 00, 00, 01, 7A, 52, 00, - 01, 78, 10, 01, 1B, 0C, 07, 08, 90, 01, 00, 00, - 14, 00, 00, 00, 1C, 00, 00, 00, 00, 00, 00, 00, - 0E, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 ] - alignment: 2^3 - section-choice: custom-required - section-name: .eh_frame - permissions: r-- - references: - - kind: R_X86_64_PC32 - offset: 32 - target: .text diff --git a/test/elf/export-dynamic.test b/test/elf/export-dynamic.test deleted file mode 100644 index 37876a47c840..000000000000 --- a/test/elf/export-dynamic.test +++ /dev/null @@ -1,99 +0,0 @@ -# Tests the --export-dynamic (-E) flag. When creating a dynamic executable and -# receiving this flag, the linker should export all globally visible symbols in -# its dynamic symbol table. - -#RUN: yaml2obj -format=elf %s -o=%t.o -#RUN: lld -flavor gnu -target x86_64 -E %t.o -e=main -o %t1 -#RUN: llvm-readobj -dt %t1 | FileCheck -check-prefix CHECKSYMS %s - -#CHECKSYMS: myfunc1@ -#CHECKSYMS: main@ -#CHECKSYMS: myvar1@ - -# The object file below was generated with the following code: -# -# (command line clang -c prog.c -o prog.o) -# -# int myvar1 = 22; -# -# static int mysecretvar = 11; -# -# int myfunc1() { -# return 23; -# } -# -# static int mysecretfunc() { -# return 42; -# } -# -# int main() { -# return mysecretfunc() + mysecretvar; -# } ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E5B8170000005DC30F1F440000554889E54883EC10C745FC00000000E81C000000030425000000004883C4105DC36666666666662E0F1F840000000000554889E5B82A0000005DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000027 - Symbol: .data - Type: R_X86_64_32S - Addend: 4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: 160000000B000000 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' -Symbols: - Local: - - Name: mysecretfunc - Type: STT_FUNC - Section: .text - Value: 0x0000000000000040 - Size: 0x000000000000000B - - Name: mysecretvar - Type: STT_OBJECT - Section: .data - Value: 0x0000000000000004 - Size: 0x0000000000000004 - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000010 - Size: 0x0000000000000021 - - Name: myfunc1 - Type: STT_FUNC - Section: .text - Size: 0x000000000000000B - - Name: myvar1 - Type: STT_OBJECT - Section: .data - Size: 0x0000000000000004 diff --git a/test/elf/filenotfound.test b/test/elf/filenotfound.test deleted file mode 100644 index d64568f2ea53..000000000000 --- a/test/elf/filenotfound.test +++ /dev/null @@ -1,3 +0,0 @@ -# Check that a file that cannot be found results in a proper error message -RUN: not lld -flavor gnu -target x86_64 %p/Inputs/nofile.o 2>&1 | FileCheck %s -#CHECK: lld: cannot find file {{.+[\\/]}}nofile.o diff --git a/test/elf/gnulinkonce/gnulinkonce-report-discarded-reference.test b/test/elf/gnulinkonce/gnulinkonce-report-discarded-reference.test deleted file mode 100644 index e1d0f8e7b55e..000000000000 --- a/test/elf/gnulinkonce/gnulinkonce-report-discarded-reference.test +++ /dev/null @@ -1,147 +0,0 @@ -# Tests that the linker is able to read .gnu.linkonce sections and link them -# appropriately. The testcase has been created by using the following source -# code. -# TODO: This test should produce a discarded reference error message which it -# does not currently. -# linkoncea.s -# .section .gnu.linkonce.d.dummy,"aw" -#bar: -# .long 0 -# linkonceb.s -# .section .gnu.linkonce.d.dummy,"aw" -#foo: -# .long 0 -# .section .blah, "aw" -# .long foo -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.linkonce1a.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.linkonce1b.o -#RUN: lld -flavor gnu -target x86_64 %t.linkonce1a.o %t.linkonce1b.o \ -#RUN: --noinhibit-exec --output-filetype=yaml -o %t2.out.yaml -#RUN: lld -flavor gnu -target x86_64 %t.linkonce1a.o %t.linkonce1b.o \ -#RUN: --noinhibit-exec -o %t2.out -#RUN: FileCheck %s -check-prefix=CHECKGNULINKONCE < %t2.out.yaml -#RUN: llvm-readobj -sections %t2.out | FileCheck %s -check-prefix=CHECKGNULINKONCESECTIONS -#CHECKGNULINKONCE: - name: .gnu.linkonce.d.dummy -#CHECKGNULINKONCE: scope: global -#CHECKGNULINKONCE: type: gnu-linkonce -#CHECKGNULINKONCE: section-choice: custom-required -#CHECKGNULINKONCE: section-name: .gnu.linkonce.d.dummy -#CHECKGNULINKONCE: permissions: rw- -#CHECKGNULINKONCE: references: -#CHECKGNULINKONCE: - kind: group-child -#CHECKGNULINKONCE: offset: 0 -#CHECKGNULINKONCE: target: bar -#CHECKGNULINKONCESECTIONS: Section { -#CHECKGNULINKONCESECTIONS: Name: .gnu.linkonce.d.dummy -#CHECKGNULINKONCESECTIONS: Type: SHT_PROGBITS -#CHECKGNULINKONCESECTIONS: Flags [ (0x3) -#CHECKGNULINKONCESECTIONS: SHF_ALLOC (0x2) -#CHECKGNULINKONCESECTIONS: SHF_WRITE (0x1) -#CHECKGNULINKONCESECTIONS: ] -#CHECKGNULINKONCESECTIONS: Size: 4 -#CHECKGNULINKONCESECTIONS: } ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .gnu.linkonce.d.dummy - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '00000000' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .gnu.linkonce.d.dummy - Type: STT_SECTION - Section: .gnu.linkonce.d.dummy - - Name: bar - Section: .gnu.linkonce.d.dummy -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .gnu.linkonce.d.dummy - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '00000000' - - Name: .blah - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '00000000' - - Name: .rela.blah - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .blah - Relocations: - - Offset: 0x0000000000000000 - Symbol: foo - Type: R_X86_64_32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .gnu.linkonce.d.dummy - Type: STT_SECTION - Section: .gnu.linkonce.d.dummy - - Name: foo - Section: .gnu.linkonce.d.dummy - - Name: .blah - Type: STT_SECTION - Section: .blah -... diff --git a/test/elf/gnulinkonce/gnulinkonce-report-undef.test b/test/elf/gnulinkonce/gnulinkonce-report-undef.test deleted file mode 100644 index c6d050dcd63a..000000000000 --- a/test/elf/gnulinkonce/gnulinkonce-report-undef.test +++ /dev/null @@ -1,129 +0,0 @@ -# Tests that the linker is able to read .gnu.linkonce sections and link them -# appropriately. The testcase has been created by using the following source -# code. This test checks that the linker produces an undefined error. -# linkoncea.s -# .section .gnu.linkonce.d.dummy,"aw" -#bar: -# .long 0 -# linkonceb.s -# .section .gnu.linkonce.d.dummy,"aw" -# .global foo -#foo: -# .long 0 -# .section .blah, "aw" -# .long foo -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.linkonce1a.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.linkonce1b.o -#RUN: not lld -flavor gnu -target x86_64 %t.linkonce1a.o %t.linkonce1b.o \ -#RUN: --output-filetype=yaml -o %t2.out.yaml 2>&1 | FileCheck \ -#RUN: -check-prefix=UNDEFS %s -#RUN: not lld -flavor gnu -target x86_64 %t.linkonce1a.o %t.linkonce1b.o \ -#RUN: -o %t2.out 2>&1 | FileCheck -check-prefix=UNDEFS %s -#UNDEFS: Undefined symbol: {{.*}} foo ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .gnu.linkonce.d.dummy - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '00000000' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .gnu.linkonce.d.dummy - Type: STT_SECTION - Section: .gnu.linkonce.d.dummy - - Name: bar - Section: .gnu.linkonce.d.dummy -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .gnu.linkonce.d.dummy - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '00000000' - - Name: .blah - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '00000000' - - Name: .rela.blah - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .blah - Relocations: - - Offset: 0x0000000000000000 - Symbol: foo - Type: R_X86_64_32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .gnu.linkonce.d.dummy - Type: STT_SECTION - Section: .gnu.linkonce.d.dummy - - Name: .blah - Type: STT_SECTION - Section: .blah - Global: - - Name: foo - Section: .gnu.linkonce.d.dummy -... diff --git a/test/elf/gnulinkonce/gnulinkonce.test b/test/elf/gnulinkonce/gnulinkonce.test deleted file mode 100644 index 17559f656328..000000000000 --- a/test/elf/gnulinkonce/gnulinkonce.test +++ /dev/null @@ -1,151 +0,0 @@ -# Tests that the linker is able to read .gnu.linkonce sections and link them -# appropriately. The testcase has been created by using the following source -# code -# linkonce1a.s -# ------------ -# .section .gnu.linkonce.d.dummy,"aw" -#bar: -# .long 0 -# linkonce1b.s -# ------------ -# .globl main -# .globl start -# .globl _start -# .globl __start -# .text -#main: -#start: -#_start: -#__start: -# .long 0 -# -# .section .gnu.linkonce.d.dummy,"aw" -#foo: -# .long 0 -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.linkonce1a.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.linkonce1b.o -#RUN: lld -flavor gnu -target x86_64 %t.linkonce1a.o %t.linkonce1b.o \ -#RUN: --noinhibit-exec --output-filetype=yaml -o %t2.out.yaml -#RUN: lld -flavor gnu -target x86_64 %t.linkonce1a.o %t.linkonce1b.o \ -#RUN: --noinhibit-exec -o %t2.out -#RUN: FileCheck %s -check-prefix=CHECKGNULINKONCE < %t2.out.yaml -#RUN: llvm-readobj -sections %t2.out | FileCheck %s -check-prefix=CHECKGNULINKONCESECTIONS -#CHECKGNULINKONCE: - name: .gnu.linkonce.d.dummy -#CHECKGNULINKONCE: scope: global -#CHECKGNULINKONCE: type: gnu-linkonce -#CHECKGNULINKONCE: section-choice: custom-required -#CHECKGNULINKONCE: section-name: .gnu.linkonce.d.dummy -#CHECKGNULINKONCE: permissions: rw- -#CHECKGNULINKONCE: references: -#CHECKGNULINKONCE: - kind: group-child -#CHECKGNULINKONCE: offset: 0 -#CHECKGNULINKONCE: target: bar -#CHECKGNULINKONCE: - kind: group-child -#CHECKGNULINKONCE: offset: 0 -#CHECKGNULINKONCESECTIONS: Section { -#CHECKGNULINKONCESECTIONS: Name: .gnu.linkonce.d.dummy -#CHECKGNULINKONCESECTIONS: Type: SHT_PROGBITS -#CHECKGNULINKONCESECTIONS: Flags [ (0x3) -#CHECKGNULINKONCESECTIONS: SHF_ALLOC (0x2) -#CHECKGNULINKONCESECTIONS: SHF_WRITE (0x1) -#CHECKGNULINKONCESECTIONS: ] -#CHECKGNULINKONCESECTIONS: Size: 4 -#CHECKGNULINKONCESECTIONS: } ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .gnu.linkonce.d.dummy - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '00000000' -Symbols: - Local: - - Name: bar - Section: .gnu.linkonce.d.dummy - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .gnu.linkonce.d.dummy - Type: STT_SECTION - Section: .gnu.linkonce.d.dummy -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '00000000' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .gnu.linkonce.d.dummy - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '00000000' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .gnu.linkonce.d.dummy - Type: STT_SECTION - Section: .gnu.linkonce.d.dummy - - Name: foo - Section: .gnu.linkonce.d.dummy - Global: - - Name: main - Section: .text - - Name: start - Section: .text - - Name: _start - Section: .text - - Name: __start - Section: .text -... diff --git a/test/elf/gotpcrel.test b/test/elf/gotpcrel.test deleted file mode 100644 index b6f83c16676d..000000000000 --- a/test/elf/gotpcrel.test +++ /dev/null @@ -1,21 +0,0 @@ -# This test checks that GOTPCREL entries are being handled properly -RUN: lld -flavor gnu -target x86_64-linux -static -e main --output-filetype=yaml \ -RUN: --noinhibit-exec %p/Inputs/gotpcrel.x86-64 \ -RUN: | FileCheck %s -check-prefix=YAML - -YAML: name: main -YAML: references: -YAML: kind: R_X86_64_GOTPCREL -YAML: offset: 3 -YAML: target: [[NULLGOT:[a-zA-Z0-9_]+]] -YAML: kind: R_X86_64_GOTPCREL -YAML: offset: 10 -YAML: target: [[MAINGOT:[a-zA-Z0-9_]+]] - -YAML: name: [[NULLGOT]] -YAML: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ] -YAML-NOT: references: - -YAML: name: [[MAINGOT]] -YAML: kind: R_X86_64_64 -YAML: target: main diff --git a/test/elf/gottpoff.test b/test/elf/gottpoff.test deleted file mode 100644 index 9841ee1453d0..000000000000 --- a/test/elf/gottpoff.test +++ /dev/null @@ -1,120 +0,0 @@ -# Test that GOTTPOFF reloc generates an outstanding R_X86_64_TPOFF64 -# to be processed at startup time. -# Reference: Ulrich Drepper's "ELF Handling for Thread-Local storage" - -#RUN: yaml2obj -format=elf %s -o %t.o -#RUN: lld -flavor gnu -target x86_64 %t.o -o %t -e=main --defsym=__tls_get_addr=0 -#RUN: llvm-readobj -r %t | FileCheck %s -# -#CHECK: Section (5) .rela.dyn { -#CHECK: 0x401098 R_X86_64_TPOFF64 - 0x0 -#CHECK: } - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_FREEBSD - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: E819000000640304250000000064030425000000006403042500000000C3488B0500000000648B00C3488D3D00000000E800000000488D8000000000C3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000009 - Symbol: tls1 - Type: R_X86_64_TPOFF32 - - Offset: 0x0000000000000011 - Symbol: tls0 - Type: R_X86_64_TPOFF32 - - Offset: 0x0000000000000019 - Symbol: tls2 - Type: R_X86_64_TPOFF32 - - Offset: 0x0000000000000021 - Symbol: tls2 - Type: R_X86_64_GOTTPOFF - Addend: -4 - - Offset: 0x000000000000002C - Symbol: tls0 - Type: R_X86_64_TLSLD - Addend: -4 - - Offset: 0x0000000000000031 - Symbol: __tls_get_addr - Type: R_X86_64_PLT32 - Addend: -4 - - Offset: 0x0000000000000038 - Symbol: tls0 - Type: R_X86_64_DTPOFF32 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .tbss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x0000000000000004 - Content: '01000000002E7265' - - Name: .tdata - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] - AddressAlign: 0x0000000000000004 - Content: '01000000' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .tbss - Type: STT_SECTION - Section: .tbss - - Name: .tdata - Type: STT_SECTION - Section: .tdata - Global: - - Name: GOTTPOFF - Type: STT_FUNC - Section: .text - Value: 0x000000000000001E - - Name: TLSLD - Type: STT_FUNC - Section: .text - Value: 0x0000000000000029 - - Name: main - Type: STT_FUNC - Section: .text - - Name: tls0 - Type: STT_TLS - Section: .tbss - Size: 0x0000000000000004 - - Name: tls1 - Type: STT_TLS - Section: .tbss - Value: 0x0000000000000004 - Size: 0x0000000000000004 - - Name: tls2 - Type: STT_TLS - Section: .tdata - Size: 0x0000000000000004 - - Name: _GLOBAL_OFFSET_TABLE_ - - Name: __tls_get_addr -... diff --git a/test/elf/group-cmd-search.test b/test/elf/group-cmd-search.test deleted file mode 100644 index 5e153c1ac1ad..000000000000 --- a/test/elf/group-cmd-search.test +++ /dev/null @@ -1,134 +0,0 @@ -/* - XFAIL: win32 - - This test does not pass on Windows because a path starting with - "/" is not considered as an absolute path. (It needs a drive - letter.) -*/ - -/* - In general the linker scripts's GROUP command works like a pair - of command line options --start-group/--end-group. But there is - a difference in the files look up algorithm. - - The --start-group/--end-group commands use a trivial approach: - a) If the path has '-l' prefix, add 'lib' prefix and '.a'/'.so' - suffix and search the path through library search directories. - b) Otherwise, use the path 'as-is'. - - The GROUP command implements more compicated approach: - a) If the path has '-l' prefix, add 'lib' prefix and '.a'/'.so' - suffix and search the path through library search directories. - b) If the path does not have '-l' prefix, and sysroot is configured, - and the path starts with the / character, and the script being - processed is located inside the sysroot, search the path under - the sysroot. Otherwise, try to open the path in the current - directory. If it is not found, search through library search - directories. -*/ - -/* - This link should finish successfully. The --start-group/--end-group - contains an existing absolute path to the file. - -RUN: lld -flavor gnu -target x86_64 -shared \ -RUN: -L%p/Inputs %p/Inputs/use-shared.x86-64 \ -RUN: --start-group %p/Inputs/shared.so-x86-64 --end-group -o %t1 -*/ - -/* - This link should fail with unknown input file format error. - There is no shared.so-x86-64 file in the current directory. - -RUN: not \ -RUN: lld -flavor gnu -target x86_64 -shared \ -RUN: -L%p/Inputs %p/Inputs/use-shared.x86-64 \ -RUN: --start-group shared.so-x86-64 --end-group -o %t2 -*/ - -/* - This link should fail with unknown input file format error. - The absolute path /shared.so-x86-64 does not exist and the linker - should not attempt to search it under the sysroot directory. - -RUN: not \ -RUN: lld -flavor gnu -target x86_64 -shared --sysroot=%p/Inputs \ -RUN: -L%p/Inputs %p/Inputs/use-shared.x86-64 \ -RUN: --start-group /shared.so-x86-64 --end-group -o %t3 -*/ - -/* - This link should finish successfully. The group-cmd-search-1.ls - script contains "GROUP ( shared.so-x86-64 )" command and the linker - has to search shared.so-x86-64 through the library search paths. - -RUN: lld -flavor gnu -target x86_64 -shared \ -RUN: -L%p/Inputs %p/Inputs/use-shared.x86-64 \ -RUN: %p/Inputs/group-cmd-search-1.ls -o %t4 -*/ - -/* - This link should fail with unknown input file format error. - The group-cmd-search-2.ls script contains GROUP command with - a non-existing absolute path but there is no --sysroot argument. - -RUN: not \ -RUN: lld -flavor gnu -target x86_64 -shared \ -RUN: -L%p/Inputs %p/Inputs/use-shared.x86-64 \ -RUN: %p/Inputs/group-cmd-search-2.ls -o %t5 -*/ - -/* - This link should finish successfully. The group-cmd-search-2.ls - script contains GROUP command with an absolute path and the sysroot - directory is provided. The linker has to search the absolute path - under the sysroot directory. - -RUN: lld -flavor gnu -target x86_64 -shared --sysroot=%p/Inputs \ -RUN: -L%p/Inputs %p/Inputs/use-shared.x86-64 \ -RUN: %p/Inputs/group-cmd-search-2.ls -o %t6 -*/ - -/* - This link should finish successfully. The group-cmd-search-2.ls - script contains GROUP command with an absolute path and the sysroot - directory is provided. The linker has to search the absolute path - under the sysroot directory. - -RUN: lld -flavor gnu -target x86_64 -shared --sysroot=%p/Inputs/../Inputs \ -RUN: -L%p/Inputs %p/Inputs/use-shared.x86-64 \ -RUN: %p/Inputs/group-cmd-search-2.ls -o %t6 -*/ - -/* - This link should finish successfully. The group-cmd-search-3.ls - script contains GROUP command with two elements. The first one - has a -l:<path> form and should be found by iterating through - lib dirs and searching the 'path' name exactly. The second element - has a -l<lib name> form and should be found by constructing a full - library name lib<lib name>.a and iterating through lib dirs. - -RUN: lld -flavor gnu -target x86_64 -shared \ -RUN: -L%p/Inputs %p/Inputs/use-shared.x86-64 \ -RUN: %p/Inputs/group-cmd-search-3.ls -o %t8 -*/ - -/* - This link should fail with unknown input file format error. - The linker script from this file contains GROUP with an absolute - path which can be found under provided sysroot directory. - But the linker script itself is not under the sysroot. - -RUN: not \ -RUN: lld -flavor gnu -target x86_64 -shared --sysroot=%p/Inputs \ -RUN: -L%p/Inputs %p/Inputs/use-shared.x86-64 \ -RUN: %s -o %t7 -*/ - -/* -RUN: lld -flavor gnu -target x86_64 -shared \ -RUN: -L%p/Inputs %p/Inputs/use-shared.x86-64 \ -RUN: -l:group-cmd-search-1.ls -o %t9 -*/ - -GROUP ( /shared.so-x86-64 ) diff --git a/test/elf/hexagon-quickdata-sort.test b/test/elf/hexagon-quickdata-sort.test deleted file mode 100644 index efdf9480923d..000000000000 --- a/test/elf/hexagon-quickdata-sort.test +++ /dev/null @@ -1,12 +0,0 @@ -RUN: lld -flavor gnu -target hexagon %p/Inputs/quickdata-sort-test.o.elf-hexagon -o %t1 --noinhibit-exec -RUN: llvm-nm -n %t1 | FileCheck %s -check-prefix=quickdataSort - -quickdataSort: 00002000 D A1 -quickdataSort: 00002001 D AA1 -quickdataSort: 00002002 D B1 -quickdataSort: 00002004 D BB1 -quickdataSort: 00002008 D C1 -quickdataSort: 0000200c D CC1 -quickdataSort: 00002010 D D1 -quickdataSort: 00002018 D DD1 - diff --git a/test/elf/hexagon-quickdata-sortcommon.test b/test/elf/hexagon-quickdata-sortcommon.test deleted file mode 100644 index 5b4690b43cb9..000000000000 --- a/test/elf/hexagon-quickdata-sortcommon.test +++ /dev/null @@ -1,16 +0,0 @@ -RUN: lld -flavor gnu -target hexagon -o %t1 --noinhibit-exec \ -RUN: %p/Inputs/quickdata-sortcommon-test.o.elf-hexagon -RUN: llvm-nm -n %t1 | FileCheck %s -check-prefix=quickdataSortCommon - -quickdataSortCommon: 00002000 D A1 -quickdataSortCommon: 00002001 D AA1 -quickdataSortCommon: 00002002 D AAA1 -quickdataSortCommon: 00002004 D B1 -quickdataSortCommon: 00002006 D BB1 -quickdataSortCommon: 00002008 D BBB1 -quickdataSortCommon: 0000200c D C1 -quickdataSortCommon: 00002010 D CC1 -quickdataSortCommon: 00002014 D CCC1 -quickdataSortCommon: 00002018 D D1 -quickdataSortCommon: 00002020 D DD1 -quickdataSortCommon: 00002028 D DDD1 diff --git a/test/elf/ifunc.test b/test/elf/ifunc.test deleted file mode 100644 index c567c554cbbb..000000000000 --- a/test/elf/ifunc.test +++ /dev/null @@ -1,69 +0,0 @@ -# REQUIRES: x86 - -# This test checks that IRELATIVE relocations are created for symbols that -# need relocation even for static links. -RUN: lld -flavor gnu -target x86_64-linux --output-filetype=yaml -r \ -RUN: %p/Inputs/ifunc.x86-64 | FileCheck %s - -RUN: lld -flavor gnu -target x86_64-linux --output-filetype=yaml --noinhibit-exec \ -RUN: %p/Inputs/ifunc.x86-64 %p/Inputs/ifunc.cpp.x86-64 \ -RUN: | FileCheck %s --check-prefix=PLT - -RUN: lld -flavor gnu -target x86_64-linux -o %t %p/Inputs/ifunc.x86-64 \ -RUN: -e main -static %p/Inputs/ifunc.cpp.x86-64 -RUN: llvm-objdump -d -s %t| FileCheck %s --check-prefix=BIN -RUN: llvm-readobj -r %t | FileCheck %s --check-prefix=RELATIVEADDEND - -# Test that STT_GNU_IFUNC symbols have type Code in SharedLibraryAtom. -RUN: lld -flavor gnu -target x86_64-linux --output-filetype=yaml \ -RUN: --noinhibit-exec %p/Inputs/ifunc.cpp.x86-64 -L%p/Inputs -lifunc.x86-64 \ -RUN: | FileCheck %s --check-prefix=SHARED - -PLT: defined-atoms: - -PLT: name: plt -PLT: scope: global -PLT: references: -PLT: kind: R_X86_64_PC32 -PLT: target: [[PLTNAME:[-a-zA-Z0-9_]+]] - -PLT: name: main -PLT: scope: global -PLT: references: -PLT: kind: R_X86_64_PC32 -PLT: target: [[PLTNAME]] - -// Make sure the target of main's relocation is a stub with a PC32 relocation. -// This relocation is to the got atom, but you can't really write that check in -// FileCheck. -PLT: name: -PLT: type: stub -PLT: references -PLT: kind: R_X86_64_PC32 - -// Make sure there's a got entry with a IRELATIVE relocation. -PLT: type: got -PLT: references: -PLT: kind: R_X86_64_IRELATIVE -PLT: target: hey - -CHECK: name: hey -CHECK: scope: global -CHECK: type: resolver - - -// This is a horribly brittle test. We need a way to do arithmetic on captured -// variables. -BIN: {{[0-9a-f]+}}: ff 25 {{[0-9a-f]+}} {{[0-9a-f]+}} 00 00 jmpq *{{[0-9]+}}(%rip) -BIN: .got.plt: -BIN-NEXT: {{[0-9a-f]+}} 00000000 00000000 - -RELATIVEADDEND: Relocations [ -RELATIVEADDEND-NEXT: Section (1) .rela.plt { -RELATIVEADDEND-NEXT: 0x401000 R_X86_64_IRELATIVE - 0x400110 -RELATIVEADDEND-NEXT: } -RELATIVEADDEND-NEXT: ] - -SHARED: shared-library-atoms -SHARED: name: hey -SHARED-NOT: data diff --git a/test/elf/ignore-unknownoption.test b/test/elf/ignore-unknownoption.test deleted file mode 100644 index 56856ed9f2e4..000000000000 --- a/test/elf/ignore-unknownoption.test +++ /dev/null @@ -1,5 +0,0 @@ -# This test tests that lld is able to print unknown options that are not -# recognized. -RUN: not lld -flavor gnu -target x86_64 --gc-sections 2> %t -RUN: FileCheck %s < %t -CHECK: warning: ignoring unknown argument: --gc-sections diff --git a/test/elf/init_array-order.test b/test/elf/init_array-order.test deleted file mode 100644 index b57b3807b69c..000000000000 --- a/test/elf/init_array-order.test +++ /dev/null @@ -1,67 +0,0 @@ -#RUN: yaml2obj -format=elf %s > %t -#RUN: lld -flavor gnu -target x86_64-linux %t --noinhibit-exec \ -#RUN: -o %t1.out -#RUN: llvm-objdump -s %t1.out | FileCheck %s - -!ELF -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: "1100000000000000" - AddressAlign: 8 - Flags: [SHF_ALLOC, SHF_EXECINSTR] -- Name: .init_array.2 - Type: SHT_INIT_ARRAY - Content: "0200000000000000" - AddressAlign: 8 - Flags: [SHF_ALLOC] -- Name: .init_array.3 - Type: SHT_INIT_ARRAY - Content: "0300000000000000" - AddressAlign: 8 - Flags: [SHF_ALLOC] -- Name: .init_array - Type: SHT_INIT_ARRAY - Content: "9900000000000000" - AddressAlign: 8 - Flags: [SHF_ALLOC] -- Name: .data - Type: SHT_PROGBITS - Content: "2200000000000000" - AddressAlign: 8 - Flags: [SHF_ALLOC, SHF_WRITE] -- Name: .init_array.1 - Type: SHT_INIT_ARRAY - Content: "0100000000000000" - AddressAlign: 8 - Flags: [SHF_ALLOC] - -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .init_array.3 - Type: STT_SECTION - Section: .init_array.3 - - Name: .init_array.2 - Type: STT_SECTION - Section: .init_array.2 - - Name: .init_array.1 - Type: STT_SECTION - Section: .init_array.1 - - Name: .init_array - Type: STT_SECTION - Section: .init_array - -#CHECK: {{[0xa-f0-9]+}} 01000000 00000000 02000000 00000000 -#CHECK: {{[0xa-f0-9]+}} 03000000 00000000 99000000 00000000 diff --git a/test/elf/init_array.test b/test/elf/init_array.test deleted file mode 100644 index 1acf4a7e7a28..000000000000 --- a/test/elf/init_array.test +++ /dev/null @@ -1,6 +0,0 @@ -RUN: lld -flavor gnu -target x86_64-linux -o %t %p/Inputs/init_array.x86-64 \ -RUN: -e __init_array_start -RUN: llvm-objdump -t -section-headers %t | FileCheck %s - -CHECK: .init_array {{[0-9]+}} [[ADDR:[0-9]+]] -CHECK: [[ADDR]] g *ABS* {{[0-9]+}} __init_array_start diff --git a/test/elf/initfini-options.test-1.test b/test/elf/initfini-options.test-1.test deleted file mode 100644 index 2fc1c3e32bda..000000000000 --- a/test/elf/initfini-options.test-1.test +++ /dev/null @@ -1,33 +0,0 @@ -# Check that if there are no -init/-fini options and _init/_fini symbols -# are undefined the linker does not emit DT_INIT/DT_FINI tags. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target x86_64 -shared --noinhibit-exec -o %t.so %t.o -# RUN: llvm-readobj -dynamic-table %t.so | FileCheck %s - -# CHECK-NOT: 0x000000000000000C INIT 0x{{[0-9A-F]+}} -# CHECK-NOT: 0x000000000000000D FINI 0x{{[0-9A-F]+}} - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x08 - -Symbols: - Global: - - Name: _start - Type: STT_FUNC - Section: .text - Size: 0x08 - - Name: _init - - Name: _fini -... diff --git a/test/elf/initfini-options.test-2.test b/test/elf/initfini-options.test-2.test deleted file mode 100644 index 4742084c513b..000000000000 --- a/test/elf/initfini-options.test-2.test +++ /dev/null @@ -1,47 +0,0 @@ -# Check that if _init/_fini symbols are defined the linker emits -# DT_INIT/DT_FINI tags point to these symbols. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target x86_64 -shared -o %t.so %t.o -# RUN: llvm-readobj -symbols -dynamic-table %t.so | FileCheck %s - -# CHECK: Name: _init (8) -# CHECK-NEXT: Value: {{[0x0-9a-f]+}} -# CHECK: Name: _fini (14) -# CHECK-NEXT: Value: {{[0x0-9a-f]+}} -# -# CHECK: 0x000000000000000C INIT {{[0x0-9a-f]+}} -# CHECK: 0x000000000000000D FINI {{[0x0-9a-f]+}} - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x18 - -Symbols: - Global: - - Name: _start - Type: STT_FUNC - Section: .text - Value: 0x0 - Size: 0x8 - - Name: _init - Type: STT_FUNC - Section: .text - Value: 0x8 - Size: 0x8 - - Name: _fini - Type: STT_FUNC - Section: .text - Value: 0xF - Size: 0x8 -... diff --git a/test/elf/initfini-options.test-3.test b/test/elf/initfini-options.test-3.test deleted file mode 100644 index bf8b216775d9..000000000000 --- a/test/elf/initfini-options.test-3.test +++ /dev/null @@ -1,53 +0,0 @@ -# Check that -init/-fini command line options override default function names -# and the linker uses these name to search symbols and setup DT_INIT/DT_FINI. - -# RUN: yaml2obj -format=elf %s > %t.o -# RUN: lld -flavor gnu -target x86_64 -shared -o %t.so %t.o \ -# RUN: -init _init -init _start -fini _fini -fini _stop -# RUN: llvm-readobj -symbols -dynamic-table %t.so | FileCheck %s - -# CHECK: Name: _start (1) -# CHECK-NEXT: Value: {{[0x0-9a-f]+}} -# CHECK: Name: _stop (8) -# CHECK-NEXT: Value: {{[0x0-9a-f]+}} -# -# CHECK: 0x000000000000000C INIT {{[0x0-9a-f]+}} -# CHECK: 0x000000000000000D FINI {{[0x0-9a-f]+}} - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 - -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x04 - Size: 0x20 - -Symbols: - Global: - - Name: _start - Type: STT_FUNC - Section: .text - Value: 0x0 - Size: 0x8 - - Name: _stop - Type: STT_FUNC - Section: .text - Value: 0x8 - Size: 0x8 - - Name: _init - Type: STT_FUNC - Section: .text - Value: 0xF - Size: 0x8 - - Name: _fini - Type: STT_FUNC - Section: .text - Value: 0x18 - Size: 0x8 -... diff --git a/test/elf/librarynotfound.test b/test/elf/librarynotfound.test deleted file mode 100644 index faa1728b478b..000000000000 --- a/test/elf/librarynotfound.test +++ /dev/null @@ -1,5 +0,0 @@ -# Tests the functionality of library not found -RUN: not lld -flavor gnu -lfn 2> %t1 -RUN: FileCheck %s < %t1 - -CHECK: Unable to find library -lfn diff --git a/test/elf/linker-as-ld.test b/test/elf/linker-as-ld.test deleted file mode 100644 index 8ac75275f996..000000000000 --- a/test/elf/linker-as-ld.test +++ /dev/null @@ -1,16 +0,0 @@ -REQUIRES: system-linker-elf - -RUN: mkdir -p %t.dir && cp `which lld` %t.dir/ld -RUN: %t.dir/ld -target x86_64-linux -o %t %p/Inputs/relocs.x86-64 \ -RUN: -e _start -static -RUN: llvm-readobj -t %t | FileCheck %s - -# Test linker run as "ld" on elf based system works like gnu linker. - - -CHECK: Symbol { -CHECK: Name: i -CHECK-NEXT: Value: -CHECK-NEXT: Size: -CHECK-NEXT: Binding: -CHECK-NEXT: Type: Object diff --git a/test/elf/linkerscript/Inputs/externs.ls b/test/elf/linkerscript/Inputs/externs.ls deleted file mode 100644 index 20fdc0c3f980..000000000000 --- a/test/elf/linkerscript/Inputs/externs.ls +++ /dev/null @@ -1,3 +0,0 @@ -/* A simple valid linker script used for testing the EXTERN command. - */ -EXTERN(_foo bar __baz) diff --git a/test/elf/linkerscript/Inputs/invalid.ls b/test/elf/linkerscript/Inputs/invalid.ls deleted file mode 100644 index 894d4bef2732..000000000000 --- a/test/elf/linkerscript/Inputs/invalid.ls +++ /dev/null @@ -1 +0,0 @@ -GROUP( diff --git a/test/elf/linkerscript/Inputs/prog1.o.yaml b/test/elf/linkerscript/Inputs/prog1.o.yaml deleted file mode 100644 index ded590e395d4..000000000000 --- a/test/elf/linkerscript/Inputs/prog1.o.yaml +++ /dev/null @@ -1,88 +0,0 @@ ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E5B000E800000000BF01000000BA0E0000004889C6E80000000031C05DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000007 - Symbol: prog2 - Type: R_X86_64_PC32 - Addend: -4 - - Offset: 0x0000000000000019 - Symbol: write - Type: R_X86_64_PC32 - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 00636C616E672076657273696F6E20332E372E302028687474703A2F2F6C6C766D2E6F72672F6769742F636C616E672E6769742036336134646334616430343938646139623934386330383263623735336430353735323938346638292028687474703A2F2F6C6C766D2E6F72672F6769742F6C6C766D2E67697420623838363135326664656538376564653738613565643965616638663664313839343033616266312900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C0708900100001C0000001C000000000000002100000000410E108602430D0600000000000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x0000000000000021 - - Name: prog2 - - Name: write -... diff --git a/test/elf/linkerscript/Inputs/prog2.o.yaml b/test/elf/linkerscript/Inputs/prog2.o.yaml deleted file mode 100644 index f88b0ddc96b2..000000000000 --- a/test/elf/linkerscript/Inputs/prog2.o.yaml +++ /dev/null @@ -1,89 +0,0 @@ ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E548B800000000000000005DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000006 - Symbol: .rodata.str1.1 - Type: R_X86_64_64 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .rodata.str1.1 - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 48656C6C6F2C20776F726C64210A00 - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 00636C616E672076657273696F6E20332E372E302028687474703A2F2F6C6C766D2E6F72672F6769742F636C616E672E6769742036336134646334616430343938646139623934386330383263623735336430353735323938346638292028687474703A2F2F6C6C766D2E6F72672F6769742F6C6C766D2E67697420623838363135326664656538376564653738613565643965616638663664313839343033616266312900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C0708900100001C0000001C000000000000001000000000410E108602430D0600000000000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .rodata.str1.1 - Type: STT_SECTION - Section: .rodata.str1.1 - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: prog2 - Type: STT_FUNC - Section: .text - Size: 0x0000000000000010 -... diff --git a/test/elf/linkerscript/Inputs/prog3.o.yaml b/test/elf/linkerscript/Inputs/prog3.o.yaml deleted file mode 100644 index 76aa22267f0b..000000000000 --- a/test/elf/linkerscript/Inputs/prog3.o.yaml +++ /dev/null @@ -1,52 +0,0 @@ ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: B8010000000F05C3E800000000B83C0000000F05C3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000009 - Symbol: main - Type: R_X86_64_PC32 - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: _start - Section: .text - Value: 0x0000000000000008 - - Name: write - Section: .text - - Name: main -... diff --git a/test/elf/linkerscript/Inputs/simple.o.yaml b/test/elf/linkerscript/Inputs/simple.o.yaml deleted file mode 100644 index 91d4e1b57786..000000000000 --- a/test/elf/linkerscript/Inputs/simple.o.yaml +++ /dev/null @@ -1,52 +0,0 @@ ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: B80100000048C7C70100000048C7C60000000048C7C20E0000000F05C3E8DEFFFFFFB83C0000000F05C3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x000000000000000F - Symbol: .data - Type: R_X86_64_32S - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: 48656C6C6F2C20576F726C64210A00 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' -Symbols: - Local: - - Name: main - Section: .text - - Name: msg - Section: .data - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: _start - Section: .text - Value: 0x000000000000001D -... diff --git a/test/elf/linkerscript/Inputs/valid.ls b/test/elf/linkerscript/Inputs/valid.ls deleted file mode 100644 index 43593602d3fb..000000000000 --- a/test/elf/linkerscript/Inputs/valid.ls +++ /dev/null @@ -1,6 +0,0 @@ -/* A simple valid linker script used for testing the -T/--script options. - * - * An unresolved symbol named '_entry_point' can be scanned for by the tests - * to determine that the linker script was processed. - */ -ENTRY(_entry_point) diff --git a/test/elf/linkerscript/externs.objtxt b/test/elf/linkerscript/externs.objtxt deleted file mode 100644 index 154891eaf710..000000000000 --- a/test/elf/linkerscript/externs.objtxt +++ /dev/null @@ -1,21 +0,0 @@ -# Check symbols defined with the EXTERN command are added as undefined -# symbols. - -# RUN: lld -flavor gnu -target x86_64 -T %p/Inputs/externs.ls -r %s \ -# RUN: --output-filetype=yaml | FileCheck %s - -defined-atoms: - - name: main - scope: global - content: [ B8, 00, 00, 00, 00, C7, 44, 24, FC, 00, 00, 00, 00, C3 ] - alignment: 2^4 - section-choice: custom-required - section-name: .text - -# CHECK: undefined-atoms: -# CHECK: - name: _foo -# CHECK: can-be-null: at-buildtime -# CHECK: - name: bar -# CHECK: can-be-null: at-buildtime -# CHECK: - name: __baz -# CHECK: can-be-null: at-buildtime diff --git a/test/elf/linkerscript/invalid-script-cli-1.test b/test/elf/linkerscript/invalid-script-cli-1.test deleted file mode 100644 index 904ba17557c0..000000000000 --- a/test/elf/linkerscript/invalid-script-cli-1.test +++ /dev/null @@ -1,10 +0,0 @@ -# Check that the -T/--script options issue an error when passed -# filenames for files that do not exist. - -RUN: not lld -flavor gnu -target x86_64 -T idonotexist.ls 2> %t.err -RUN: FileCheck %s < %t.err - -RUN: not lld -flavor gnu -target x86_64 --script=idonotexist.ls 2> %t.err -RUN: FileCheck %s < %t.err - -CHECK: {{.*}}lld: cannot find file {{.*}}idonotexist.ls diff --git a/test/elf/linkerscript/invalid-script-cli-2.test b/test/elf/linkerscript/invalid-script-cli-2.test deleted file mode 100644 index 6e0e42adc71d..000000000000 --- a/test/elf/linkerscript/invalid-script-cli-2.test +++ /dev/null @@ -1,6 +0,0 @@ -# Check that linker script are *not* picked up with -lscript.ls. - -RUN: not lld -flavor gnu -target x86_64 -L%p/Inputs/ -lvalid.ls 2> %t.err -RUN: FileCheck %s < %t.err - -CHECK: {{.*}}: Unable to find library -lvalid.ls diff --git a/test/elf/linkerscript/invalid.test b/test/elf/linkerscript/invalid.test deleted file mode 100644 index 42833a6664ff..000000000000 --- a/test/elf/linkerscript/invalid.test +++ /dev/null @@ -1,5 +0,0 @@ -# Check for errors from invalid linker scripts -RUN: not lld -flavor gnu -target x86_64 %p/Inputs/invalid.ls 2> %t.err -RUN: FileCheck %s < %t.err - -CHECK: {{.*}}invalid.ls: Error parsing linker script diff --git a/test/elf/linkerscript/sections-order.test b/test/elf/linkerscript/sections-order.test deleted file mode 100644 index 85a172cb07ad..000000000000 --- a/test/elf/linkerscript/sections-order.test +++ /dev/null @@ -1,97 +0,0 @@ -/* -Tests a simple linker script that changes the order of output sections and -also changes the address of output sections by using simple expressions. - -This test uses three X86-64 input objects, prog1.o, prog2.o and prog3.o, -which were created with the following C or assembly code: - -*** prog1.o: - -(command line clang -c prog1.c -o prog1.o) - -const char *prog2(); -void write(int, const char *, int); - -int main() { - write(1, prog2(), 14); -} - -*** prog2.o: - -(command line clang -c prog2.c -o prog2.o) - -const char *prog2() { - return "Hello, world!\n"; -} - -*** prog3.o: - -(command line clang -c prog3.S -o prog3.o) - - .globl write -write: - mov $1, %eax - syscall - ret - - .globl _start -_start: - call main - mov $60, %eax - syscall - ret - -We use the following linker script for this test: -*/ - -ENTRY(_start) - -SECTIONS -{ - . = 0x500000; - .text : { prog1.o(.text) } - .mystring : { prog2.o(.rodata.str1.1) } - . = . + 0x6000; - .text.2 : {prog3.o(.text) prog2.o(.text) } -} - -/* -RUN: mkdir -p %T -RUN: yaml2obj -format=elf %p/Inputs/prog1.o.yaml -o=%T/prog1.o -RUN: yaml2obj -format=elf %p/Inputs/prog2.o.yaml -o=%T/prog2.o -RUN: yaml2obj -format=elf %p/Inputs/prog3.o.yaml -o=%T/prog3.o -RUN: cd %T - -RUN: lld -flavor gnu -target x86_64 -T %s prog1.o prog2.o prog3.o \ -RUN: -static -o %t1 -RUN: llvm-readobj -s %t1 | FileCheck -check-prefix CHECKSECTIONS %s - -CHECKSECTIONS: Index: 1 -CHECKSECTIONS: Name: .text -CHECKSECTIONS: Address: 0x500000 -CHECKSECTIONS: Size: 33 - -CHECKSECTIONS: Index: 2 -CHECKSECTIONS: Name: .mystring -CHECKSECTIONS: Address: 0x500021 -CHECKSECTIONS: Size: 15 - -CHECKSECTIONS: Index: 3 -CHECKSECTIONS: Name: .text.2 -CHECKSECTIONS: Address: 0x506030 -CHECKSECTIONS: Size: 48 - -RUN: llvm-readobj -symbols %t1 | FileCheck -check-prefix CHECKSYMS %s - -CHECKSYMS: Name: main -CHECKSYMS-NEXT: Value: 0x500000 - -CHECKSYMS: Name: write -CHECKSYMS-NEXT: Value: 0x506030 - -CHECKSYMS: Name: _start -CHECKSYMS-NEXT: Value: 0x506038 - -CHECKSYMS: Name: prog2 -CHECKSYMS-NEXT: Value: 0x506050 -*/ diff --git a/test/elf/linkerscript/sections-with-wildcards.test b/test/elf/linkerscript/sections-with-wildcards.test deleted file mode 100644 index 6af80d0883de..000000000000 --- a/test/elf/linkerscript/sections-with-wildcards.test +++ /dev/null @@ -1,88 +0,0 @@ -/* -Tests a linker script that uses the SECTIONS command with rules containing -wildcards and simple SORT directives. It also tests that the linker script -evaluates the expressions in the same order as the one written in the script -file. - -This test uses three X86-64 input objects, prog1.o, prog2.o and prog3.o, -which were created with the following C or assembly code: - -*** prog1.o: - -(command line clang -c prog1.c -o prog1.o) - -const char *prog2(); -void write(int, const char *, int); - -int main() { - write(1, prog2(), 14); -} - -*** prog2.o: - -(command line clang -c prog2.c -o prog2.o) - -const char *prog2() { - return "Hello, world!\n"; -} - -*** prog3.o: - -(command line clang -c prog3.S -o prog3.o) - - .globl write -write: - mov $1, %eax - syscall - ret - - .globl _start -_start: - call main - mov $60, %eax - syscall - ret - -We use the following linker script for this test: -*/ - -ENTRY(_start) - -SECTIONS -{ - my_start_addr = 0x500000; - my_symbol = my_start_addr; - . = my_symbol; - .foo : { SORT(*)(.text .rodata*) } -} - -/* -RUN: mkdir -p %T -RUN: yaml2obj -format=elf %p/Inputs/prog1.o.yaml -o=%T/p1.o -RUN: yaml2obj -format=elf %p/Inputs/prog2.o.yaml -o=%T/p2.o -RUN: yaml2obj -format=elf %p/Inputs/prog3.o.yaml -o=%T/p3.o -RUN: cd %T - -RUN: lld -flavor gnu -target x86_64 -T %s p1.o p2.o p3.o \ -RUN: -static -o %t1 -RUN: llvm-readobj -s %t1 | FileCheck -check-prefix CHECKSECTIONS %s - -CHECKSECTIONS: Index: 1 -CHECKSECTIONS: Name: .foo -CHECKSECTIONS: Address: 0x500000 -CHECKSECTIONS: Size: 101 - -RUN: llvm-readobj -symbols %t1 | FileCheck -check-prefix CHECKSYMS %s - -CHECKSYMS: Name: main -CHECKSYMS-NEXT: Value: 0x500000 - -CHECKSYMS: Name: prog2 -CHECKSYMS-NEXT: Value: 0x500030 - -CHECKSYMS: Name: write -CHECKSYMS-NEXT: Value: 0x500050 - -CHECKSYMS: Name: _start -CHECKSYMS-NEXT: Value: 0x500058 -*/ diff --git a/test/elf/linkerscript/symbol-definition.test b/test/elf/linkerscript/symbol-definition.test deleted file mode 100644 index fc595bbe1f10..000000000000 --- a/test/elf/linkerscript/symbol-definition.test +++ /dev/null @@ -1,54 +0,0 @@ -/* -We test whether we can define symbols in a linker script and have them exported -to the output file symbol table. - -This test uses a single X86-64 input object, simple.o, created with the -following X86-64 assembly code: - -*** simple.S: - -(command line clang -c simple.S -o simple.o) - - .text - main: - mov $1, %eax - movq $1, %rdi - movq $msg, %rsi - movq $14, %rdx - syscall - ret - - .globl _start - _start: - call main - mov $60, %eax - syscall - ret - - .data - msg: .asciz "Hello, World!\n" - - -We use the following linker script for this test: -*/ - -ENTRY(_start) - -SECTIONS -{ - . = 0x500000; - .text : { *(.text) } - MYSTRING = .; - .data : { *(.data) } -} - -/* -RUN: mkdir -p %T -RUN: yaml2obj -format=elf %p/Inputs/simple.o.yaml -o=%T/simple.o - -RUN: lld -flavor gnu -target x86_64 -T %s %T/simple.o -static -o %t1 -RUN: llvm-readobj -symbols %t1 | FileCheck -check-prefix CHECKSYMS %s - -CHECKSYMS: Name: MYSTRING -CHECKSYMS-NEXT: Value: 0x501000 -*/ diff --git a/test/elf/linkerscript/valid-script-cli.objtxt b/test/elf/linkerscript/valid-script-cli.objtxt deleted file mode 100644 index b68d430fd98e..000000000000 --- a/test/elf/linkerscript/valid-script-cli.objtxt +++ /dev/null @@ -1,23 +0,0 @@ -# Check that the linker script inputs are accepted properly. - -# RUN: lld -flavor gnu -target x86_64 %p/Inputs/valid.ls -r %s \ -# RUN: --output-filetype=yaml | FileCheck %s - -# RUN: lld -flavor gnu -target x86_64 -T %p/Inputs/valid.ls -r %s \ -# RUN: --output-filetype=yaml | FileCheck %s - -# RUN: lld -flavor gnu -target x86_64 --script=%p/Inputs/valid.ls -r %s \ -# RUN: --output-filetype=yaml | FileCheck %s - -# RUN: lld -flavor gnu -target x86_64 -L%p/Inputs/ -l:valid.ls -r %s \ -# RUN: --output-filetype=yaml | FileCheck %s - -defined-atoms: - - name: main - scope: global - content: [ B8, 00, 00, 00, 00, C7, 44, 24, FC, 00, 00, 00, 00, C3 ] - alignment: 2^4 - section-choice: custom-required - section-name: .text - -# CHECK: _entry_point diff --git a/test/elf/loginputfiles.test b/test/elf/loginputfiles.test deleted file mode 100644 index 850570d8085e..000000000000 --- a/test/elf/loginputfiles.test +++ /dev/null @@ -1,28 +0,0 @@ -# Tests functionality of -t -# -# Tests generated using the source files below -# main file -# int main() -# { -# fn(); -# return 0; -# } -# -# archive file -# int fn() -# { -# return 0; -# } -# -# int fn1() -# { -# return 0; -# } -# gcc -c main.c fn.c fn1.c - -RUN: lld -flavor gnu -target x86_64-linux \ -RUN: %p/Inputs/mainobj.x86_64 %p/Inputs/libfnarchive.a -t --noinhibit-exec 2>&1 | \ -RUN: FileCheck -check-prefix INPUTFILES %s - -#INPUTFILES: mainobj.x86_64 -#INPUTFILES: libfnarchive.a(fn.o) diff --git a/test/elf/mergeatoms.test b/test/elf/mergeatoms.test deleted file mode 100644 index 521eb5a12c3c..000000000000 --- a/test/elf/mergeatoms.test +++ /dev/null @@ -1,6 +0,0 @@ -# Tests that atoms are merged by testing it with --merge-strings option -RUN: lld -flavor gnu -target x86_64-linux --merge-strings -o %t1 \ -RUN: %p/Inputs/foo.o.x86-64 %p/Inputs/bar.o.x86-64 -e bar1 -RUN: llvm-objdump -s %t1 | FileCheck -check-prefix=mergeAtoms %s - -mergeAtoms: 62617200 666f6f00 bar.foo. diff --git a/test/elf/mergeconstants.test b/test/elf/mergeconstants.test deleted file mode 100644 index 3d06d2c94438..000000000000 --- a/test/elf/mergeconstants.test +++ /dev/null @@ -1,20 +0,0 @@ -# The test checks for mergeable strings that appear in the object file -RUN: lld -flavor gnu --merge-strings --output-filetype=yaml -target x86_64 \ -RUN: %p/Inputs/constants-merge.x86-64 --noinhibit-exec \ -RUN: | FileCheck -check-prefix=mergeAtoms %s - -mergeAtoms: - ref-name: [[CONSTANT:[-a-zA-Z0-9_]+]] -mergeAtoms: type: constant -mergeAtoms: content: [ 62, 61, 72, 66, 6F, 6F, 00 ] -mergeAtoms: merge: by-content -mergeAtoms: section-choice: custom-required -mergeAtoms: section-name: .rodata.str1.1 -mergeAtoms: - name: foo -mergeAtoms: scope: global -mergeAtoms: type: data -mergeAtoms: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ] -mergeAtoms: alignment: 2^3 -mergeAtoms: references: -mergeAtoms: - kind: R_X86_64_64 -mergeAtoms: offset: 3 -mergeAtoms: target: [[CONSTANT]] diff --git a/test/elf/mergeglobalatoms.test b/test/elf/mergeglobalatoms.test deleted file mode 100644 index e71dca539915..000000000000 --- a/test/elf/mergeglobalatoms.test +++ /dev/null @@ -1,11 +0,0 @@ -# ELF files can have mergeable strings which are global!, treat them as global -# defined atoms -RUN: lld -flavor gnu --output-filetype=yaml %p/Inputs/globalconst.o.x86-64 \ -RUN: --noinhibit-exec -target x86_64 | FileCheck -check-prefix=globalatoms %s - -globalatoms: - name: mystr -globalatoms: scope: global -globalatoms: type: constant -globalatoms: content: [ 66, 6F, 6F, 62, 61, 72, 00 ] -globalatoms: section-choice: custom-required -globalatoms: section-name: .rodata.str1.1 diff --git a/test/elf/note.test b/test/elf/note.test deleted file mode 100644 index f0e9c6b2f8d9..000000000000 --- a/test/elf/note.test +++ /dev/null @@ -1,49 +0,0 @@ -# Check that the linker is not ignoring input sections. -# RUN: yaml2obj -format=elf %s > %t.obj -# RUN: lld -flavor gnu -target x86_64 %t.obj -o %t.exe --noinhibit-exec -# RUN: llvm-objdump -h %t.exe | FileCheck %s - -# CHECK: {{[0-9]+}} .note - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .note - Type: SHT_NOTE - AddressAlign: 0x0000000000000001 - Content: '00' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .note - Type: STT_SECTION - Section: .note -... diff --git a/test/elf/options/dynamic-linker.test b/test/elf/options/dynamic-linker.test deleted file mode 100644 index 3d8feeb6e307..000000000000 --- a/test/elf/options/dynamic-linker.test +++ /dev/null @@ -1,17 +0,0 @@ -# This tests the functionality of specifying dynamic-linker argument in the -# command line -RUN: lld -flavor gnu -target x86_64 --dynamic-linker="/xyz.so" \ -RUN: %p/../Inputs/foo.o.x86-64 --noinhibit-exec -o %t -RUN: llvm-objdump -s %t | FileCheck -check-prefix=DYNAMICINTERP1 %s -RUN: lld -flavor gnu -target x86_64 --dynamic-linker="" \ -RUN: %p/../Inputs/foo.o.x86-64 --noinhibit-exec -o %t1 -RUN: llvm-objdump -s %t1 | FileCheck -check-prefix=DYNAMICINTERP2 %s -RUN: lld -flavor gnu -target x86_64 -dynamic-linker /xyz.so \ -RUN: %p/../Inputs/foo.o.x86-64 --noinhibit-exec -o %t2 -RUN: llvm-objdump -s %t2 | FileCheck -check-prefix=DYNAMICINTERP1 %s - -DYNAMICINTERP1:Contents of section .interp: -DYNAMICINTERP1: 400158 2f78797a 2e736f00 /xyz.so. -DYNAMICINTERP2:Contents of section .interp: -DYNAMICINTERP2: 400158 00 - diff --git a/test/elf/phdr.test b/test/elf/phdr.test deleted file mode 100644 index c8ab73d31464..000000000000 --- a/test/elf/phdr.test +++ /dev/null @@ -1,99 +0,0 @@ -# This test checks emission for program header for ELF binaries -RUN: lld -flavor gnu -target i386-linux -o %t1 -e main %p/Inputs/phdr.i386 \ -RUN: && llvm-readobj -program-headers %t1 | FileCheck -check-prefix=I386 %s -RUN: lld -flavor gnu -target x86_64-linux -o %t1 -e _start %p/Inputs/relocs.x86-64 -static \ -RUN: && llvm-objdump -p %t1 | FileCheck %s -check-prefix=X86_64 - - -I386: ProgramHeaders [ -I386-NEXT: ProgramHeader { -I386-NEXT: Type: PT_PHDR (0x6) -I386-NEXT: Offset: 0x34 -I386-NEXT: VirtualAddress: 0x34 -I386-NEXT: PhysicalAddress: 0x34 -I386-NEXT: FileSize: 224 -I386-NEXT: MemSize: 224 -I386-NEXT: Flags [ (0x5) -I386-NEXT: PF_R (0x4) -I386-NEXT: PF_X (0x1) -I386-NEXT: ] -I386-NEXT: Alignment: 8 -I386-NEXT: } -I386-NEXT: ProgramHeader { -I386-NEXT: Type: PT_INTERP (0x3) -I386-NEXT: Offset: 0x114 -I386-NEXT: VirtualAddress: 0x114 -I386-NEXT: PhysicalAddress: 0x114 -I386-NEXT: FileSize: 28 -I386-NEXT: MemSize: 28 -I386-NEXT: Flags [ (0x4) -I386-NEXT: PF_R (0x4) -I386-NEXT: ] -I386-NEXT: Alignment: 1 -I386-NEXT: } -I386-NEXT: ProgramHeader { -I386-NEXT: Type: PT_LOAD (0x1) -I386-NEXT: Offset: 0x0 -I386-NEXT: VirtualAddress: 0x0 -I386-NEXT: PhysicalAddress: 0x0 -I386-NEXT: FileSize: 556 -I386-NEXT: MemSize: 556 -I386-NEXT: Flags [ (0x5) -I386-NEXT: PF_R (0x4) -I386-NEXT: PF_X (0x1) -I386-NEXT: ] -I386-NEXT: Alignment: 4096 -I386-NEXT: } -I386-NEXT: ProgramHeader { -I386-NEXT: Type: PT_LOAD (0x1) -I386-NEXT: Offset: 0x1000 -I386-NEXT: VirtualAddress: 0x1000 -I386-NEXT: PhysicalAddress: 0x1000 -I386-NEXT: FileSize: 260 -I386-NEXT: MemSize: 260 -I386-NEXT: Flags [ (0x6) -I386-NEXT: PF_R (0x4) -I386-NEXT: PF_W (0x2) -I386-NEXT: ] -I386-NEXT: Alignment: 4096 -I386-NEXT: } -I386-NEXT: ProgramHeader { -I386-NEXT: Type: PT_LOAD (0x1) -I386-NEXT: Offset: 0x4000 -I386-NEXT: VirtualAddress: 0x4000 -I386-NEXT: PhysicalAddress: 0x4000 -I386-NEXT: FileSize: 4 -I386-NEXT: MemSize: 8 -I386-NEXT: Flags [ (0x6) -I386-NEXT: PF_R (0x4) -I386-NEXT: PF_W (0x2) -I386-NEXT: ] -I386-NEXT: Alignment: 16384 -I386-NEXT: } -I386-NEXT: ProgramHeader { -I386-NEXT: Type: PT_DYNAMIC (0x2) -I386-NEXT: Offset: 0x1FC -I386-NEXT: VirtualAddress: 0x1FC -I386-NEXT: PhysicalAddress: 0x1FC -I386-NEXT: FileSize: 48 -I386-NEXT: MemSize: 48 -I386-NEXT: Flags [ (0x4) -I386-NEXT: PF_R (0x4) -I386-NEXT: ] -I386-NEXT: Alignment: 4 -I386-NEXT: } -I386-NEXT: ProgramHeader { -I386-NEXT: Type: PT_GNU_EH_FRAME (0x6474E550) -I386-NEXT: Offset: 0x1F4 -I386-NEXT: VirtualAddress: 0x1F4 -I386-NEXT: PhysicalAddress: 0x1F4 -I386-NEXT: FileSize: 8 -I386-NEXT: MemSize: 8 -I386-NEXT: Flags [ (0x4) -I386-NEXT: PF_R (0x4) -I386-NEXT: ] -I386-NEXT: Alignment: 4 -I386-NEXT: } - -X86_64: LOAD off 0x0000000000000000 -X86_64: LOAD off 0x0000000000001000 diff --git a/test/elf/quickdata.test b/test/elf/quickdata.test deleted file mode 100644 index a07771517226..000000000000 --- a/test/elf/quickdata.test +++ /dev/null @@ -1,15 +0,0 @@ -RUN: lld -flavor gnu -target hexagon --output-filetype=yaml %p/Inputs/quickdata-test.elf-hexagon \ -RUN: --noinhibit-exec | FileCheck %s -check-prefix hexagon - -hexagon: - name: ac1 -hexagon: scope: global -hexagon: type: zero-fill-quick -hexagon: size: 1 -hexagon: merge: as-tentative -hexagon: - name: init -hexagon: scope: global -hexagon: type: quick-data -hexagon: - name: bss1 -hexagon: scope: global -hexagon: type: zero-fill-quick - diff --git a/test/elf/reloc.test b/test/elf/reloc.test deleted file mode 100644 index 0ecf0b174fe8..000000000000 --- a/test/elf/reloc.test +++ /dev/null @@ -1,38 +0,0 @@ -RUN: lld -flavor gnu -target i386 --merge-strings -r --output-filetype=yaml \ -RUN: %p/Inputs/reloc-test.elf-i386 | FileCheck %s -check-prefix ELF-i386 - -ELF-i386: defined-atoms: -ELF-i386: - ref-name: [[STRNAMEA:[-a-zA-Z0-9_]+]] -ELF-i386: type: constant -ELF-i386: content: [ 68, 65, 6C, 6C, 6F, 20, 77, 6F, 72, 6C, 64, 00 ] -ELF-i386: merge: by-content -ELF-i386: - ref-name: [[STRNAMEB:[-a-zA-Z0-9_]+]] -ELF-i386: alignment: 2^4 -ELF-i386: section-choice: custom-required -ELF-i386: section-name: .text.startup -ELF-i386: references: -ELF-i386: - kind: layout-after -ELF-i386: offset: 0 -ELF-i386: target: main -ELF-i386: - name: main -ELF-i386: scope: global -ELF-i386: content: [ 55, 89, E5, 83, E4, F0, 83, EC, 10, C7, 04, 24, -ELF-i386: 00, 00, 00, 00, E8, FC, FF, FF, FF, 31, C0, C9, -ELF-i386: C3 ] -ELF-i386: alignment: 2^4 -ELF-i386: section-choice: custom-required -ELF-i386: section-name: .text.startup -ELF-i386: references: -ELF-i386: - kind: R_386_32 -ELF-i386: offset: 12 -ELF-i386: target: [[STRNAMEA]] -ELF-i386: - kind: R_386_PC32 -ELF-i386: offset: 17 -ELF-i386: target: puts -ELF-i386: addend: 252 -ELF-i386: undefined-atoms: -ELF-i386: - name: puts -ELF-i386: absolute-atoms: -ELF-i386: - name: test.c -ELF-i386: scope: static -ELF-i386: value: 0x0000000000000000 diff --git a/test/elf/responsefile.test b/test/elf/responsefile.test deleted file mode 100644 index 5957471bb661..000000000000 --- a/test/elf/responsefile.test +++ /dev/null @@ -1,6 +0,0 @@ -# RUN: not lld -flavor gnu --abc @%p/Inputs/responsefile --baz >& %t.log -# RUN: FileCheck %s < %t.log - -CHECK: warning: ignoring unknown argument: --abc -CHECK: warning: ignoring unknown argument: --inresponsefile -CHECK: warning: ignoring unknown argument: --baz diff --git a/test/elf/rodata.test b/test/elf/rodata.test deleted file mode 100644 index dfe6985c0733..000000000000 --- a/test/elf/rodata.test +++ /dev/null @@ -1,5 +0,0 @@ -RUN: lld -flavor gnu -target x86_64-linux -o %t %p/Inputs/constdata.x86-64 \ -RUN: -static -e _start -RUN: llvm-objdump -s %t | FileCheck %s - -CHECK: Hellooooooooo diff --git a/test/elf/rosegment.test b/test/elf/rosegment.test deleted file mode 100644 index 32638d8fce6f..000000000000 --- a/test/elf/rosegment.test +++ /dev/null @@ -1,26 +0,0 @@ -# Tests that the option --rosegment produces an output file with a separate -# segment created for read only data. -RUN: lld -flavor gnu -target x86_64 %p/Inputs/rodata.o -o %t1.elf \ -RUN: --noinhibit-exec -RUN: lld -flavor gnu -target x86_64 %p/Inputs/rodata.o --rosegment -o %t2.elf \ -RUN: --noinhibit-exec -RUN: llvm-readobj -program-headers %t1.elf | FileCheck %s -check-prefix=NORO-SEGMENT -RUN: llvm-readobj -program-headers %t2.elf | FileCheck %s -check-prefix=RO-SEGMENT - -#NORO-SEGMENT: Type: PT_PHDR -#NORO-SEGMENT: Type: PT_INTERP -#NORO-SEGMENT: Type: PT_LOAD -#NORO-SEGMENT: Type: PT_LOAD -#NORO-SEGMENT: Type: PT_DYNAMIC -#NORO-SEGMENT: Type: PT_GNU_EH_FRAME - -#RO-SEGMENT: Type: PT_PHDR -#RO-SEGMENT: Type: PT_INTERP -#RO-SEGMENT: Type: PT_LOAD -#RO-SEGMENT: Type: PT_LOAD -#RO-SEGMENT: Flags [ -#RO-SEGMENT: PF_R (0x4) -#RO-SEGMENT: ] -#RO-SEGMENT: Type: PT_LOAD -#RO-SEGMENT: Type: PT_DYNAMIC -#RO-SEGMENT: Type: PT_GNU_EH_FRAME diff --git a/test/elf/sectionGroups/sectiongroup-new-members.test b/test/elf/sectionGroups/sectiongroup-new-members.test deleted file mode 100644 index d270c5fec94a..000000000000 --- a/test/elf/sectionGroups/sectiongroup-new-members.test +++ /dev/null @@ -1,153 +0,0 @@ -# Checks that the linker picks the first group in the output file when the file -# have some members dont appear in the first group. -# 1a.s -# ------ -# -# .section .text,"axG",%progbits,foo_group,comdat -# .weak foo -#foo: -# .word 0 -# 1b.s -# ----- -# .section .text,"axG",%progbits,foo_group,comdat -# .global foo -# .global bar -#foo: -# .word 0 -#bar: -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.group1a.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.group1b.o -#RUN: lld -flavor gnu -target x86_64 %t.group1a.o %t.group1b.o \ -#RUN: --noinhibit-exec --output-filetype=yaml -o %t2.out.yaml -#RUN: lld -flavor gnu -target x86_64 %t.group1a.o %t.group1b.o \ -#RUN: --noinhibit-exec -o %t2.out -#RUN: FileCheck %s -check-prefix=CHECKGROUP < %t2.out.yaml -#RUN: llvm-readobj -sections %t2.out | FileCheck %s -check-prefix=CHECKGROUPSECTIONS -#RUN: llvm-readobj -symbols %t2.out | FileCheck %s -check-prefix=CHECKSYMBOLS -#CHECKGROUP: - name: foo -#CHECKGROUP: scope: global -#CHECKGROUP: merge: as-weak -#CHECKGROUP: section-name: .text -#CHECKGROUP: - name: foo_group -#CHECKGROUP: scope: global -#CHECKGROUP: type: group-comdat -#CHECKGROUP: section-choice: custom-required -#CHECKGROUP: section-name: .group -#CHECKGROUP: permissions: --- -#CHECKGROUP: references: -#CHECKGROUP: - kind: group-child -#CHECKGROUP: offset: 0 -#CHECKGROUP: target: foo -#CHECKGROUPSECTIONS: Section { -#CHECKGROUPSECTIONS: Name: .text -#CHECKGROUPSECTIONS: Type: SHT_PROGBITS -#CHECKGROUPSECTIONS: Flags [ (0x6) -#CHECKGROUPSECTIONS: SHF_ALLOC (0x2) -#CHECKGROUPSECTIONS: SHF_EXECINSTR (0x4) -#CHECKGROUPSECTIONS: ] -#CHECKGROUPSECTIONS: Size: 2 -#CHECKGROUPSECTIONS: AddressAlignment: 1 -#CHECKGROUPSECTIONS: } -#CHECKSYMBOLS: Name: foo -#CHECKSYMBOLS: Type: Function -#CHECKSYMBOLS: Section: .text -#CHECKSYMBOLS-NOT: Name: bar ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: foo_group - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .text - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '0000' -Symbols: - Local: - - Name: foo_group - Section: .group - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Weak: - - Name: foo - Section: .text -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: foo_group - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .text - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '0000' -Symbols: - Local: - - Name: foo_group - Section: .group - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: bar - Section: .text - Value: 0x0000000000000002 - - Name: foo - Section: .text -... diff --git a/test/elf/sectionGroups/sectiongroup-simple.test b/test/elf/sectionGroups/sectiongroup-simple.test deleted file mode 100644 index 25be6033b0ef..000000000000 --- a/test/elf/sectionGroups/sectiongroup-simple.test +++ /dev/null @@ -1,146 +0,0 @@ -# Checks that the linker picks the first group in the output file when the file -# have some members dont appear in the first group. -# 1a.s -# ------ -# .section .text,"axG",%progbits,foo_group,comdat -# .weak foo -#foo: -# .word 0 -# 1b.s -# ----- -# .section .text,"axG",%progbits,foo_group,comdat -# .global bar -#bar: -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.group1a.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.group1b.o -#RUN: lld -flavor gnu -target x86_64 %t.group1a.o %t.group1b.o \ -#RUN: --noinhibit-exec --output-filetype=yaml -o %t2.out.yaml -#RUN: lld -flavor gnu -target x86_64 %t.group1a.o %t.group1b.o \ -#RUN: --noinhibit-exec -o %t2.out -#RUN: FileCheck %s -check-prefix=CHECKGROUP < %t2.out.yaml -#RUN: llvm-readobj -sections %t2.out | FileCheck %s -check-prefix=CHECKGROUPSECTIONS -#RUN: llvm-readobj -symbols %t2.out | FileCheck %s -check-prefix=CHECKSYMBOLS -#CHECKGROUP: - name: foo -#CHECKGROUP: scope: global -#CHECKGROUP: merge: as-weak -#CHECKGROUP: section-name: .text -#CHECKGROUP: - name: foo_group -#CHECKGROUP: scope: global -#CHECKGROUP: type: group-comdat -#CHECKGROUP: section-choice: custom-required -#CHECKGROUP: section-name: .group -#CHECKGROUP: permissions: --- -#CHECKGROUP: references: -#CHECKGROUP: - kind: group-child -#CHECKGROUP: offset: 0 -#CHECKGROUP: target: foo -#CHECKGROUPSECTIONS: Section { -#CHECKGROUPSECTIONS: Name: .text -#CHECKGROUPSECTIONS: Type: SHT_PROGBITS -#CHECKGROUPSECTIONS: Flags [ (0x6) -#CHECKGROUPSECTIONS: SHF_ALLOC (0x2) -#CHECKGROUPSECTIONS: SHF_EXECINSTR (0x4) -#CHECKGROUPSECTIONS: ] -#CHECKGROUPSECTIONS: Size: 2 -#CHECKGROUPSECTIONS: AddressAlignment: 1 -#CHECKGROUPSECTIONS: } -#CHECKSYMBOLS: Name: foo -#CHECKSYMBOLS: Type: Function -#CHECKSYMBOLS: Section: .text - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: foo_group - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .text - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '0000' -Symbols: - Local: - - Name: foo_group - Section: .group - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Weak: - - Name: foo - Section: .text -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: foo_group - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .text - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Local: - - Name: foo_group - Section: .group - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: bar - Section: .text -... diff --git a/test/elf/sectionGroups/sectiongroup-undef-member-other.test b/test/elf/sectionGroups/sectiongroup-undef-member-other.test deleted file mode 100644 index 78a5f276a4ca..000000000000 --- a/test/elf/sectionGroups/sectiongroup-undef-member-other.test +++ /dev/null @@ -1,158 +0,0 @@ -# Tests that linker throws an error for an undefined symbol in the section -# group, which is the same as the signature in the next input file. -# comdat1.s -# ------------ -# .section .foo,"axG",@progbits,g1,comdat -# .word g1 -#comdat2.s -#----------- -# .global g1 -# .section .bar,"axG",@progbits,g1,comdat -#g2: -# nop -# .section .car,"axG",@progbits,g1,comdat -#g3: -# nop -# -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.group1a.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.group1b.o -#RUN: lld -flavor gnu -target x86_64 %t.group1a.o %t.group1b.o \ -#RUN: --noinhibit-exec -o %t2.out 2>&1 | FileCheck %s -#CHECK: Undefined symbol: {{.*}} g1 ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: g1 - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .foo - - SectionOrType: .rela.foo - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .foo - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '0000' - - Name: .rela.foo - Type: SHT_RELA - Flags: [ SHF_GROUP ] - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .foo - Relocations: - - Offset: 0x0000000000000000 - Symbol: g1 - Type: R_X86_64_16 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .foo - Type: STT_SECTION - Section: .foo - - Name: .group - Type: STT_SECTION - Section: .group - Global: - - Name: g1 -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: g1 - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .bar - - SectionOrType: .car - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bar - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '90' - - Name: .car - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '90' -Symbols: - Local: - - Name: g2 - Section: .bar - - Name: g3 - Section: .car - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .bar - Type: STT_SECTION - Section: .bar - - Name: .car - Type: STT_SECTION - Section: .car - - Name: .group - Type: STT_SECTION - Section: .group - Global: - - Name: g1 - Section: .group -... diff --git a/test/elf/sectionGroups/sectiongroup-undef-member.test b/test/elf/sectionGroups/sectiongroup-undef-member.test deleted file mode 100644 index 2f6804d254d8..000000000000 --- a/test/elf/sectionGroups/sectiongroup-undef-member.test +++ /dev/null @@ -1,144 +0,0 @@ -# Tests that linker throws an error for an undefined symbol in the section -# group. -# -#comdata.s -#------------ -# .section .foo,"axG",@progbits,g1,comdat -# .word g1 -# -#comdatb.s -#------------ -# .global g1 -# .section .foo,"axG",@progbits,g1,comdat -#g1: -# nop -# -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.group1a.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.group1b.o -#RUN: lld -flavor gnu -target x86_64 %t.group1a.o %t.group1b.o \ -#RUN: --noinhibit-exec -o %t2.out 2>&1 | FileCheck %s -#CHECK: Undefined symbol: {{.*}} g1 ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: g1 - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .foo - - SectionOrType: .rela.foo - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .foo - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '0000' - - Name: .rela.foo - Type: SHT_RELA - Flags: [ SHF_GROUP ] - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .foo - Relocations: - - Offset: 0x0000000000000000 - Symbol: g1 - Type: R_X86_64_16 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .foo - Type: STT_SECTION - Section: .foo - - Name: .group - Type: STT_SECTION - Section: .group - Global: - - Name: g1 -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: g1 - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .foo - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .foo - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '90' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .foo - Type: STT_SECTION - Section: .foo - - Name: .group - Type: STT_SECTION - Section: .group - Global: - - Name: g1 - Section: .foo -... diff --git a/test/elf/sectionGroups/sectiongroup-with-globalsymbols.test b/test/elf/sectionGroups/sectiongroup-with-globalsymbols.test deleted file mode 100644 index 0a28e3c98907..000000000000 --- a/test/elf/sectionGroups/sectiongroup-with-globalsymbols.test +++ /dev/null @@ -1,253 +0,0 @@ -# This tests that comdat weak symbol can be overridden by a global symbol. -# comdat1.s -#------------------------ -# .weak g1 -# .section .foo,"axG",@progbits,g1,comdat -#g1: -# nop -# .global g2 -#g2: -# nop -#! -# -#comdat2.s << \! -#----------------- -# .global g1 -# .section .foo,"axG",@progbits,g1,comdat -#g1: -# nop -# .global g2 -#g2: -# nop -# -#cat > g1.c << \! -#int g1() { -# return 0; -#} -# -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.comdat1.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.comdat2.o -#RUN: yaml2obj -format=elf -docnum 3 %s -o %t.g1.o -#RUN: lld -flavor gnu -target x86_64 %t.comdat1.o %t.comdat2.o \ -#RUN: %t.g1.o --noinhibit-exec --output-filetype=yaml -o %t2.out.yaml -#RUN: lld -flavor gnu -target x86_64 %t.comdat1.o %t.comdat2.o \ -#RUN: %t.g1.o --noinhibit-exec -o %t2.out -#RUN: FileCheck %s -check-prefix=CHECKGROUP < %t2.out.yaml -#RUN: llvm-readobj -sections %t2.out | FileCheck %s -check-prefix=CHECKGROUPSECTIONS -#RUN: llvm-readobj -symbols %t2.out | FileCheck %s -check-prefix=CHECKSYMBOLS -#CHECKGROUP: - name: g2 -#CHECKGROUP: content: [ 90 ] -#CHECKGROUP: section-choice: custom-required -#CHECKGROUP: section-name: .foo -#CHECKGROUP: - name: g1 -#CHECKGROUP: scope: global -#CHECKGROUP: content: [ 55, 48, 89, E5, 31, C0, 5D, C3 ] -#CHECKGROUP: alignment: 2^4 -#CHECKGROUP: section-name: .text -#CHECKGROUPSECTIONS: Name: .text -#CHECKGROUPSECTIONS: Type: SHT_PROGBITS -#CHECKGROUPSECTIONS: Flags [ -#CHECKGROUPSECTIONS: SHF_ALLOC -#CHECKGROUPSECTIONS: SHF_EXECINSTR -#CHECKGROUPSECTIONS: ] -#CHECKGROUPSECTIONS: Size: 8 -#CHECKGROUPSECTIONS: Name: .foo -#CHECKGROUPSECTIONS: Type: SHT_PROGBITS -#CHECKGROUPSECTIONS: Flags [ -#CHECKGROUPSECTIONS: SHF_ALLOC -#CHECKGROUPSECTIONS: SHF_EXECINSTR -#CHECKGROUPSECTIONS: ] -#CHECKGROUPSECTIONS: Size: 2 -#CHECKSYMBOLS: Name: g2 -#CHECKSYMBOLS: Section: .foo -#CHECKSYMBOLS: Name: g1 -#CHECKSYMBOLS: Section: .text ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: g1 - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .foo - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .foo - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '9090' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .foo - Type: STT_SECTION - Section: .foo - Global: - - Name: g2 - Section: .foo - Value: 0x0000000000000001 - Weak: - - Name: g1 - Section: .foo -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: g1 - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .foo - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .foo - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '9090' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .foo - Type: STT_SECTION - Section: .foo - Global: - - Name: g1 - Section: .foo - - Name: g2 - Section: .foo - Value: 0x0000000000000001 -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E531C05DC3 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 00636C616E672076657273696F6E20332E372E3020287472756E6B203232393535372920286C6C766D2F7472756E6B203232393536332900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C0708900100001C0000001C000000000000000800000000410E108602430D0600000000000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 -Symbols: - Local: - - Name: g1.c - Type: STT_FILE - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: g1 - Type: STT_FUNC - Section: .text - Size: 0x0000000000000008 -... diff --git a/test/elf/sectionGroups/sectiongroup-with-undef-external-reference.test b/test/elf/sectionGroups/sectiongroup-with-undef-external-reference.test deleted file mode 100644 index a90034ae6d21..000000000000 --- a/test/elf/sectionGroups/sectiongroup-with-undef-external-reference.test +++ /dev/null @@ -1,239 +0,0 @@ -# This tests that comdat undef symbol is overridden by a global symbol. -# comdat1.s -#------------------------ -# .global g1 -# .section .foo,"axG",@progbits,g1,comdat -#g1: -# .word 5 -# -#comdat2.s << \! -#----------------- -# .global g1 -# .section .foo,"axG",@progbits,g1,comdat -#g1: -# nop -# -#g1.c -#----------- -#extern int g1; -#int fn() { return g1;} -# -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.comdat1.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.comdat2.o -#RUN: yaml2obj -format=elf -docnum 3 %s -o %t.g1.o -#RUN: lld -flavor gnu -target x86_64 %t.comdat1.o %t.comdat2.o \ -#RUN: %t.g1.o --noinhibit-exec --output-filetype=yaml -o %t2.out.yaml -#RUN: lld -flavor gnu -target x86_64 %t.comdat1.o %t.comdat2.o \ -#RUN: %t.g1.o --noinhibit-exec -o %t2.out -#RUN: FileCheck %s -check-prefix=CHECKGROUP < %t2.out.yaml -#RUN: llvm-readobj -sections %t2.out | FileCheck %s -check-prefix=CHECKGROUPSECTIONS -#RUN: llvm-readobj -symbols %t2.out | FileCheck %s -check-prefix=CHECKSYMBOLS -#CHECKGROUP: - name: g1 -#CHECKGROUP: scope: global -#CHECKGROUP: content: [ 05, 00 ] -#CHECKGROUP: section-name: .foo -#CHECKGROUPSECTIONS: Section { -#CHECKGROUPSECTIONS: Name: .foo -#CHECKGROUPSECTIONS: Type: SHT_PROGBITS -#CHECKGROUPSECTIONS: Flags [ -#CHECKGROUPSECTIONS: SHF_ALLOC -#CHECKGROUPSECTIONS: SHF_EXECINSTR -#CHECKGROUPSECTIONS: ] -#CHECKGROUPSECTIONS: Size: 2 -#CHECKGROUPSECTIONS: } -#CHECKSYMBOLS: Name: g1 -#CHECKSYMBOLS: Section: .foo -#CHECKSYMBOLS: Name: fn -#CHECKSYMBOLS: Section: .text ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: g1 - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .foo - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .foo - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '0500' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .foo - Type: STT_SECTION - Section: .foo - Global: - - Name: g1 - Section: .foo -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: g1 - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .foo - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .foo - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '90' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .foo - Type: STT_SECTION - Section: .foo - Global: - - Name: g1 - Section: .foo -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E58B0425000000005DC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000007 - Symbol: g1 - Type: R_X86_64_32S - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 00636C616E672076657273696F6E20332E372E3020287472756E6B203232393535372920286C6C766D2F7472756E6B203232393536332900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C0708900100001C0000001C000000000000000D00000000410E108602430D0600000000000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 -Symbols: - Local: - - Name: global-g1.c - Type: STT_FILE - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: fn - Type: STT_FUNC - Section: .text - Size: 0x000000000000000D - - Name: g1 -... diff --git a/test/elf/sectionGroups/sectiongroup-with-undef-signature.test b/test/elf/sectionGroups/sectiongroup-with-undef-signature.test deleted file mode 100644 index 11cb5de40a63..000000000000 --- a/test/elf/sectionGroups/sectiongroup-with-undef-signature.test +++ /dev/null @@ -1,222 +0,0 @@ -# This tests that comdat undef symbol is overridden by a global symbol. -# comdat1.s -#------------------------ -# .section .foo,"axG",@progbits,g1,comdat -# word g1 -# -#comdat2.s << \! -#----------------- -# .global g1 -# .section .foo,"axG",@progbits,g1,comdat -#g1: -# nop -# -#global-g1.c -#----------- -#int g1=10; -# -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.comdat1.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.comdat2.o -#RUN: yaml2obj -format=elf -docnum 3 %s -o %t.g1.o -#RUN: lld -flavor gnu -target x86_64 %t.comdat1.o %t.comdat2.o \ -#RUN: %t.g1.o --noinhibit-exec --output-filetype=yaml -o %t2.out.yaml -#RUN: lld -flavor gnu -target x86_64 %t.comdat1.o %t.comdat2.o \ -#RUN: %t.g1.o --noinhibit-exec -o %t2.out -#RUN: FileCheck %s -check-prefix=CHECKGROUP < %t2.out.yaml -#RUN: llvm-readobj -sections %t2.out | FileCheck %s -check-prefix=CHECKGROUPSECTIONS -#RUN: llvm-readobj -symbols %t2.out | FileCheck %s -check-prefix=CHECKSYMBOLS -#CHECKGROUP: - name: g1 -#CHECKGROUP: scope: global -#CHECKGROUP: content: [ 0A, 00, 00, 00 ] -#CHECKGROUP: section-name: .data -#CHECKGROUPSECTIONS: Name: .foo -#CHECKGROUPSECTIONS: Type: SHT_PROGBITS -#CHECKGROUPSECTIONS: Flags [ -#CHECKGROUPSECTIONS: SHF_ALLOC -#CHECKGROUPSECTIONS: SHF_EXECINSTR -#CHECKGROUPSECTIONS: ] -#CHECKGROUPSECTIONS: Size: 2 -#CHECKGROUPSECTIONS: Name: .data -#CHECKGROUPSECTIONS: Type: SHT_PROGBITS -#CHECKGROUPSECTIONS: Flags [ -#CHECKGROUPSECTIONS: SHF_ALLOC -#CHECKGROUPSECTIONS: SHF_WRITE -#CHECKGROUPSECTIONS: ] -#CHECKGROUPSECTIONS: Size: 4 -#CHECKSYMBOLS: Name: g1 -#CHECKSYMBOLS: Section: .data ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: g1 - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .foo - - SectionOrType: .rela.foo - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .foo - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '0000' - - Name: .rela.foo - Type: SHT_RELA - Flags: [ SHF_GROUP ] - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .foo - Relocations: - - Offset: 0x0000000000000000 - Symbol: g1 - Type: R_X86_64_16 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .foo - Type: STT_SECTION - Section: .foo - Global: - - Name: g1 -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - AddressAlign: 0x0000000000000004 - Info: g1 - Members: - - SectionOrType: GRP_COMDAT - - SectionOrType: .foo - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .foo - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] - AddressAlign: 0x0000000000000001 - Content: '90' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .foo - Type: STT_SECTION - Section: .foo - Global: - - Name: g1 - Section: .foo -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: 0A000000 - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 00636C616E672076657273696F6E20332E372E3020287472756E6B203232393535372920286C6C766D2F7472756E6B203232393536332900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' -Symbols: - Local: - - Name: global-g1.c - Type: STT_FILE - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - Global: - - Name: g1 - Type: STT_OBJECT - Section: .data - Size: 0x0000000000000004 -... diff --git a/test/elf/sections.test b/test/elf/sections.test deleted file mode 100644 index 8839aa6d4e8a..000000000000 --- a/test/elf/sections.test +++ /dev/null @@ -1,142 +0,0 @@ -# This test checks if sections are created properly in the output that appear in -# the input -RUN: lld -flavor gnu -target i386 -o %t1 %p/Inputs/section-test.i386 \ -RUN: -static -e baz -RUN: llvm-objdump -section-headers %t1 | FileCheck -check-prefix=OBJDUMP %s -RUN: llvm-readobj -h -s -t %t1 | FileCheck -check-prefix=READOBJ %s - -OBJDUMP: 0 00000000 0000000000000000 -OBJDUMP: 1 .text 0000000a 0000000000000074 TEXT DATA -OBJDUMP: 2 .data 00000004 0000000000001000 DATA -OBJDUMP: 3 .special 00000004 0000000000001004 DATA -OBJDUMP: 4 .anotherspecial 00000004 0000000000001008 DATA -OBJDUMP: 5 .bss 00000004 000000000000100c BSS -OBJDUMP: 6 .shstrtab {{[0-9a-f]+}} 0000000000000000 -OBJDUMP: 7 .symtab {{[0-9a-f]+}} 0000000000000000 -OBJDUMP: 8 .strtab {{[0-9a-f]+}} 0000000000000000 - -READOBJ: Format: ELF32-i386 -READOBJ: Arch: i386 -READOBJ: AddressSize: 32bit -READOBJ: ElfHeader { -READOBJ: Ident { -READOBJ: DataEncoding: LittleEndian (0x1) -READOBJ: } -READOBJ: Machine: EM_386 -READOBJ: } - -READOBJ: Sections [ -READOBJ: Section { -READOBJ: Index: 0 -READOBJ: Name: (0) -READOBJ: Type: SHT_NULL -READOBJ: Flags [ (0x0) -READOBJ: ] -READOBJ: Address: 0x0 -READOBJ: Size: 0 -READOBJ: } -READOBJ: Section { -READOBJ: Index: 1 -READOBJ: Name: .text -READOBJ: Type: SHT_PROGBITS -READOBJ: Flags [ (0x6) -READOBJ: SHF_ALLOC -READOBJ: SHF_EXECINSTR -READOBJ: ] -READOBJ: Address: 0x74 -READOBJ: Size: 10 -READOBJ: AddressAlignment: 4 -READOBJ: } -READOBJ: Section { -READOBJ: Index: 2 -READOBJ: Name: .data -READOBJ: Type: SHT_PROGBITS -READOBJ: Flags [ (0x3) -READOBJ: SHF_ALLOC -READOBJ: SHF_WRITE -READOBJ: ] -READOBJ: Address: 0x1000 -READOBJ: Size: 4 -READOBJ: AddressAlignment: 4 -READOBJ: } -READOBJ: Section { -READOBJ: Index: 3 -READOBJ: Name: .special -READOBJ: Type: SHT_PROGBITS -READOBJ: Flags [ (0x3) -READOBJ: SHF_ALLOC -READOBJ: SHF_WRITE -READOBJ: ] -READOBJ: Address: 0x1004 -READOBJ: Size: 4 -READOBJ: } -READOBJ: Section { -READOBJ: Index: 4 -READOBJ: Name: .anotherspecial -READOBJ: Type: SHT_PROGBITS -READOBJ: Flags [ (0x3) -READOBJ: SHF_ALLOC -READOBJ: SHF_WRITE -READOBJ: ] -READOBJ: Address: 0x1008 -READOBJ: Size: 4 -READOBJ: } -READOBJ: Section { -READOBJ: Index: 5 -READOBJ: Name: .bss -READOBJ: Type: SHT_NOBITS -READOBJ: Flags [ (0x3) -READOBJ: SHF_ALLOC -READOBJ: SHF_WRITE -READOBJ: ] -READOBJ: Address: 0x100C -READOBJ: Size: 4 -READOBJ: } -READOBJ: Section { -READOBJ: Index: 6 -READOBJ: Name: .shstrtab -READOBJ: Type: SHT_STRTAB -READOBJ: Flags [ (0x0) -READOBJ: ] -READOBJ: Address: 0x0 -READOBJ: Link: 0 -READOBJ: AddressAlignment: 1 -READOBJ: } -READOBJ: Section { -READOBJ: Index: 7 -READOBJ: Name: .symtab -READOBJ: Type: SHT_SYMTAB -READOBJ: Flags [ (0x0) -READOBJ: ] -READOBJ: Address: 0x0 -READOBJ: Link: 8 -READOBJ: AddressAlignment: 4 -READOBJ: EntrySize: 16 -READOBJ: } -READOBJ: Section { -READOBJ: Index: 8 -READOBJ: Name: .strtab -READOBJ: Type: SHT_STRTAB -READOBJ: Flags [ (0x0) -READOBJ: ] -READOBJ: Address: 0x0 -READOBJ: } -READOBJ: ] - -READOBJ: Symbols [ -READOBJ: Symbol { -READOBJ: Name: baz -READOBJ: Value: 0x74 -READOBJ: Size: 10 -READOBJ: Binding: Global -READOBJ: Type: Function -READOBJ: Section: .text -READOBJ: } -READOBJ: Symbol { -READOBJ: Name: y -READOBJ: Value: 0x1004 -READOBJ: Size: 4 -READOBJ: Binding: Global -READOBJ: Type: Object -READOBJ: Section: .special -READOBJ: } diff --git a/test/elf/sh_addralign.test b/test/elf/sh_addralign.test deleted file mode 100644 index 9c7a050f565c..000000000000 --- a/test/elf/sh_addralign.test +++ /dev/null @@ -1,38 +0,0 @@ -# Check handling of section alignment. -# RUN: yaml2obj -format=elf %s > %t-obj -# RUN: lld -flavor gnu -target arm64 -o %t-exe %t-obj -# RUN: llvm-objdump -h %t-exe | FileCheck %s - -# CHECK: 8 .data 00000000 0000000000402000 DATA - -!ELF -FileHeader: !FileHeader - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_AARCH64 - -Sections: -- Name: .text - Type: SHT_PROGBITS - Content: '' - AddressAlign: 0 - Flags: [SHF_ALLOC, SHF_EXECINSTR] -- Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 1 - Content: '' - Size: 0x1000 -- Name: .data - Type: SHT_PROGBITS - Content: '' - AddressAlign: 4096 - Flags: [SHF_ALLOC, SHF_WRITE] - -Symbols: - Global: - - Name: _start - Section: .text - Value: 0x0 - Size: 4 diff --git a/test/elf/soname.test b/test/elf/soname.test deleted file mode 100644 index 79c089ec607c..000000000000 --- a/test/elf/soname.test +++ /dev/null @@ -1,6 +0,0 @@ -RUN: lld -flavor gnu -shared -target i386 -e main %p/Inputs/writersyms.o \ -RUN: -o %t -soname libtest.so -RUN: llvm-readobj -dynamic-table %t | FileCheck %s - -CHECK: LoadName: libtest.so -CHECK: 0x0000000E SONAME LibrarySoname (libtest.so) diff --git a/test/elf/strip-all.test b/test/elf/strip-all.test deleted file mode 100644 index 44a41c2a0d9f..000000000000 --- a/test/elf/strip-all.test +++ /dev/null @@ -1,107 +0,0 @@ -# Tests the --strip-all (-s) flag. We expect the symbol table to not contain -# any symbol in the output file. -# -# The following code was used to generate the object. -# $ clang -c blah.c -o blah -# -# void -# callMeMaybe(int *v) -# { -# *v += 1; -# } -# -# int -# main(void) -# { -# -# int blah = 42; -# callMeMaybe(&blah); -# } - -#RUN: yaml2obj -format=elf %s -o=%t.o -#RUN: lld -flavor gnu -target x86_64 %t.o -e=main --strip-all -o %t1 -#RUN: llvm-readobj -dt %t1 | FileCheck -check-prefix CHECKSYMS %s - -#CHECKSYMS: @ - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_FREEBSD - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 554889E548897DF8488B7DF88B07050100000089075DC3660F1F840000000000554889E54883EC10488D7DFCC745FC2A000000E8C8FFFFFFB8000000004883C4105DC3 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 004672656542534420636C616E672076657273696F6E20332E342E312028746167732F52454C454153455F33342F646F74312D66696E616C203230383033322920323031343035313200 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000017A5200017810011B0C070890010000180000001C000000000000001700000000410E108602430D060000001800000038000000000000002300000000410E108602430D06000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 - - Offset: 0x000000000000003C - Symbol: .text - Type: R_X86_64_PC32 - Addend: 32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: callMeMaybe - Type: STT_FUNC - Section: .text - Size: 0x0000000000000017 - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000000020 - Size: 0x0000000000000023 -... diff --git a/test/elf/stripped-empty.test b/test/elf/stripped-empty.test deleted file mode 100644 index 0403808db2eb..000000000000 --- a/test/elf/stripped-empty.test +++ /dev/null @@ -1,4 +0,0 @@ -RUN: lld -flavor gnu -shared -o test.so \ -RUN: -target x86_64 %p/Inputs/stripped-empty.x86_64 - -test that we handle files without a symbol table. diff --git a/test/elf/symbols.test b/test/elf/symbols.test deleted file mode 100644 index 7f6bbdbc8c1d..000000000000 --- a/test/elf/symbols.test +++ /dev/null @@ -1,33 +0,0 @@ -# Tests the functionality of archive libraries reading -# and resolution -# Note: The binary files would not be required once we have support to generate -# binary archives from textual(yaml) input -# -# Tests generated using the source files below -# main file -# -#extern int __bss_start __attribute__ ((weak)); -#int a; -#int main() -#{ -# return 0; -#} -# - -RUN: lld -flavor gnu -target i386 -e main %p/Inputs/writersyms.o -o %t1 -RUN: llvm-nm -n %t1 | FileCheck -check-prefix CHECKSYMS %s -RUN: lld -flavor gnu -shared -target i386 -e main %p/Inputs/writersyms.o -o %t1 -RUN: llvm-nm -n %t1 | FileCheck -check-prefix CHECKSHAREDSYMS %s - -CHECKSYMS: {{[0-9a-f]+}} a 1.c -CHECKSYMS: {{[0-9a-f]+}} T main -CHECKSYMS: {{[0-9a-f]+}} A __bss_start -CHECKSYMS: {{[0-9a-f]+}} B a -CHECKSYMS: {{[0-9a-f]+}} A __bss_end -CHECKSYMS: {{[0-9a-f]+}} A _end -CHECKSYMS: {{[0-9a-f]+}} A end - -CHECKSHAREDSYMS: {{[0-9a-f]+}} a 1.c -CHECKSHAREDSYMS: {{[0-9a-f]+}} T main -CHECKSHAREDSYMS: {{[0-9a-f]+}} B a -CHECKSHAREDSYMS: {{[0-9a-f]+}} A _end diff --git a/test/elf/tls.test b/test/elf/tls.test deleted file mode 100644 index 038889406b67..000000000000 --- a/test/elf/tls.test +++ /dev/null @@ -1,43 +0,0 @@ -# REQUIRES: x86 - -# This tests verifies that TLS variables have correct offsets -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/tls.x86-64 -static \ -RUN: --output-filetype=yaml --noinhibit-exec | FileCheck %s -check-prefix=YAML - -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/tls.x86-64 -o %t \ -RUN: --noinhibit-exec -e main -static && llvm-objdump -d %t | FileCheck %s - -// Verify that the TLS accesses have the correct offsets. - -YAML: name: main -YAML: references: -YAML: kind: R_X86_64_TPOFF32 -YAML: offset: 9 -YAML: target: tls1 -YAML: kind: R_X86_64_TPOFF32 -YAML: offset: 17 -YAML: target: tls0 -YAML: kind: R_X86_64_TPOFF32 -YAML: offset: 25 -YAML: target: tls2 - -YAML: name: GOTTPOFF -YAML: kind: R_X86_64_PC32 -YAML: target: [[GOTNAME:[a-zA-Z0-9_]+]] - -YAML: type: got -YAML: references: -YAML: kind: R_X86_64_TPOFF64 -YAML: target: tls2 - -// main -CHECK: addl %fs:-4 -CHECK: addl %fs:-8 -CHECK: addl %fs:-12 - -// GOTTPOFF -CHECK: movq {{[0-9]+}}(%rip) - -// TLSLD -CHECK: movq %fs:0, %rax -CHECK: leaq -8(%rax), %rax diff --git a/test/elf/tlsAddr.test b/test/elf/tlsAddr.test deleted file mode 100644 index 6bc5e3e9bf78..000000000000 --- a/test/elf/tlsAddr.test +++ /dev/null @@ -1,7 +0,0 @@ -# This tests verifies that TLS variables have correct offsets -# and that TBSS doesn't occupy memory -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/tlsAddr.x86-64 -static \ -RUN: -o %t --noinhibit-exec -RUN: llvm-objdump -section-headers %t | FileCheck -check-prefix=CHECKADDR %s - -CHECKADDR: {{[0-9]+}} .data 00000000 0000000000401008 DATA diff --git a/test/elf/undef-from-dso-to-main.test b/test/elf/undef-from-dso-to-main.test deleted file mode 100644 index 71d0b51499dd..000000000000 --- a/test/elf/undef-from-dso-to-main.test +++ /dev/null @@ -1,52 +0,0 @@ -# Tests that a reference from a DSO to a regular object -# forces the final executable to export the symbol. - -#RUN: yaml2obj -format=elf %p/Inputs/undef2-so.o.yaml -o=%t.o.so -#RUN: lld -flavor gnu -target x86_64 -shared %t.o.so -o %T/libundef2.so -#RUN: yaml2obj -format=elf %s -o=%t.o -#RUN: lld -flavor gnu -target x86_64 %t.o -L%T -lundef2 -o %t1 -#RUN: llvm-readobj -dyn-symbols %t1 | FileCheck -check-prefix CHECKSYMS %s - ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000001 - Content: C3 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '002E7379' -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - Global: - - Name: myexportedsymbol - Type: STT_OBJECT - Section: .bss - Size: 0x0000000000000004 - - Name: _start - Section: .text - Size: 0x0000000000000001 - -#CHECKSYMS: myexportedsymbol diff --git a/test/elf/undef-from-main-dso.test b/test/elf/undef-from-main-dso.test deleted file mode 100644 index 43faef0e74c4..000000000000 --- a/test/elf/undef-from-main-dso.test +++ /dev/null @@ -1,43 +0,0 @@ -RUN: lld -flavor gnu -target x86_64 -e main -o %t -L%p/Inputs \ -RUN: %p/Inputs/undef.o -lundef -RUN: llvm-readobj -relocations -symbols -dyn-symbols %t | FileCheck %s - -RUN: lld -flavor gnu -target x86_64 -e main -o %t -L%p/Inputs \ -RUN: %p/Inputs/undef-pc32.o -lundef -RUN: llvm-readobj -relocations -symbols -dyn-symbols %t | FileCheck %s - -# DSO source code: -# int x[2] = { 1, 2 }; -# -# Main binary source code: -# -# extern int x[2]; -# -# int main(void) -# { -# x[0] = 2; -# } -# - -CHECK: Relocations [ -CHECK-NEXT: Section ({{[0-9]+}}) .rela.dyn { -CHECK-NEXT: 0x{{[1-9A-F][0-9A-F]*}} R_X86_64_COPY x 0x0 -CHECK-NEXT: } -CHECK-NEXT: ] - -CHECK: Name: x ({{[0-9]+}} -CHECK-NEXT: Value: 0x{{[1-9A-F][0-9A-F]*}} -CHECK-NEXT: Size: 8 -CHECK-NEXT: Binding: Global (0x1) -CHECK-NEXT: Type: Object (0x1) -CHECK-NEXT: Other: 0 -CHECK-NEXT: Section: .bss - -CHECK: Name: x@ ({{[0-9]+}} -CHECK-NEXT: Value: 0x{{[1-9A-F][0-9A-F]*}} -CHECK-NEXT: Size: 8 -CHECK-NEXT: Binding: Global (0x1) -CHECK-NEXT: Type: Object (0x1) -CHECK-NEXT: Other: 0 -CHECK-NEXT: Section: .bss - diff --git a/test/elf/weaksym.test b/test/elf/weaksym.test deleted file mode 100644 index 0e265028e5ed..000000000000 --- a/test/elf/weaksym.test +++ /dev/null @@ -1,7 +0,0 @@ -# Tests that a weak reference remains a weak reference, -# even if a shared library defines the symbol weak as well. - -RUN: lld -flavor gnu -target x86_64 -shared %p/Inputs/weaksym.o -L%p/Inputs -lweaksym -o %t1 -RUN: llvm-nm -n %t1 | FileCheck -check-prefix CHECKSYMS %s - -CHECKSYMS: w weaksym diff --git a/test/elf/wrap.test b/test/elf/wrap.test deleted file mode 100644 index 997439f8f5b4..000000000000 --- a/test/elf/wrap.test +++ /dev/null @@ -1,279 +0,0 @@ -# This tests the functionality of using the --wrap option. -# The test case is extracted by compiling and linking the following code. -# -#cat > main.c << \! -#int main() { -# foo(); -# return 0; -#} -#! -# -#cat > wrapfoo.c << \! -#int __wrap_foo() { -# __real_foo(); -# return 0; -#} -#! -# -#cat > realfoo.c << \! -#int foo() { -# return 0; -#} -#! -# -#clang main.c wrapfoo.c realfoo.c -Xlinker --wrap -Xlinker foo -#RUN: yaml2obj -format=elf -docnum 1 %s -o %t.main.o -#RUN: yaml2obj -format=elf -docnum 2 %s -o %t.wrapfoo.o -#RUN: yaml2obj -format=elf -docnum 3 %s -o %t.realfoo.o -#RUN: lld -flavor gnu -target x86_64 %t.main.o %t.wrapfoo.o %t.realfoo.o \ -#RUN: --wrap foo --wrap foo --noinhibit-exec --output-filetype=yaml -o %t2.out -#RUN: lld -flavor gnu -target x86_64 %t.main.o %t.wrapfoo.o \ -#RUN: --wrap foo --wrap foo --noinhibit-exec --output-filetype=yaml -o %t2.out.undef 2>&1 | \ -#RUN: FileCheck %s -check-prefix=CHECKUNDEF -#CHECKWRAP: - name: main -#CHECKWRAP: references: -#CHECKWRAP: - kind: R_X86_64_PC32 -#CHECKWRAP: target: __wrap_foo -#CHECKWRAP: - name: __wrap_foo -#CHECKWRAP: references: -#CHECKWRAP: - kind: R_X86_64_PC32 -#CHECKWRAP: target: foo -#CHECKUNDEF: Undefined symbol: {{.*}}main.o: foo ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 5031C0E80000000031C05AC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000004 - Symbol: foo - Type: R_X86_64_PC32 - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 00636C616E672076657273696F6E20332E372E3020287472756E6B203232383733392920286C6C766D2F7472756E6B203232383734382900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C070890010000140000001C000000000000000C00000000410E1000000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x000000000000000C - - Name: foo -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 5031C0E80000000031C05AC3 - - Name: .rela.text - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .text - Relocations: - - Offset: 0x0000000000000004 - Symbol: __real_foo - Type: R_X86_64_PC32 - Addend: -4 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 00636C616E672076657273696F6E20332E372E3020287472756E6B203232383733392920286C6C766D2F7472756E6B203232383734382900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C070890010000140000001C000000000000000C00000000410E1000000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: __wrap_foo - Type: STT_FUNC - Section: .text - Size: 0x000000000000000C - - Name: __real_foo -... ---- -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - OSABI: ELFOSABI_GNU - Type: ET_REL - Machine: EM_X86_64 -Sections: - - Name: .text - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - AddressAlign: 0x0000000000000010 - Content: 31C0C3 - - Name: .data - Type: SHT_PROGBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .bss - Type: SHT_NOBITS - Flags: [ SHF_WRITE, SHF_ALLOC ] - AddressAlign: 0x0000000000000004 - Content: '' - - Name: .comment - Type: SHT_PROGBITS - Flags: [ SHF_MERGE, SHF_STRINGS ] - AddressAlign: 0x0000000000000001 - Content: 00636C616E672076657273696F6E20332E372E3020287472756E6B203232383733392920286C6C766D2F7472756E6B203232383734382900 - - Name: .note.GNU-stack - Type: SHT_PROGBITS - AddressAlign: 0x0000000000000001 - Content: '' - - Name: .eh_frame - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC ] - AddressAlign: 0x0000000000000008 - Content: 1400000000000000037A5200017810011B0C070890010000140000001C00000000000000030000000000000000000000 - - Name: .rela.eh_frame - Type: SHT_RELA - Link: .symtab - AddressAlign: 0x0000000000000008 - Info: .eh_frame - Relocations: - - Offset: 0x0000000000000020 - Symbol: .text - Type: R_X86_64_PC32 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: .comment - Type: STT_SECTION - Section: .comment - - Name: .note.GNU-stack - Type: STT_SECTION - Section: .note.GNU-stack - - Name: .eh_frame - Type: STT_SECTION - Section: .eh_frame - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Size: 0x0000000000000003 -... diff --git a/test/elf/x86-64-dynamic-relocs.test b/test/elf/x86-64-dynamic-relocs.test deleted file mode 100644 index 325693e3f714..000000000000 --- a/test/elf/x86-64-dynamic-relocs.test +++ /dev/null @@ -1,26 +0,0 @@ -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/relocs-dynamic.x86-64 \ -RUN: --output-filetype=yaml --noinhibit-exec | FileCheck %s - -path: <linker-internal> -defined-atoms: - - name: main - scope: global - content: [ E8, 00, 00, 00, 00, C3 ] - alignment: 2^4 - section-choice: custom-required - section-name: .text - references: - - kind: R_X86_64_PLT32 - offset: 1 - target: foo - addend: -4 - - name: foo - scope: global - content: [ C3 ] - alignment: 6 mod 2^4 - section-choice: custom-required - section-name: .text - -# Don't generate a PLT/GOT entry for a PLT32 relocation to a non-shared symbol. -CHECK-NOT: got -CHECK-NOT: stub diff --git a/test/elf/x86-64-dynamic.test b/test/elf/x86-64-dynamic.test deleted file mode 100644 index 4e24e954a20e..000000000000 --- a/test/elf/x86-64-dynamic.test +++ /dev/null @@ -1,79 +0,0 @@ -# Checks that linking an object file with a shared object creates the necessary -# PLT/GOT Entries -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/use-shared.x86-64 \ -RUN: %p/Inputs/shared.so-x86-64 --output-filetype=yaml -o %t1 --noinhibit-exec -RUN: FileCheck %s < %t1 - -RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/use-shared-32s.x86-64 \ -RUN: %p/Inputs/shared.so-x86-64 --output-filetype=yaml --noinhibit-exec \ -RUN: | FileCheck %s --check-prefix=32S - -CHECK: - name: main -CHECK: scope: global -CHECK: references: -CHECK: - kind: R_X86_64_PC32 -CHECK: offset: 18 -CHECK: target: [[PLTNAME:[-a-zA-Z0-9_]+]] -CHECK: addend: -4 -CHECK: - kind: R_X86_64_GOTPCREL -CHECK: offset: 25 -CHECK: target: [[GOTNAME:[-a-zA-Z0-9_]+]] -CHECK: addend: -4 - - - name: .PLT0 -CHECK: type: stub -CHECK: content: [ FF, 35, 00, 00, 00, 00, FF, 25, 00, 00, 00, 00, -CHECK: 90, 90, 90, 90 ] -CHECK: alignment: 2^4 -CHECK: section-choice: custom-required -CHECK: section-name: .plt -CHECK: references: -CHECK: - kind: R_X86_64_PC32 -CHECK: offset: 2 - target: __got0 -CHECK: addend: -4 -CHECK: - kind: R_X86_64_PC32 -CHECK: offset: 8 - target: __got1 -CHECK: addend: -4 - - name: [[PLTNAME]] -CHECK: type: stub -CHECK: content: [ FF, 25, 00, 00, 00, 00, 68, 00, 00, 00, 00, E9, -CHECK: 00, 00, 00, 00 ] -CHECK: alignment: 2^4 -CHECK: section-choice: custom-required -CHECK: section-name: .plt -CHECK: references: -CHECK: - kind: R_X86_64_PC32 -CHECK: offset: 2 - target: __got_foo -CHECK: addend: -4 -CHECK: - kind: LLD_R_X86_64_GOTRELINDEX -CHECK: offset: 7 - target: __got_foo -CHECK: - kind: R_X86_64_PC32 -CHECK: offset: 12 - target: .PLT0 -CHECK: addend: -4 - -// Don't check the GOT and PLT names as they are only present in assert builds. -CHECK: type: got -CHECK: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ] -CHECK: section-choice: custom-required -CHECK: section-name: .got -CHECK: permissions: rw- -CHECK: references: -CHECK: - kind: R_X86_64_GLOB_DAT -CHECK: offset: 0 -CHECK: target: i - -CHECK:shared-library-atoms: -CHECK: - name: foo -CHECK: load-name: shared.so-x86-64 - -32S: name: main -32S: kind: R_X86_64_PC32 -32S: target: func -32S: kind: R_X86_64_32S -32S: kind: R_X86_64_PC32 -32S: type: stub diff --git a/test/elf/x86.test b/test/elf/x86.test deleted file mode 100644 index 6b68837193e6..000000000000 --- a/test/elf/x86.test +++ /dev/null @@ -1,38 +0,0 @@ -# Source for input file: reloc-xb.x86 -# xb.S: -# .section .text, "ax", @progbits -# .align 0x4 -# .globl _start -# _start: -# .globl back -# back: -# call target -# -# Source for input file: reloc-xt.x86 -# xt.S: -# .section .text, "ax", @progbits -# -# .globl target -# target: -# call back -# -# Assembled with: "as --32" - -RUN: lld -flavor gnu -target i386 -e back --output-filetype=yaml %p/Inputs/reloc-xb.x86 %p/Inputs/reloc-xt.x86 | FileCheck %s -check-prefix x86-yaml - -x86-yaml: - name: back -x86-yaml: scope: global -x86-yaml: content: [ E8, FC, FF, FF, FF ] -x86-yaml: references: -x86-yaml: - kind: R_386_PC32 -x86-yaml: offset: 1 -x86-yaml: target: target - -x86-yaml: - name: target -x86-yaml: scope: global -x86-yaml: content: [ E8, FC, FF, FF, FF ] -x86-yaml: references: -x86-yaml: - kind: R_386_PC32 -x86-yaml: offset: 1 -x86-yaml: target: back - diff --git a/test/elf/x86_64-kinds.test b/test/elf/x86_64-kinds.test deleted file mode 100644 index 49586059d953..000000000000 --- a/test/elf/x86_64-kinds.test +++ /dev/null @@ -1,23 +0,0 @@ -REQUIRES: x86 - -RUN: lld -flavor gnu -target x86_64-linux -o %t1 %p/Inputs/relocs.x86-64 \ -RUN: -e _start -static -RUN: llvm-objdump -d %t1 | FileCheck %s -check-prefix=RELOCS - -RUN: lld -flavor gnu -target x86_64-linux --output-filetype=yaml -e _start -static \ -RUN: %p/Inputs/relocs.x86-64 | FileCheck %s -check-prefix=X86_64 - -RELOCS: ELF64-x86-64 - -// R_X86_64_32S -RELOCS: c7 04 25 -RELOCS-NOT: 00 00 00 00 -RELOCS: 05 00 00 00 movl - -// R_X86_64_PC32 -RELOCS: e8 -RELOCS-NOT: 00 00 00 00 -RELOCS: callq - -X86_64: R_X86_64_32S -X86_64: R_X86_64_PC32 |