+# REQUIRES: aarch64
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %p/Inputs/aarch64-condb-reloc.s -o %t1
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %t2
# RUN: ld.lld %t1 %t2 -o %t
# RUN: ld.lld -shared %t1 %t2 -o %t3
# RUN: llvm-objdump -d %t3 | FileCheck -check-prefix=DSO %s
# RUN: llvm-readobj -s -r %t3 | FileCheck -check-prefix=DSOREL %s
-# REQUIRES: aarch64
# 0x11024 - 36 = 0x11000
# 0x11028 - 24 = 0x11010
+# REQUIRES: aarch64
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %t
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %p/Inputs/uabs_label.s -o %t2.o
# RUN: ld.lld %t %t2.o -o %t2
# RUN: llvm-objdump -d %t2 | FileCheck %s
-# REQUIRES: aarch64
.section .R_AARCH64_ADR_PREL_LO21,"ax",@progbits
.globl _start
+# REQUIRES: aarch64
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %p/Inputs/aarch64-tls-ie.s -o %ttlsie.o
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %s -o %tmain.o
# RUN: ld.lld %tmain.o %ttlsie.o -o %tout
# RUN: llvm-objdump -d %tout | FileCheck %s
# RUN: llvm-readobj -s -r %tout | FileCheck -check-prefix=RELOC %s
-# REQUIRES: aarch64
#Local-Dynamic to Initial-Exec relax creates no
#RELOC: Relocations [
+# REQUIRES: aarch64
// REQUIRES: aarch64
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %p/Inputs/aarch64-tls-ie.s -o %tdso.o
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %tmain.o
# RUN: ld.lld --hash-style=sysv %tmain.o %tdso.so -o %tout
# RUN: llvm-objdump -d %tout | FileCheck %s
# RUN: llvm-readobj -s -r %tout | FileCheck -check-prefix=RELOC %s
-# REQUIRES: aarch64
#RELOC: Section {
#RELOC: Index:
+# REQUIRES: aarch64
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %p/Inputs/aarch64-tls-ie.s -o %ttlsie.o
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %s -o %tmain.o
# RUN: ld.lld %tmain.o %ttlsie.o -o %tout
# RUN: llvm-objdump -d %tout | FileCheck %s
# RUN: llvm-readobj -s -r %tout | FileCheck -check-prefix=RELOC %s
-# REQUIRES: aarch64
# Initial-Exec to Local-Exec relax creates no dynamic relocations.
# RELOC: Relocations [
+# REQUIRES: aarch64
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %tmain.o
# RUN: ld.lld %tmain.o -o %tout
# RUN: llvm-objdump -d %tout | FileCheck %s
# RUN: llvm-readobj -s -r %tout | FileCheck -check-prefix=RELOC %s
-# REQUIRES: aarch64
#Local-Dynamic to Initial-Exec relax creates no
#RELOC: Relocations [
+# REQUIRES: aarch64
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %p/Inputs/aarch64-tstbr14-reloc.s -o %t1
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %t2
# RUN: ld.lld %t1 %t2 -o %t
# RUN: ld.lld -shared %t1 %t2 -o %t3
# RUN: llvm-objdump -d %t3 | FileCheck -check-prefix=DSO %s
# RUN: llvm-readobj -s -r %t3 | FileCheck -check-prefix=DSOREL %s
-# REQUIRES: aarch64
# 0x1101c - 28 = 0x20000
# 0x11020 - 16 = 0x20010
+# REQUIRES: amdgpu
# RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx802 -filetype=obj %S/Inputs/amdgpu-kernel-0.s -o %t-0.o
# RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx803 -filetype=obj %S/Inputs/amdgpu-kernel-1.s -o %t-1.o
# RUN: not ld.lld -shared %t-0.o %t-1.o -o %t.so 2>&1 | FileCheck %s
-# REQUIRES: amdgpu
-
# CHECK: error: incompatible e_flags: {{.*}}-1.o
+# REQUIRES: amdgpu
# RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx803 -filetype=obj %S/Inputs/amdgpu-kernel-0.s -o %t-0.o
# RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx803 -filetype=obj %S/Inputs/amdgpu-kernel-1.s -o %t-1.o
# RUN: ld.lld -shared %t-0.o %t-1.o -o %t.so
# RUN: llvm-readobj -file-headers %t.so | FileCheck %s
-# REQUIRES: amdgpu
-
# CHECK: Flags [
# CHECK: EF_AMDGPU_MACH_AMDGCN_GFX803 (0x2A)
# CHECK: ]
+# REQUIRES: amdgpu
# RUN: llvm-mc -filetype=obj -triple amdgcn--amdhsa -mcpu=kaveri %s -o %t.o
# RUN: ld.lld -shared %t.o -o %t
# RUN: llvm-readobj -sections -symbols -program-headers %t | FileCheck %s
-# REQUIRES: amdgpu
-
.type glob0, @object
.data
.globl glob0
+# REQUIRES: amdgpu
# RUN: llvm-mc -filetype=obj -triple amdgcn--amdhsa -mcpu=kaveri %s -o %t.o
# RUN: ld.lld -shared %t.o -o %t
# RUN: llvm-readobj -sections -symbols -program-headers %t | FileCheck %s
-# REQUIRES: amdgpu
-
.hsa_code_object_version 1,0
.hsa_code_object_isa 7,0,0,"AMD","AMDGPU"
+# REQUIRES: amdgpu
# RUN: llvm-mc -filetype=obj -triple=amdgcn--amdhsa -mcpu=fiji %s -o %t.o
# RUN: ld.lld --hash-style=sysv -shared %t.o -o %t.so
# RUN: llvm-readobj -r %t.so | FileCheck %s
# RUN: llvm-objdump -s %t.so | FileCheck %s --check-prefix=OBJDUMP
-# REQUIRES: amdgpu
-
.text
kernel0:
+# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %S/Inputs/archive.s -o %t2
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %S/Inputs/archive2.s -o %t3
# RUN: llvm-ar --format=gnu rcsT %t.thin %t2 %t3 %t4
# RUN: ld.lld %t %t.thin %t5 -o %t.out
# RUN: llvm-nm %t.out | FileCheck %s
-# REQUIRES: x86
# Nothing here. Just needed for the linker to create a undefined _start symbol.
+# REQUIRES: aarch64
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %t
# RUN: ld.lld %t -o %t2
# RUN: llvm-readobj -file-headers -sections -program-headers -symbols %t2 \
# RUN: | FileCheck %s
-# REQUIRES: aarch64
# exits with return code 42 on FreeBSD/AArch64
.globl _start
+# REQUIRES: x86
# Verify that OSABI is set to the correct value.
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %t
# RUN: ld.lld %t -o %t2
# RUN: llvm-readobj -file-headers %t2 | FileCheck %s
-# REQUIRES: x86
.globl _start
_start:
+# REQUIRES: mips
# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -o %t.exe
# RUN: llvm-readobj -file-headers -sections -program-headers -symbols %t.exe \
# RUN: | FileCheck %s
-# REQUIRES: mips
-
# Exits with return code 1 on Linux.
.globl __start
__start:
+# REQUIRES: ppc
# RUN: llvm-mc -filetype=obj -triple=powerpc-unknown-freebsd %s -o %t
# RUN: ld.lld --hash-style=sysv -discard-all -shared %t -o %t2
# RUN: llvm-readobj -file-headers -sections -section-data -program-headers %t2 | FileCheck %s
-# REQUIRES: ppc
# exits with return code 42 on FreeBSD
.text
+# REQUIRES: ppc
# # RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t
# RUN: ld.lld --hash-style=sysv -discard-all -shared %t -o %t2
# RUN: llvm-readobj -file-headers -sections -section-data -program-headers %t2 | FileCheck %s
-# REQUIRES: ppc
.abiversion 2
# Exits with return code 55 on linux.
.text
+# REQUIRES: sparc
# RUN: llvm-mc -filetype=obj -triple=sparc64-unknown-openbsd %s -o %t
# RUN: ld.lld %t -o %t2
# RUN: llvm-readobj -file-headers -sections -program-headers -symbols %t2 \
# RUN: | FileCheck %s
-# REQUIRES: sparc
# exits with return code 42 on OpenBSD/sparc64
.global _start
+# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t
# RUN: ld.lld %t -o %t2
# RUN: llvm-readobj -file-headers -sections -program-headers %t2 | FileCheck %s
-# REQUIRES: x86
# exits with return code 42 on linux
.globl _start
+# REQUIRES: ppc
# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t
# RUN: ld.lld -discard-all %t -o %t2
# RUN: llvm-readobj -file-headers -sections -section-data -program-headers %t2 | FileCheck %s
-# REQUIRES: ppc
# exits with return code 42 on linux
.text
+# REQUIRES: x86
# This test checks that CallGraphSort ignores edges that would form "bad"
# clusters.
-# REQUIRES: x86
-
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
# RUN: echo "A C 1" > %t.call_graph
# RUN: echo "E B 4" >> %t.call_graph
+# REQUIRES: mips
# RUN: llvm-mc -triple=mips64-unknown-freebsd %s -filetype=obj -o %t.o
# RUN: not ld.lld %t.o %S/Inputs/corrupt-version-reference.so -o %t.exe 2>&1 | FileCheck %s
-# REQUIRES: mips
# CHECK: error: corrupt input file: version definition index 9 for symbol __cxa_finalize is out of bounds
# CHECK: >>> defined in {{.+}}/corrupt-version-reference.so
+# REQUIRES: x86
# Verify that a .dynstr in the .text segment has null byte terminators
-# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
# RUN: ld.lld %t.o -no-rosegment -o %t.so -shared
# RUN: llvm-objdump %t.so -s -j .dynstr | FileCheck %s
+# REQUIRES: mips
# Check reading PC values of FDEs and writing lookup table in the .eh_frame_hdr
# if CIE augmentation string has 'L' token and PC values are encoded using
# absolute (not relative) format.
# RUN: ld.lld --eh-frame-hdr %t.o -o %t
# RUN: llvm-objdump -s -dwarf=frames %t | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Contents of section .eh_frame_hdr:
# CHECK-NEXT: 10128 011b033b 00000010 00000001 0000fed8
# ^-- 0x20000 - 0x10138
+# REQUIRES: x86,ppc,mips,aarch64
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %tx64
# RUN: ld.lld -m elf_amd64_fbsd %tx64 -o %t2x64
# RUN: llvm-readobj -file-headers %t2x64 | FileCheck --check-prefix=AMD64 %s
# AARCH64-NEXT: Flags [ (0x0)
# AARCH64-NEXT: ]
-# REQUIRES: x86,ppc,mips,aarch64
-
.globl _start
_start:
-# LINK_ORDER cnamed sections are not kept alive by the __start_* reference.
# REQUIRES: x86
+# LINK_ORDER cnamed sections are not kept alive by the __start_* reference.
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
# RUN: ld.lld --gc-sections %t.o -o %t
+# REQUIRES: mips
# Check reading/writing implicit addend for R_MIPS_26 relocation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -o %t.exe
# RUN: llvm-objdump -d %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Disassembly of section .text:
# CHECK: __start:
# CHECK-NEXT: 20000: 0e 00 80 00 jal 134348800
+# REQUIRES: mips
# Check R_MIPS_26 relocation handling in case of N64 ABIs.
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=CHECK,HAZARDPLT
-# REQUIRES: mips
-
# CHECK: Disassembly of section .text:
# CHECK-NEXT: __start:
# CHECK-NEXT: 20000: 0c 00 80 0c jal 131120
+# REQUIRES: mips
# Check R_MIPS_26 relocation handling.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t1.o
# RUN: llvm-readobj -dynamic-table -s -r -mips-plt-got %t.exe \
# RUN: | FileCheck -check-prefix=REL %s
-# REQUIRES: mips
-
# CHECK: Disassembly of section .text:
# CHECK-NEXT: bar:
# CHECK-NEXT: 20000: 0c 00 80 06 jal 131096 <loc>
+# REQUIRES: mips
# Check R_MIPS_32 relocation calculation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t-be.o
# RUN: llvm-readobj -r -dynamic-table -mips-plt-got %t-el.so \
# RUN: | FileCheck -check-prefix=REL %s
-# REQUIRES: mips
-
.globl __start
__start:
nop
+# REQUIRES: mips
# Check R_MIPS_GOT_DISP relocations against various kind of symbols.
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
# RUN: llvm-objdump -d -t %t.exe | FileCheck %s
# RUN: llvm-readobj -r -mips-plt-got %t.exe | FileCheck -check-prefix=GOT %s
-# REQUIRES: mips
-
# CHECK: __start:
# CHECK-NEXT: 20000: 24 42 80 40 addiu $2, $2, -32704
# CHECK-NEXT: 20004: 24 42 80 20 addiu $2, $2, -32736
+# REQUIRES: mips
# Check MIPS N64 ABI GOT relocations
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
# RUN: llvm-objdump -d -t %t.exe | FileCheck %s
# RUN: llvm-readobj -r -mips-plt-got %t.exe | FileCheck -check-prefix=GOT %s
-# REQUIRES: mips
-
# CHECK: __start:
# CHECK-NEXT: 20000: df 82 80 20 ld $2, -32736($gp)
+# REQUIRES: mips
# Check setup of GP relative offsets in a function's prologue.
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -shared -o %t.so
# RUN: llvm-objdump -d -t %t.so | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Disassembly of section .text:
# CHECK-NEXT: foo:
# CHECK-NEXT: 10000: 3c 1c 00 01 lui $gp, 1
+# REQUIRES: mips
# Check handling multiple MIPS N64 ABI relocations packed
# into the single relocation record.
# RUN: llvm-objdump -d -s -t %t.exe | FileCheck %s
# RUN: llvm-readobj -r %t.exe | FileCheck -check-prefix=REL %s
-# REQUIRES: mips
-
# CHECK: __start:
# CHECK-NEXT: 20000: 3c 1c 00 01 lui $gp, 1
# ^-- 0x20000 - 0x37ff0
+# REQUIRES: mips
# Check R_MIPS_64 relocation calculation.
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t.o
# RUN: llvm-objdump -t %t.so | FileCheck -check-prefix=SYM %s
# RUN: llvm-readobj -r -dynamic-table -mips-plt-got %t.so | FileCheck %s
-# REQUIRES: mips
-
.global __start
__start:
nop
+# REQUIRES: mips
# Check R_MIPS_CALL_HI16 / R_MIPS_CALL_LO16 relocations calculation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: llvm-objdump -d %t.so | FileCheck %s
# RUN: llvm-readobj -r -mips-plt-got %t.so | FileCheck -check-prefix=GOT %s
-# REQUIRES: mips
-
# CHECK: Disassembly of section .text:
# CHECK-NEXT: foo:
# CHECK-NEXT: 10000: 3c 02 00 00 lui $2, 0
+# REQUIRES: mips
# Check R_MIPS_CALL16 relocation calculation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: llvm-readobj -mips-plt-got -symbols %t.exe \
# RUN: | FileCheck -check-prefix=GOT %s
-# REQUIRES: mips
-
.text
.globl __start
__start:
+# REQUIRES: mips
# Check MIPS specific .dynamic section entries.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: llvm-readobj -sections -dyn-symbols -dynamic-table %t.so \
# RUN: | FileCheck -check-prefix=DSO %s
-# REQUIRES: mips
-
# EXE: Sections [
# EXE: Name: .dynamic
# EXE-NEXT: Type: SHT_DYNAMIC
+# REQUIRES: mips
# Check the order of dynamic symbols for the MIPS target.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t-be.o
# RUN: ld.lld -shared %t-el.o -o %t-el.so
# RUN: llvm-readobj -symbols -dyn-symbols %t-el.so | FileCheck %s
-# REQUIRES: mips
-
.data
.globl v1,v2,v3
v1:
+# REQUIRES: mips
# Check EI_ABIVERSION flags
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld -r -o %t.rel %t.o
# RUN: llvm-readobj -h %t.rel | FileCheck -check-prefix=REL %s
-# REQUIRES: mips
-
# DSO: ABIVersion: 0
# EXE: ABIVersion: 1
# PIE: ABIVersion: 0
+# REQUIRES: mips
# Check MIPS ELF ISA flag calculation if input files have different ISAs.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN: %s -o %t2.o
# RUN: not ld.lld %t1.o %t2.o -o %t.exe 2>&1 | FileCheck -check-prefix=NAN %s
-# REQUIRES: mips
-
.option pic0
.text
.global __start
+# REQUIRES: mips
# Check generation of MIPS specific ELF header flags.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN: ld.lld %t.o %t-mm.o -o %t.exe
# RUN: llvm-readobj -h -mips-abi-flags %t.exe | FileCheck -check-prefix=MICRO %s
-# REQUIRES: mips
-
.text
.globl __start
__start:
+# REQUIRES: mips
# Shouldn't allow the GNU hash style to be selected with the MIPS target.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t-be.o
# CHECK: the .gnu.hash section is not compatible with the MIPS target.
-# REQUIRES: mips
-
.globl __start
__start:
nop
+# REQUIRES: mips
# Check creation of GOT entries for global symbols in case of executable
# file linking. Symbols defined in DSO should get entries in the global part
# of the GOT. Symbols defined in the executable itself should get local GOT
# RUN: ld.lld %t.o %t.so -o %t.exe
# RUN: llvm-readobj -dt -t -mips-plt-got %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Symbols [
# CHECK: Symbol {
# CHECK: Name: _foo
+# REQUIRES: mips
# Check R_MIPS_GOT_HI16 / R_MIPS_GOT_LO16 relocations calculation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: llvm-objdump -d %t.so | FileCheck %s
# RUN: llvm-readobj -r -mips-plt-got %t.so | FileCheck -check-prefix=GOT %s
-# REQUIRES: mips
-
# CHECK: Disassembly of section .text:
# CHECK-NEXT: foo:
# CHECK-NEXT: 10000: 3c 02 00 00 lui $2, 0
+# REQUIRES: mips
# Check calculation of MIPS GOT page address entries number
# when a linker script is provided.
# RUN: ld.lld -shared --script %t.script -o %t.so %t.o
# RUN: llvm-readobj -t -mips-plt-got %t.so | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Name: foo1
# CHECK-NEXT: Value: 0x10000
# CHECK: Name: foo2
+# REQUIRES: mips
# Check the case when small section (less that 0x10000 bytes) occupies
# two adjacent 0xffff-bytes pages. We need to create two GOT entries
# for R_MIPS_GOT_PAGE relocations.
# RUN: ld.lld --section-start .rodata=0x27FFC -shared -o %t.so %t.o
# RUN: llvm-readobj -t -mips-plt-got %t.so | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Name: bar
# CHECK-NEXT: Value: 0x28000
# ^ page-address = (0x28000 + 0x8000) & ~0xffff = 0x30000
+# REQUIRES: mips
# Check number of redundant entries in the local part of MIPS GOT.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -shared -o %t.so
# RUN: llvm-readobj -mips-plt-got %t.so | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Local entries [
# CHECK-NEXT: Entry {
# CHECK-NEXT: Address:
+# REQUIRES: mips
# Check R_MIPS_GOT16 relocation calculation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t-be.o
# RUN: llvm-readobj -relocations %t-el.so | FileCheck -check-prefix=NORELOC %s
# RUN: llvm-readobj -sections %t-el.so | FileCheck -check-prefix=SHFLAGS %s
-# REQUIRES: mips
-
.text
.globl __start
__start:
+# REQUIRES: mips
# Check number of got entries is adjusted for linker script-added space.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -shared -o %t.so -T %t.script
# RUN: llvm-readobj -mips-plt-got -dynamic-table %t.so | FileCheck %s
-# REQUIRES: mips
-
# CHECK: 0x7000000A MIPS_LOCAL_GOTNO 4
# ^-- 2 * header + 2 local entries
# CHECK: Local entries [
+# REQUIRES: mips
# Check R_MIPS_GOT16 relocation against merge section.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux -o %t.o %s
# RUN: ld.lld -shared -o %t.so %t.o
# RUN: llvm-readobj -t -mips-plt-got %t.so | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Symbol {
# CHECK: Name: $.str
# CHECK-NEXT: Value: 0x105
+# REQUIRES: mips
# Check R_MIPS_GOT16 relocation against weak symbols.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: llvm-readobj -r -dt -dynamic-table -mips-plt-got %t2.so \
# RUN: | FileCheck -check-prefixes=CHECK,SYM %s
-# REQUIRES: mips
-
# CHECK: Relocations [
# CHECK-NEXT: ]
+# REQUIRES: mips
# Check writing updated addend for R_MIPS_GOT16 relocation,
# when produce a relocatable output.
# RUN: ld.lld -shared -o %t.so %t
# RUN: llvm-objdump -d %t.so | FileCheck -check-prefix=SO %s
-# REQUIRES: mips
-
# OBJ: Disassembly of section .text:
# OBJ-NEXT: .text:
# OBJ-NEXT: 0: 8f 99 00 00 lw $25, 0($gp)
+# REQUIRES: mips
# Check R_MIPS_GOT16 relocation calculation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: llvm-objdump -d -t %t.so | FileCheck %s
# RUN: llvm-readobj -r -mips-plt-got %t.so | FileCheck -check-prefix=GOT %s
-# REQUIRES: mips
-
# CHECK: Disassembly of section .text:
# CHECK-NEXT: __start:
# CHECK-NEXT: 10000: 8f 88 80 18 lw $8, -32744($gp)
+# REQUIRES: mips
# MIPS BFD linker puts _gp_disp symbol into DSO files and assigns zero
# version definition index to it. This value means 'unversioned local symbol'
# while _gp_disp is a section global symbol. We have to handle this bug
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o %S/Inputs/mips-gp-dips-corrupt-ver.so
-# REQUIRES: mips
-
.global __start
.text
__start:
+# REQUIRES: mips
# Check that even if _gp_disp symbol is defined in the shared library
# we use our own value.
# RUN: llvm-objdump -d -t %t.so | FileCheck -check-prefix=DIS %s
# RUN: llvm-readobj -relocations %t.so | FileCheck -check-prefix=REL %s
-# REQUIRES: mips
-
# INT-SO: Name: _gp_disp
# INT-SO-NEXT: Value:
# INT-SO-NEXT: Size:
+# REQUIRES: mips
# Check that the linker use a value of _gp symbol defined
# in a linker script to calculate GOT relocations.
# RUN: ld.lld -shared -o %t.abs.so --script %t.abs.script %t.o
# RUN: llvm-objdump -s -t %t.abs.so | FileCheck --check-prefix=ABS %s
-# REQUIRES: mips
-
# REL: Contents of section .text:
# REL-NEXT: 0030 3c080000 2108010c 8f82ffcc
# ^-- %hi(_gp_disp)
+# REQUIRES: mips
# Check handling of relocations against __gnu_local_gp symbol.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld -o %t.exe %t.o
# RUN: llvm-objdump -d -t %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Disassembly of section .text:
# CHECK-NEXT: __start:
# CHECK-NEXT: 20000: 3c 08 00 03 lui $8, 3
+# REQUIRES: mips
# Check that default _gp value is calculated relative
# to the GP-relative section with the lowest address.
# RUN: ld.lld %t.o --script %t.rel.script -shared -o %t.so
# RUN: llvm-readobj -s -t %t.so | FileCheck %s
-# REQUIRES: mips
-
.text
.global foo
foo:
+# REQUIRES: mips
# Check order of gp-relative sections, i.e. sections with SHF_MIPS_GPREL flag.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -shared -o %t.so
# RUN: llvm-readobj -s %t.so | FileCheck %s
-# REQUIRES: mips
-
.text
nop
+# REQUIRES: mips
# Check that relocatable object produced by LLD has zero gp0 value.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: llvm-readobj -mips-reginfo %t.so | FileCheck --check-prefix=DSO %s
# RUN: llvm-objdump -s -t %t.so | FileCheck --check-prefix=DUMP %s
-# REQUIRES: mips
-
# REL: GP: 0x0
# DSO: GP: 0x27FF0
+# REQUIRES: mips
# Check R_MIPS_GPREL32 relocation calculation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld -shared -o %t.so %t.o
# RUN: llvm-objdump -s -section=.rodata -t %t.so | FileCheck %s
-# REQUIRES: mips
-
.text
.globl __start
__start:
+# REQUIRES: mips
# Check R_MIPS_HIGHER / R_MIPS_HIGHEST relocations calculation.
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t1.o
# RUN: ld.lld %t1.o %t2.o -o %t.exe
# RUN: llvm-objdump -d %t.exe | FileCheck %s
-# REQUIRES: mips
-
.global __start
__start:
lui $6, %highest(_foo+0x300047FFF7FF7)
+# REQUIRES: mips
# Check R_MIPS_HI16 / LO16 relocations calculation against _gp_disp.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t1.o
# RUN: ld.lld %t1.o %t2.o -shared -o %t.so
# RUN: llvm-objdump -d -t %t.so | FileCheck -check-prefix=SO %s
-# REQUIRES: mips
-
.text
.globl __start
__start:
+# REQUIRES: mips
# Check warning on orphaned R_MIPS_HI16 relocations.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -o %t.exe 2>&1 | FileCheck -check-prefix=WARN %s
# RUN: llvm-objdump -d -t %t.exe | FileCheck %s
-# REQUIRES: mips
-
.text
.globl __start
__start:
+# REQUIRES: mips
# Check R_MIPS_HI16 / LO16 relocations calculation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -o %t.exe
# RUN: llvm-objdump -d -t %t.exe | FileCheck %s
-# REQUIRES: mips
-
.text
.globl __start
__start:
+# REQUIRES: mips
# Check that R_MIPS_LO16 relocation is handled as non-relative,
# and if a target symbol is a DSO data symbol, LLD create a copy
# relocation.
# RUN: ld.lld %t.o %t.so -o %t.exe
# RUN: llvm-readobj -r %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Relocations [
# CHECK-NEXT: Section (7) .rel.dyn {
# CHECK-NEXT: 0x{{[0-9A-F]+}} R_MIPS_COPY data0 0x0
+# REQUIRES: mips
# Test that lld handles input files with concatenated .MIPS.abiflags sections
# This happens e.g. with the FreeBSD BFD (BFD 2.17.50 [FreeBSD] 2007-07-03)
# RUN: %p/Inputs/mips-concatenated-abiflags.o | \
# RUN: FileCheck --check-prefix=INPUT-OBJECT %s
-# REQUIRES: mips
.globl __start
__start:
nop
+# REQUIRES: mips
# Check MIPS multi-GOT layout.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t0.o
# RUN: llvm-objdump -s -section=.got -t %t.so | FileCheck %s
# RUN: llvm-readobj -r -dt -mips-plt-got %t.so | FileCheck -check-prefix=GOT %s
-# REQUIRES: mips
-
# CHECK: Contents of section .got:
# CHECK-NEXT: 60000 00000000 80000000 00010000 00010030
# CHECK-NEXT: 60010 00000000 00000004 00020000 00030000
+# REQUIRES: mips
# Check microMIPS GOT relocations for O32 ABI.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux -mattr=micromips \
# RUN: ld.lld %t1.o %t.so -o %t.exe
# RUN: llvm-readobj -mips-plt-got %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Local entries [
# CHECK-NEXT: Entry {
# CHECK-NEXT: Address:
+# REQUIRES: mips
# Check microMIPS GOT relocations for N64 ABI.
# microMIPS 64-bit is unsupported by LLVM starting from r335057.
# RUN: ld.lld %t1.o %t.so -o %t.exe
# RUN: llvm-readobj -mips-plt-got %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Local entries [
# CHECK-NEXT: Entry {
# CHECK-NEXT: Address:
+# REQUIRES: mips
# Check PLT creation for microMIPS to microMIPS calls.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN: llvm-objdump -d -mattr=micromips %teb.exe \
# RUN: | FileCheck --check-prefix=MIXED %s
-# REQUIRES: mips
-
# EB: Disassembly of section .plt:
# EB-NEXT: .plt:
# EB-NEXT: 20010: 79 80 3f fd addiupc $3, 65524
+# REQUIRES: mips
# Check less-significant bit setup for microMIPS PLT.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN: llvm-readobj -t -dt -mips-plt-got %t.exe | FileCheck %s
# RUN: llvm-objdump -d -mattr=micromips %t.exe | FileCheck --check-prefix=ASM %s
-# REQUIRES: mips
-
# CHECK: Symbols [
# CHECK: Symbol {
# CHECK: Name: foo
+# REQUIRES: mips
# Check handling of microMIPS relocations.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN: llvm-objdump -d -t -mattr=micromips %tel.exe \
# RUN: | FileCheck --check-prefixes=EL,SYM %s
-# REQUIRES: mips
-
# EB: __start:
# EB-NEXT: 20010: 41 a3 00 01 lui $3, 1
# EB-NEXT: 20014: 30 63 7f df addiu $3, $3, 32735
+# REQUIRES: mips
# Check microMIPS thunk generation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN: llvm-objdump -d -mattr=+micromips %t-el-r6.exe \
# RUN: | FileCheck --check-prefix=EL-R6 %s
-# REQUIRES: mips
-
# EB-R2: __start:
# EB-R2-NEXT: 20000: f4 01 00 04 jal 131080 <__microLA25Thunk_foo>
# EB-R2-NEXT: 20004: 00 00 00 00 nop
+# REQUIRES: mips
# Check that LLD shows an error when N32 ABI emulation argument
# is combined with non-N32 ABI object files.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: not ld.lld -m elf32btsmipn32 %t.o -o %t.exe 2>&1 | FileCheck %s
-# REQUIRES: mips
-
.text
.global __start
__start:
+# REQUIRES: mips
# Check handling of N32 ABI relocation records.
# For now llvm-mc generates incorrect object files for N32 ABI.
# RUN: llvm-objdump -t -d -s %t.exe | FileCheck %s
# RUN: llvm-readobj -h %t.exe | FileCheck -check-prefix=ELF %s
-# REQUIRES: mips
-
# .text
# .type __start, @function
# .global __start
+# REQUIRES: mips
# Check reading addends for relocations in non-allocatable sections.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t1.o
# RUN: ld.lld %t1.o %t2.o -o %t.exe
# RUN: llvm-objdump -s %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Contents of section .debug_info:
# CHECK-NEXT: 0000 ffffffff 00020000 00020000
# ^--------^-- __start
+# REQUIRES: mips
# Check MIPS .MIPS.options section generation.
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t1.o
# RUN: ld.lld %t1.o %t2.o --gc-sections --script %t.rel.script -shared -o %t.so
# RUN: llvm-readobj -symbols -mips-options %t.so | FileCheck %s
-# REQUIRES: mips
-
.text
.globl __start
__start:
+# REQUIRES: mips
# Check that we create an error on an out-of-bounds R_MIPS_CALL_16
-# REQUIRES: mips
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t1.o
# RUN: not ld.lld %t1.o -o %t.exe 2>&1 | FileCheck %s
+# REQUIRES: mips
# Check R_MIPS_PCxxx relocations calculation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN: ld.lld %t1.o %t2.o -o %t.exe
# RUN: llvm-objdump -mcpu=mips32r6 -d -t -s %t.exe | FileCheck %s
-# REQUIRES: mips
-
.text
.globl __start
__start:
+# REQUIRES: mips
# Check creating of R_MIPS_COPY and R_MIPS_JUMP_SLOT dynamic relocations
# and corresponding PLT entries.
# RUN: ld.lld %t.o %t.so -o %t.exe
# RUN: llvm-readobj -r -mips-plt-got %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Relocations [
# CHECK-NEXT: Section ({{.*}}) .rel.dyn {
# CHECK-DAG: 0x{{[0-9A-F]+}} R_MIPS_COPY data0 0x0
+# REQUIRES: mips
# Check PLT entries generation in case of R6 ABI version.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN: ld.lld %t1.o %t.so -o %t.exe -z hazardplt
# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=HAZARDPLT,CHECK
-# REQUIRES: mips
-
# CHECK: Disassembly of section .text:
# CHECK-NEXT: __start:
# CHECK-NEXT: 20000: 0c 00 80 0c jal 131120
+# REQUIRES: mips
# Check MIPS .reginfo section generation.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t1.o
# RUN: ld.lld %t1.o %t2.o --gc-sections -shared -o %t.so
# RUN: llvm-readobj -symbols -mips-reginfo %t.so | FileCheck %s
-# REQUIRES: mips
-
.text
.globl __start
__start:
+# REQUIRES: mips
# Check linking MIPS code in case of -r linker's option.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld -r -o %t-r.o %t.o
# RUN: llvm-objdump -s -t %t-r.o | FileCheck %s
-# REQUIRES: mips
-
.text
.global __start
__start:
+# REQUIRES: mips
# In case of linking PIC and non-PIC code together and generation
# of a relocatable object, all PIC symbols should have STO_MIPS_PIC
# flag in the symbol table of the ouput file.
# RUN: ld.lld -r %t-npic.o %t-pic.o -o %t-rel.o
# RUN: llvm-readobj -t %t-rel.o | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Symbol {
# CHECK: Name: main
# CHECK-NEXT: Value:
+# REQUIRES: mips
# Check assigning STO_MIPS_PLT flag to symbol needs a pointer equality.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN: ld.lld %t.o %t.so -o %t.exe
# RUN: llvm-readobj -dt -mips-plt-got %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Symbol {
# CHECK: Name: foo0@
# CHECK-NEXT: Value: 0x0
+# REQUIRES: mips
# Check MIPS TLS 64-bit relocations handling.
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
# RUN: llvm-objdump -d -s -t %t-out.so | FileCheck -check-prefix=DIS-SO %s
# RUN: llvm-readobj -r -mips-plt-got %t-out.so | FileCheck -check-prefix=SO %s
-# REQUIRES: mips
-
# DIS: __start:
# DIS-NEXT: 20000: 24 62 80 30 addiu $2, $3, -32720
# DIS-NEXT: 20004: 24 62 80 20 addiu $2, $3, -32736
+# REQUIRES: mips
# Check MIPS R_MIPS_TLS_DTPREL_HI16/LO16 and R_MIPS_TLS_TPREL_HI16/LO16
# relocations handling.
# RUN: ld.lld %t.o -shared -o %t.so
# RUN: llvm-readobj -r -mips-plt-got %t.so | FileCheck -check-prefix=SO %s
-# REQUIRES: mips
-
# DIS: __start:
# DIS-NEXT: 20000: 24 62 00 00 addiu $2, $3, 0
# %hi(loc0 - .tdata - 0x8000) --^
+# REQUIRES: mips
# Check handling TLS related relocations and symbols when linking
# a 64-bit static executable.
# RUN: ld.lld -static %t -o %t.exe
# RUN: llvm-objdump -s -t %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Contents of section .data:
# CHECK-NEXT: 30000 00020004 ffffffff ffff8004 ffffffff
# CHECK-NEXT: 30010 ffff9004
+# REQUIRES: mips
# Check handling TLS related relocations and symbols when linking
# a static executable.
# RUN: ld.lld -static %t -o %t.exe
# RUN: llvm-objdump -s -t %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Contents of section .data:
# CHECK-NEXT: 30000 0002000c ffff8004 ffff9004
# CHECK: Contents of section .got:
+# REQUIRES: mips
# Check MIPS TLS relocations handling.
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN: llvm-objdump -d -s -t %t-out.so | FileCheck -check-prefix=DIS-SO %s
# RUN: llvm-readobj -r -mips-plt-got %t-out.so | FileCheck -check-prefix=SO %s
-# REQUIRES: mips
-
# DIS: __start:
# DIS-NEXT: 20000: 24 62 80 20 addiu $2, $3, -32736
# DIS-NEXT: 20004: 24 62 80 18 addiu $2, $3, -32744
+# REQUIRES: mips
# Check that GOT entries accessed via 16-bit indexing are allocated
# in the beginning of the GOT.
# RUN: ld.lld %t.o -o %t.exe
# RUN: llvm-objdump -d -s -t %t.exe | FileCheck %s
-# REQUIRES: mips
-
# CHECK: Disassembly of section .text:
# CHECK-NEXT: __start:
# CHECK-NEXT: 20000: 3c 02 00 00 lui $2, 0
-# Having an R_MIPS_64 relocation in eh_frame would previously crash LLD
# REQUIRES: mips
+# Having an R_MIPS_64 relocation in eh_frame would previously crash LLD
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-freebsd %s -o %t.o
# RUN: llvm-readobj -r %t.o | FileCheck %s -check-prefix OBJ
# RUN: ld.lld --eh-frame-hdr -shared -z notext -o %t.so %t.o
+# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
# RUN: not ld.lld %t -o %t2
# RUN: ld.lld %t --noinhibit-exec -o %t2
# RUN: llvm-objdump -d %t2 | FileCheck %s
# RUN: llvm-readobj -r %t2 | FileCheck %s --check-prefix=RELOC
-# REQUIRES: x86
# CHECK: Disassembly of section .text:
# CHECK-NEXT: _start
+# REQUIRES: ppc
# RUN: llvm-mc -filetype=obj -triple=powerpc-unknown-freebsd %s -o %t
# RUN: ld.lld %t -o %t2
# RUN: llvm-objdump -d %t2 | FileCheck %s
-# REQUIRES: ppc
.section .R_PPC_ADDR16_HA,"ax",@progbits
.globl _start
+# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
# RUN: ld.lld %t -o %t2
# RUN: llvm-readobj -sections -program-headers %t2 | FileCheck %s
-# REQUIRES: x86
# Check that different output sections with the same flags are merged into a
# single Read/Write PT_LOAD.
-# Extracting the tar archive can get over the path limit on windows.
# REQUIRES: shell
+# Extracting the tar archive can get over the path limit on windows.
# RUN: rm -rf %t.dir
# RUN: mkdir -p %t.dir
+# REQUIRES: shell
# REQUIRES: x86
# Extracting the tar archive can get over the path limit on windows.
-# REQUIRES: shell
# RUN: rm -rf %t.dir
# RUN: mkdir -p %t.dir/build1
+# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t1.o
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/resolution-end.s -o %t2.o
# RUN: ld.lld -shared -o %t2.so %t2.o
# RUN: ld.lld --hash-style=sysv %t1.o %t2.so -o %t
# RUN: llvm-readobj -t -s -section-data %t | FileCheck %s
-# REQUIRES: x86
# Test that we resolve _end to the this executable.
+# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
# RUN: ld.lld %t -o %tout
# RUN: llvm-readobj -sections %tout | FileCheck %s
-# REQUIRES: x86
# Check that sections are laid out in the correct order.
+# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
# RUN: ld.lld %t -o %tout
# RUN: llvm-objdump --section-headers %tout | FileCheck %s
-# REQUIRES: x86
.global _start
.text
+# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \
# RUN: %p/Inputs/abs.s -o %tabs.o
# RUN: %p/Inputs/shared.s -o %tshared.o
# RUN: rm -f %tar.a
# RUN: llvm-ar rcs %tar.a %tabs.o %tshared.o
-# REQUIRES: x86
# Symbols from the archive are not in if not needed
# RUN: ld.lld -o %t1 %t.o %tar.a