forked from OSchip/llvm-project
ELF2: Use ld.lld2 instead of lld -flavor gnu2.
llvm-svn: 249573
This commit is contained in:
parent
169865ffda
commit
60fe7fcc6b
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t
|
||||
// RUN: not lld -flavor gnu2 -shared %t -o %t2 2>&1 | FileCheck %s
|
||||
// RUN: not ld.lld2 -shared %t -o %t2 2>&1 | FileCheck %s
|
||||
// REQUIRES: aarch64
|
||||
|
||||
.hword sym+65539
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t
|
||||
// RUN: not lld -flavor gnu2 -shared %t -o %t2 2>&1 | FileCheck %s
|
||||
// RUN: not ld.lld2 -shared %t -o %t2 2>&1 | FileCheck %s
|
||||
// REQUIRES: aarch64
|
||||
|
||||
.word sym+99999999999
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t
|
||||
// RUN: lld -flavor gnu2 -shared %t -o %t2
|
||||
// RUN: ld.lld2 -shared %t -o %t2
|
||||
// RUN: llvm-objdump -d %t2 | FileCheck %s
|
||||
// REQUIRES: aarch64
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %t
|
||||
# RUN: lld -flavor gnu2 %t -o %t2
|
||||
# RUN: ld.lld2 %t -o %t2
|
||||
# RUN: llvm-objdump -d %t2 | FileCheck %s
|
||||
# REQUIRES: aarch64
|
||||
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t1
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/allow-multiple-definition.s -o %t2
|
||||
# RUN: not lld -flavor gnu2 %t1 %t2 -o %t3
|
||||
# RUN: lld -flavor gnu2 --allow-multiple-definition %t1 %t2 -o %t3
|
||||
# RUN: lld -flavor gnu2 --allow-multiple-definition %t2 %t1 -o %t4
|
||||
# RUN: not ld.lld2 %t1 %t2 -o %t3
|
||||
# RUN: ld.lld2 --allow-multiple-definition %t1 %t2 -o %t3
|
||||
# RUN: ld.lld2 --allow-multiple-definition %t2 %t1 -o %t4
|
||||
# RUN: llvm-objdump -d %t3 | FileCheck %s
|
||||
# RUN: llvm-objdump -d %t4 | FileCheck -check-prefix=REVERT %s
|
||||
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t1
|
||||
|
||||
# Executable: should link with DSO containing undefined symbols in any case.
|
||||
# RUN: lld -flavor gnu2 %t1 %t.so -o %t2
|
||||
# RUN: lld -flavor gnu2 --no-allow-shlib-undefined %t1 %t.so -o %t2
|
||||
# RUN: lld -flavor gnu2 --allow-shlib-undefined %t1 %t.so -o %t2
|
||||
# RUN: ld.lld2 %t1 %t.so -o %t2
|
||||
# RUN: ld.lld2 --no-allow-shlib-undefined %t1 %t.so -o %t2
|
||||
# RUN: ld.lld2 --allow-shlib-undefined %t1 %t.so -o %t2
|
||||
|
||||
# DSO with undefines:
|
||||
# should link with or without any of these options.
|
||||
|
@ -18,7 +18,7 @@
|
|||
# RUN: lld -shared --no-allow-shlib-undefined -flavor gnu2 %t -o %t.so
|
||||
|
||||
# Executable still should not link when have undefines inside.
|
||||
# RUN: not lld -flavor gnu2 %t -o %t.so
|
||||
# RUN: not ld.lld2 %t -o %t.so
|
||||
|
||||
.globl _start
|
||||
_start:
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %S/Inputs/archive3.s -o %t4
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %S/Inputs/archive4.s -o %t5
|
||||
# RUN: llvm-ar rcs %tar %t2 %t3 %t4
|
||||
# RUN: lld -flavor gnu2 %t %tar %t5 -o %tout
|
||||
# RUN: ld.lld2 %t %tar %t5 -o %tout
|
||||
# RUN: llvm-nm %tout | FileCheck %s
|
||||
# REQUIRES: x86
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
|||
|
||||
# Test that the hitting the first object file after having a lazy symbol for
|
||||
# _start is handled correctly.
|
||||
# RUN: lld -flavor gnu2 %tar %t -o %tout
|
||||
# RUN: ld.lld2 %tar %t -o %tout
|
||||
# RUN: llvm-nm %tout | FileCheck --check-prefix=AR-FIRST %s
|
||||
|
||||
# AR-FIRST: T _start
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %t
|
||||
# RUN: lld -flavor gnu2 %t -o %t2
|
||||
# RUN: ld.lld2 %t -o %t2
|
||||
# RUN: llvm-readobj -file-headers -sections -program-headers -symbols %t2 \
|
||||
# RUN: | FileCheck %s
|
||||
# REQUIRES: aarch64
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Verify that OSABI is set to the correct value.
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %t
|
||||
# RUN: lld -flavor gnu2 %t -o %t2
|
||||
# RUN: ld.lld2 %t -o %t2
|
||||
# RUN: llvm-readobj -file-headers %t2 | FileCheck %s
|
||||
# REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux %s -o %t.o
|
||||
# RUN: lld -flavor gnu2 %t.o -o %t.exe
|
||||
# RUN: ld.lld2 %t.o -o %t.exe
|
||||
# RUN: llvm-readobj -file-headers -sections -program-headers -symbols %t.exe \
|
||||
# RUN: | FileCheck %s
|
||||
|
||||
|
|
|
@ -180,31 +180,31 @@ _start:
|
|||
|
||||
# Test for the response file
|
||||
# RUN: echo " -o %t2" > %t.responsefile
|
||||
# RUN: lld -flavor gnu2 %t @%t.responsefile
|
||||
# RUN: ld.lld2 %t @%t.responsefile
|
||||
# RUN: llvm-readobj -file-headers -sections -program-headers -symbols %t2 \
|
||||
# RUN: | FileCheck %s
|
||||
|
||||
# RUN: not lld -flavor gnu2 %t.foo -o %t2 2>&1 | \
|
||||
# RUN: not ld.lld2 %t.foo -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=MISSING %s
|
||||
# MISSING: cannot open {{.*}}.foo: {{[Nn]}}o such file or directory
|
||||
|
||||
# RUN: not lld -flavor gnu2 -o %t2 2>&1 | \
|
||||
# RUN: not ld.lld2 -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=NO_INPUT %s
|
||||
# NO_INPUT: no input files.
|
||||
|
||||
# RUN: not lld -flavor gnu2 %t.no.such.file -o %t2 2>&1 | \
|
||||
# RUN: not ld.lld2 %t.no.such.file -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=CANNOT_OPEN %s
|
||||
# CANNOT_OPEN: cannot open {{.*}}.no.such.file: {{[Nn]}}o such file or directory
|
||||
|
||||
# RUN: not lld -flavor gnu2 %t -o 2>&1 | FileCheck --check-prefix=NO_O_VAL %s
|
||||
# RUN: not ld.lld2 %t -o 2>&1 | FileCheck --check-prefix=NO_O_VAL %s
|
||||
# NO_O_VAL: missing arg value for "-o", expected 1 argument.
|
||||
|
||||
# RUN: not lld -flavor gnu2 --foo 2>&1 | FileCheck --check-prefix=UNKNOWN %s
|
||||
# RUN: not ld.lld2 --foo 2>&1 | FileCheck --check-prefix=UNKNOWN %s
|
||||
# UNKNOWN: unknown argument: --foo
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: not lld -flavor gnu2 %t %t -o %t2 2>&1 | FileCheck --check-prefix=DUP %s
|
||||
# RUN: not ld.lld2 %t %t -o %t2 2>&1 | FileCheck --check-prefix=DUP %s
|
||||
# DUP: duplicate symbol: _start in {{.*}} and {{.*}}
|
||||
|
||||
# RUN: not lld -flavor gnu2 %t -o %t -m wrong_emul 2>&1 | FileCheck --check-prefix=UNKNOWN_EMUL %s
|
||||
# RUN: not ld.lld2 %t -o %t -m wrong_emul 2>&1 | FileCheck --check-prefix=UNKNOWN_EMUL %s
|
||||
# UNKNOWN_EMUL: Unknown emulation: wrong_emul
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t
|
||||
# RUN: lld -flavor gnu2 %t -o %t2
|
||||
# RUN: ld.lld2 %t -o %t2
|
||||
# RUN: llvm-readobj -file-headers -sections -program-headers %t2 | FileCheck %s
|
||||
# REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=powerpc-unknown-linux %s -o %t
|
||||
# RUN: lld -flavor gnu2 %t -o %t2
|
||||
# RUN: ld.lld2 %t -o %t2
|
||||
# RUN: llvm-readobj -file-headers -sections -program-headers %t2 | FileCheck %s
|
||||
# REQUIRES: ppc
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t
|
||||
# RUN: lld -flavor gnu2 -discard-all %t -o %t2
|
||||
# RUN: ld.lld2 -discard-all %t -o %t2
|
||||
# RUN: llvm-readobj -file-headers -sections -section-data -program-headers %t2 | FileCheck %s
|
||||
# REQUIRES: ppc
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -o %t2
|
||||
// RUN: ld.lld2 %t -o %t2
|
||||
// RUN: llvm-readobj -sections %t2 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/common.s -o %t2
|
||||
// RUN: lld -flavor gnu2 %t %t2 -o %t3
|
||||
// RUN: ld.lld2 %t %t2 -o %t3
|
||||
// RUN: llvm-readobj -t -s %t3 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# RUN: cd %t.dir
|
||||
# RUN: rm -f a.out
|
||||
# RUN: not llvm-readobj a.out > /dev/null 2>&1
|
||||
# RUN: lld -flavor gnu2 %t
|
||||
# RUN: ld.lld2 %t
|
||||
# RUN: llvm-readobj a.out > /dev/null 2>&1
|
||||
|
||||
.globl _start;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux -save-temp-labels %s -o %t
|
||||
// RUN: lld -flavor gnu2 -discard-locals %t -o %t2
|
||||
// RUN: ld.lld2 -discard-locals %t -o %t2
|
||||
// RUN: llvm-readobj -s -sd -t %t2 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux -save-temp-labels %s -o %t
|
||||
// RUN: lld -flavor gnu2 -discard-none -shared %t -o %t2
|
||||
// RUN: ld.lld2 -discard-none -shared %t -o %t2
|
||||
// RUN: llvm-readobj -s -sd -t %t2 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/shared.s -o %t2.o
|
||||
// RUN: lld -flavor gnu2 -shared %t2.o -o %t2.so
|
||||
// RUN: lld -flavor gnu2 %t.o %t2.so -o %t
|
||||
// RUN: ld.lld2 -shared %t2.o -o %t2.so
|
||||
// RUN: ld.lld2 %t.o %t2.so -o %t
|
||||
// RUN: llvm-readobj -r %t | FileCheck %s
|
||||
|
||||
// We used to record the wrong symbol index for this test
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/shared.s -o %t2.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/dynamic-reloc.s -o %t3.o
|
||||
// RUN: lld -flavor gnu2 -shared %t2.o -o %t2.so
|
||||
// RUN: lld -flavor gnu2 %t.o %t3.o %t2.so -o %t
|
||||
// RUN: ld.lld2 -shared %t2.o -o %t2.so
|
||||
// RUN: ld.lld2 %t.o %t3.o %t2.so -o %t
|
||||
// RUN: llvm-readobj -dynamic-table -r --expand-relocs -s %t | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %tx64
|
||||
# RUN: lld -flavor gnu2 -m elf_x86_64 %tx64 -o %t2x64
|
||||
# RUN: ld.lld2 -m elf_x86_64 %tx64 -o %t2x64
|
||||
# RUN: llvm-readobj -file-headers %t2x64 | FileCheck --check-prefix=X86-64 %s
|
||||
# RUN: lld -flavor gnu2 %tx64 -o %t3x64
|
||||
# RUN: ld.lld2 %tx64 -o %t3x64
|
||||
# RUN: llvm-readobj -file-headers %t3x64 | FileCheck --check-prefix=X86-64 %s
|
||||
# X86-64: ElfHeader {
|
||||
# X86-64-NEXT: Ident {
|
||||
|
@ -30,9 +30,9 @@
|
|||
# X86-64-NEXT: }
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %tx86
|
||||
# RUN: lld -flavor gnu2 -m elf_i386 %tx86 -o %t2x86
|
||||
# RUN: ld.lld2 -m elf_i386 %tx86 -o %t2x86
|
||||
# RUN: llvm-readobj -file-headers %t2x86 | FileCheck --check-prefix=X86 %s
|
||||
# RUN: lld -flavor gnu2 %tx86 -o %t3x86
|
||||
# RUN: ld.lld2 %tx86 -o %t3x86
|
||||
# RUN: llvm-readobj -file-headers %t3x86 | FileCheck --check-prefix=X86 %s
|
||||
# X86: ElfHeader {
|
||||
# X86-NEXT: Ident {
|
||||
|
@ -61,9 +61,9 @@
|
|||
# X86-NEXT: }
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %tppc64
|
||||
# RUN: lld -flavor gnu2 -m elf64ppc %tppc64 -o %t2ppc64
|
||||
# RUN: ld.lld2 -m elf64ppc %tppc64 -o %t2ppc64
|
||||
# RUN: llvm-readobj -file-headers %t2ppc64 | FileCheck --check-prefix=PPC64 %s
|
||||
# RUN: lld -flavor gnu2 %tppc64 -o %t3ppc64
|
||||
# RUN: ld.lld2 %tppc64 -o %t3ppc64
|
||||
# RUN: llvm-readobj -file-headers %t3ppc64 | FileCheck --check-prefix=PPC64 %s
|
||||
# PPC64: ElfHeader {
|
||||
# PPC64-NEXT: Ident {
|
||||
|
@ -92,9 +92,9 @@
|
|||
# PPC64-NEXT: }
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=powerpc-unknown-linux %s -o %tppc
|
||||
# RUN: lld -flavor gnu2 -m elf32ppc %tppc -o %t2ppc
|
||||
# RUN: ld.lld2 -m elf32ppc %tppc -o %t2ppc
|
||||
# RUN: llvm-readobj -file-headers %t2ppc | FileCheck --check-prefix=PPC %s
|
||||
# RUN: lld -flavor gnu2 %tppc -o %t3ppc
|
||||
# RUN: ld.lld2 %tppc -o %t3ppc
|
||||
# RUN: llvm-readobj -file-headers %t3ppc | FileCheck --check-prefix=PPC %s
|
||||
# PPC: ElfHeader {
|
||||
# PPC-NEXT: Ident {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t1
|
||||
# RUN: not lld -flavor gnu2 %t1 -o %t2
|
||||
# RUN: lld -flavor gnu2 %t1 -o %t2 -e _end
|
||||
# RUN: not ld.lld2 %t1 -o %t2
|
||||
# RUN: ld.lld2 %t1 -o %t2 -e _end
|
||||
|
||||
.globl _end;
|
||||
_end:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -o %t2
|
||||
// RUN: ld.lld2 %t -o %t2
|
||||
.global _start
|
||||
_start:
|
||||
.long _GLOBAL_OFFSET_TABLE_
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -shared -o %tout.so
|
||||
// RUN: ld.lld2 %t -shared -o %tout.so
|
||||
// RUN: llvm-readobj -dyn-symbols %tout.so | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/shared.s -o %t2.o
|
||||
// RUN: lld -flavor gnu2 -shared %t2.o -o %t2.so
|
||||
// RUN: lld -flavor gnu2 %t.o %t2.so -o %t
|
||||
// RUN: ld.lld2 -shared %t2.o -o %t2.so
|
||||
// RUN: ld.lld2 %t.o %t2.so -o %t
|
||||
// RUN: llvm-readobj -s -r %t | FileCheck %s
|
||||
// RUN: llvm-objdump -d %t | FileCheck --check-prefix=DISASM %s
|
||||
// REQUIRES: x86
|
||||
|
|
|
@ -1,45 +1,45 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %ta.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %tb.o
|
||||
// RUN: lld -flavor gnu2 -shared %tb.o -o %ti686.so
|
||||
// RUN: ld.lld2 -shared %tb.o -o %ti686.so
|
||||
// RUN: llvm-mc -filetype=obj -triple=arm-unknown-linux %s -o %tc.o
|
||||
|
||||
// RUN: not lld -flavor gnu2 %ta.o %tb.o -o %t 2>&1 | \
|
||||
// RUN: not ld.lld2 %ta.o %tb.o -o %t 2>&1 | \
|
||||
// RUN: FileCheck --check-prefix=A-AND-B %s
|
||||
// A-AND-B: b.o is incompatible with {{.*}}a.o
|
||||
|
||||
// RUN: not lld -flavor gnu2 %tb.o %tc.o -o %t 2>&1 | \
|
||||
// RUN: not ld.lld2 %tb.o %tc.o -o %t 2>&1 | \
|
||||
// RUN: FileCheck --check-prefix=B-AND-C %s
|
||||
// B-AND-C: c.o is incompatible with {{.*}}b.o
|
||||
|
||||
// RUN: not lld -flavor gnu2 %ta.o %ti686.so -o %t 2>&1 | \
|
||||
// RUN: not ld.lld2 %ta.o %ti686.so -o %t 2>&1 | \
|
||||
// RUN: FileCheck --check-prefix=A-AND-SO %s
|
||||
// A-AND-SO: i686.so is incompatible with {{.*}}a.o
|
||||
|
||||
// RUN: not lld -flavor gnu2 %tc.o %ti686.so -o %t 2>&1 | \
|
||||
// RUN: not ld.lld2 %tc.o %ti686.so -o %t 2>&1 | \
|
||||
// RUN: FileCheck --check-prefix=C-AND-SO %s
|
||||
// C-AND-SO: i686.so is incompatible with {{.*}}c.o
|
||||
|
||||
// RUN: not lld -flavor gnu2 %ti686.so %tc.o -o %t 2>&1 | \
|
||||
// RUN: not ld.lld2 %ti686.so %tc.o -o %t 2>&1 | \
|
||||
// RUN: FileCheck --check-prefix=SO-AND-C %s
|
||||
// SO-AND-C: c.o is incompatible with {{.*}}i686.so
|
||||
|
||||
// RUN: not lld -flavor gnu2 -m elf64ppc %ta.o -o %t 2>&1 | \
|
||||
// RUN: not ld.lld2 -m elf64ppc %ta.o -o %t 2>&1 | \
|
||||
// RUN: FileCheck --check-prefix=A-ONLY %s
|
||||
// A-ONLY: a.o is incompatible with target architecture
|
||||
|
||||
// RUN: not lld -flavor gnu2 -m elf64ppc %tb.o -o %t 2>&1 | \
|
||||
// RUN: not ld.lld2 -m elf64ppc %tb.o -o %t 2>&1 | \
|
||||
// RUN: FileCheck --check-prefix=B-ONLY %s
|
||||
// B-ONLY: b.o is incompatible with target architecture
|
||||
|
||||
// RUN: not lld -flavor gnu2 -m elf64ppc %tc.o -o %t 2>&1 | \
|
||||
// RUN: not ld.lld2 -m elf64ppc %tc.o -o %t 2>&1 | \
|
||||
// RUN: FileCheck --check-prefix=C-ONLY %s
|
||||
// C-ONLY: c.o is incompatible with target architecture
|
||||
|
||||
// RUN: not lld -flavor gnu2 -m elf_i386 %tc.o %ti686.so -o %t 2>&1 | \
|
||||
// RUN: not ld.lld2 -m elf_i386 %tc.o %ti686.so -o %t 2>&1 | \
|
||||
// RUN: FileCheck --check-prefix=C-AND-SO-I386 %s
|
||||
// C-AND-SO-I386: c.o is incompatible with target architecture
|
||||
|
||||
// RUN: not lld -flavor gnu2 -m elf_i386 %ti686.so %tc.o -o %t 2>&1 | \
|
||||
// RUN: not ld.lld2 -m elf_i386 %ti686.so %tc.o -o %t 2>&1 | \
|
||||
// RUN: FileCheck --check-prefix=SO-AND-C-I386 %s
|
||||
// SO-AND-C-I386: c.o is incompatible with {{.*}}i686.so
|
||||
|
||||
|
|
|
@ -2,30 +2,30 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
|
||||
// Should use "_init" and "_fini" by default when fills dynamic table
|
||||
// RUN: lld -flavor gnu2 -shared %t -o %t2
|
||||
// RUN: ld.lld2 -shared %t -o %t2
|
||||
// RUN: llvm-readobj -dynamic-table %t2 | FileCheck --check-prefix=BYDEF %s
|
||||
// BYDEF: INIT 0x11010
|
||||
// BYDEF: FINI 0x11020
|
||||
|
||||
// -init and -fini override symbols to use
|
||||
// RUN: lld -flavor gnu2 -shared %t -o %t2 -init _foo -fini _bar
|
||||
// RUN: ld.lld2 -shared %t -o %t2 -init _foo -fini _bar
|
||||
// RUN: llvm-readobj -dynamic-table %t2 | FileCheck --check-prefix=OVR %s
|
||||
// OVR: INIT 0x11030
|
||||
// OVR: FINI 0x11040
|
||||
|
||||
// Check aliases as well
|
||||
// RUN: lld -flavor gnu2 -shared %t -o %t2 -init=_foo -fini=_bar
|
||||
// RUN: ld.lld2 -shared %t -o %t2 -init=_foo -fini=_bar
|
||||
// RUN: llvm-readobj -dynamic-table %t2 | FileCheck --check-prefix=OVR %s
|
||||
|
||||
// Should add a dynamic table entry even if a given symbol stay undefined
|
||||
// RUN: lld -flavor gnu2 -shared %t -o %t2 -init=_undef -fini=_undef
|
||||
// RUN: ld.lld2 -shared %t -o %t2 -init=_undef -fini=_undef
|
||||
// RUN: llvm-readobj -dynamic-table %t2 | FileCheck --check-prefix=UNDEF %s
|
||||
// UNDEF: INIT 0x0
|
||||
// UNDEF: FINI 0x0
|
||||
|
||||
// Should not add new entries to the symbol table
|
||||
// and should not require given symbols to be resolved
|
||||
// RUN: lld -flavor gnu2 -shared %t -o %t2 -init=_unknown -fini=_unknown
|
||||
// RUN: ld.lld2 -shared %t -o %t2 -init=_unknown -fini=_unknown
|
||||
// RUN: llvm-readobj -symbols -dynamic-table %t2 | FileCheck --check-prefix=NOENTRY %s
|
||||
// NOENTRY: Symbols [
|
||||
// NOENTRY-NOT: Name: _unknown
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
# RUN: llvm-mc %s -o %t -filetype=obj -triple x86_64-pc-linux
|
||||
|
||||
# RUN: not lld -flavor gnu2 %t %p/Inputs/invalid-data-encoding.a -o %t2 2>&1 | \
|
||||
# RUN: not ld.lld2 %t %p/Inputs/invalid-data-encoding.a -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=INVALID-DATA-ENC %s
|
||||
# INVALID-DATA-ENC: Invalid data encoding: test.o
|
||||
|
||||
# RUN: not lld -flavor gnu2 %t %p/Inputs/invalid-file-class.a -o %t2 2>&1 | \
|
||||
# RUN: not ld.lld2 %t %p/Inputs/invalid-file-class.a -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=INVALID-FILE-CLASS %s
|
||||
# INVALID-FILE-CLASS: Invalid file class: test.o
|
||||
|
||||
# RUN: not lld -flavor gnu2 %p/Inputs/invalid-symtab-sh_info.elf -o %t2 2>&1 | \
|
||||
# RUN: not ld.lld2 %p/Inputs/invalid-symtab-sh_info.elf -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=INVALID-SYMTAB-SHINFO %s
|
||||
# INVALID-SYMTAB-SHINFO: Invalid sh_info in symbol table
|
||||
|
||||
# RUN: not lld -flavor gnu2 %p/Inputs/invalid-binding.elf -o %t2 2>&1 | \
|
||||
# RUN: not ld.lld2 %p/Inputs/invalid-binding.elf -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=INVALID-BINDING %s
|
||||
# INVALID-BINDING: unexpected binding
|
||||
|
||||
# RUN: not lld -flavor gnu2 %p/Inputs/invalid-section-index.elf -o %t2 2>&1 | \
|
||||
# RUN: not ld.lld2 %p/Inputs/invalid-section-index.elf -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=INVALID-SECTION-INDEX %s
|
||||
# INVALID-SECTION-INDEX: Invalid section index
|
||||
|
||||
# RUN: not lld -flavor gnu2 %p/Inputs/invalid-shstrndx.so -o %t2 2>&1 | \
|
||||
# RUN: not ld.lld2 %p/Inputs/invalid-shstrndx.so -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=INVALID-SECTION-INDEX %s
|
||||
|
||||
.long foo
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: yaml2obj -format elf %s -o %t
|
||||
# RUN: not lld -flavor gnu2 %t -o %tout 2>&1 | FileCheck %s
|
||||
# RUN: not ld.lld2 %t -o %tout 2>&1 | FileCheck %s
|
||||
|
||||
FileHeader:
|
||||
Class: ELFCLASS64
|
||||
|
|
|
@ -3,73 +3,73 @@
|
|||
// RUN: %p/Inputs/libsearch-dyn.s -o %tdyn.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \
|
||||
// RUN: %p/Inputs/libsearch-st.s -o %tst.o
|
||||
// RUN: lld -flavor gnu2 -shared %tdyn.o -o %T/libls.so
|
||||
// RUN: ld.lld2 -shared %tdyn.o -o %T/libls.so
|
||||
// RUN: cp -f %T/libls.so %T/libls2.so
|
||||
// RUN: rm -f %T/libls.a
|
||||
// RUN: llvm-ar rcs %T/libls.a %tst.o
|
||||
// REQUIRES: x86
|
||||
|
||||
// Should not link because of undefined symbol _bar
|
||||
// RUN: not lld -flavor gnu2 -o %t3 %t.o 2>&1 \
|
||||
// RUN: not ld.lld2 -o %t3 %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=UNDEFINED %s
|
||||
// UNDEFINED: undefined symbol: _bar
|
||||
|
||||
// Should fail if cannot find specified library (without -L switch)
|
||||
// RUN: not lld -flavor gnu2 -o %t3 %t.o -lls 2>&1 \
|
||||
// RUN: not ld.lld2 -o %t3 %t.o -lls 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=NOLIB %s
|
||||
// NOLIB: Unable to find library -lls
|
||||
|
||||
// Should use explicitly specified static library
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -l:libls.a
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -l:libls.a
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=STATIC %s
|
||||
// STATIC: Symbols [
|
||||
// STATIC: Name: _static
|
||||
// STATIC: ]
|
||||
|
||||
// Should use explicitly specified dynamic library
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -l:libls.so
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -l:libls.so
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=DYNAMIC %s
|
||||
// DYNAMIC: Symbols [
|
||||
// DYNAMIC-NOT: Name: _static
|
||||
// DYNAMIC: ]
|
||||
|
||||
// Should prefer dynamic to static
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -lls
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -lls
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=DYNAMIC %s
|
||||
|
||||
// -L can be placed after -l
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -lls -L%T
|
||||
// RUN: ld.lld2 -o %t3 %t.o -lls -L%T
|
||||
|
||||
// Check long forms as well
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o --library-path=%T --library=ls
|
||||
// RUN: ld.lld2 -o %t3 %t.o --library-path=%T --library=ls
|
||||
|
||||
// Should not search for dynamic libraries if -Bstatic is specified
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -Bstatic -lls
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -Bstatic -lls
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=STATIC %s
|
||||
// RUN: not lld -flavor gnu2 -o %t3 %t.o -L%T -Bstatic -lls2 2>&1 \
|
||||
// RUN: not ld.lld2 -o %t3 %t.o -L%T -Bstatic -lls2 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=NOLIB2 %s
|
||||
// NOLIB2: Unable to find library -lls2
|
||||
|
||||
// -Bdynamic should restore default behaviour
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -Bstatic -Bdynamic -lls
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -Bstatic -Bdynamic -lls
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=DYNAMIC %s
|
||||
|
||||
// -Bstatic and -Bdynamic should affect only libraries which follow them
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -lls -Bstatic -Bdynamic
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -lls -Bstatic -Bdynamic
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=DYNAMIC %s
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -Bstatic -lls -Bdynamic
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -Bstatic -lls -Bdynamic
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=STATIC %s
|
||||
|
||||
// Check aliases as well
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -dn -lls
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -dn -lls
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=STATIC %s
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -non_shared -lls
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -non_shared -lls
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=STATIC %s
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -static -lls
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -static -lls
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=STATIC %s
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -Bstatic -dy -lls
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -Bstatic -dy -lls
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=DYNAMIC %s
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o -L%T -Bstatic -call_shared -lls
|
||||
// RUN: ld.lld2 -o %t3 %t.o -L%T -Bstatic -call_shared -lls
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=DYNAMIC %s
|
||||
|
||||
.globl _start,_bar;
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
|
||||
# RUN: echo "GROUP(" %t ")" > %t.script
|
||||
# RUN: lld -flavor gnu2 -o %t2 %t.script
|
||||
# RUN: ld.lld2 -o %t2 %t.script
|
||||
# RUN: llvm-readobj %t2 > /dev/null
|
||||
|
||||
# RUN: echo "GROUP(" %t.script2 ")" > %t.script1
|
||||
# RUN: echo "GROUP(" %t ")" > %t.script2
|
||||
# RUN: lld -flavor gnu2 -o %t2 %t.script1
|
||||
# RUN: ld.lld2 -o %t2 %t.script1
|
||||
# RUN: llvm-readobj %t2 > /dev/null
|
||||
|
||||
# RUN: echo "OUTPUT_FORMAT(\"elf64-x86-64\") /*/*/ GROUP(" %t ")" > %t.script
|
||||
# RUN: lld -flavor gnu2 -o %t2 %t.script
|
||||
# RUN: ld.lld2 -o %t2 %t.script
|
||||
# RUN: llvm-readobj %t2 > /dev/null
|
||||
|
||||
# RUN: echo "GROUP(AS_NEEDED(" %t "))" > %t.script
|
||||
# RUN: lld -flavor gnu2 -o %t2 %t.script
|
||||
# RUN: ld.lld2 -o %t2 %t.script
|
||||
# RUN: llvm-readobj %t2 > /dev/null
|
||||
|
||||
# RUN: rm -f %t.out
|
||||
# RUN: echo "OUTPUT(" %t.out ")" > %t.script
|
||||
# RUN: lld -flavor gnu2 %t.script %t
|
||||
# RUN: ld.lld2 %t.script %t
|
||||
# RUN: llvm-readobj %t.out > /dev/null
|
||||
|
||||
# RUN: echo "FOO(BAR)" > %t.script
|
||||
# RUN: not lld -flavor gnu2 -o foo %t.script > %t.log 2>&1
|
||||
# RUN: not ld.lld2 -o foo %t.script > %t.log 2>&1
|
||||
# RUN: FileCheck -check-prefix=ERR1 %s < %t.log
|
||||
|
||||
# ERR1: unknown directive: FOO
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Check that local symbols are not inserted into dynamic table.
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -shared -o %t1.so
|
||||
// RUN: ld.lld2 %t -shared -o %t1.so
|
||||
// RUN: llvm-readobj -t -dyn-symbols %t1.so | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/shared.s -o %t2.o
|
||||
// RUN: ld.lld2 -shared %t2.o -o %t2.so
|
||||
// RUN: lld -flavor gnu2 %t.o %t2.so -o %t
|
||||
// RUN: ld.lld2 %t.o %t2.so -o %t
|
||||
// RUN: llvm-readobj -s -r -section-data %t | FileCheck %s
|
||||
// RUN: llvm-objdump -d %t | FileCheck --check-prefix=DISASM %s
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Check that symbol table is correctly populated with local symbols.
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -o %t1
|
||||
// RUN: ld.lld2 %t -o %t1
|
||||
// RUN: llvm-readobj -t -s %t1 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
// CHECK-NEXT: Section: dm (0xFF00)
|
||||
|
||||
|
||||
// RUN: lld -flavor gnu2 %t -o %t2
|
||||
// RUN: ld.lld2 %t -o %t2
|
||||
// RUN: llvm-readobj -t %t2 | FileCheck --check-prefix=LINKED %s
|
||||
|
||||
// Test that _start is in the correct section.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
|
||||
// RUN: lld -flavor gnu2 %t.o -rpath=/somepath -shared --disable-new-dtags -o %t
|
||||
// RUN: lld -flavor gnu2 %t.o -rpath=/somepath -shared --enable-new-dtags -o %t2
|
||||
// RUN: ld.lld2 %t.o -rpath=/somepath -shared --disable-new-dtags -o %t
|
||||
// RUN: ld.lld2 %t.o -rpath=/somepath -shared --enable-new-dtags -o %t2
|
||||
// RUN: llvm-readobj --dynamic-table %t | FileCheck --check-prefix=DISABLE %s
|
||||
// RUN: llvm-readobj --dynamic-table %t2 | FileCheck --check-prefix=ENABLE %s
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: not lld -flavor gnu2 %t -o %t2
|
||||
# RUN: lld -flavor gnu2 %t --noinhibit-exec -o %t2
|
||||
# RUN: not ld.lld2 %t -o %t2
|
||||
# RUN: ld.lld2 %t --noinhibit-exec -o %t2
|
||||
# RUN: llvm-objdump -d %t2 | FileCheck %s
|
||||
# REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
|
||||
// RUN: lld -flavor gnu2 %t.o %p/Inputs/no-symtab.o -o %t
|
||||
// RUN: ld.lld2 %t.o %p/Inputs/no-symtab.o -o %t
|
||||
.global _start
|
||||
_start:
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# REQUIRES: x86
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: lld -flavor gnu2 -shared %t -o %t.so
|
||||
# RUN: lld -flavor gnu2 -z now %t %t.so -o %t1
|
||||
# RUN: lld -flavor gnu2 %t %t.so -o %t2
|
||||
# RUN: ld.lld2 -shared %t -o %t.so
|
||||
# RUN: ld.lld2 -z now %t %t.so -o %t1
|
||||
# RUN: ld.lld2 %t %t.so -o %t2
|
||||
# RUN: llvm-readobj -dynamic-table %t1 | FileCheck -check-prefix=NOW %s
|
||||
# RUN: llvm-readobj -dynamic-table %t2 | FileCheck %s
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -o %t2
|
||||
// RUN: ld.lld2 %t -o %t2
|
||||
// RUN: llvm-readobj -t %t2 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %p/Inputs/shared.s -o %t2.o
|
||||
// RUN: lld -flavor gnu2 -shared %t2.o -o %t2.so
|
||||
// RUN: lld -flavor gnu2 %t.o %t2.so -o %t
|
||||
// RUN: ld.lld2 -shared %t2.o -o %t2.so
|
||||
// RUN: ld.lld2 %t.o %t2.so -o %t
|
||||
// RUN: llvm-readobj -s -r %t | FileCheck %s
|
||||
// RUN: llvm-objdump -d %t | FileCheck --check-prefix=DISASM %s
|
||||
// REQUIRES: x86
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/shared.s -o %t2.o
|
||||
// RUN: lld -flavor gnu2 -shared %t2.o -o %t2.so
|
||||
// RUN: lld -flavor gnu2 -shared %t.o %t2.so -o %t
|
||||
// RUN: ld.lld2 -shared %t2.o -o %t2.so
|
||||
// RUN: ld.lld2 -shared %t.o %t2.so -o %t
|
||||
// RUN: llvm-readobj -s -r %t | FileCheck %s
|
||||
// RUN: llvm-objdump -d %t | FileCheck --check-prefix=DISASM %s
|
||||
// REQUIRES: x86
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/shared.s -o %t2
|
||||
// RUN: lld -flavor gnu2 %t2 -o %t2.so -shared
|
||||
// RUN: lld -flavor gnu2 %t %t2.so -o %t2
|
||||
// RUN: ld.lld2 %t2 -o %t2.so -shared
|
||||
// RUN: ld.lld2 %t %t2.so -o %t2
|
||||
// RUN: llvm-readobj -r -symbols -sections -dynamic-table %t2 | FileCheck %s
|
||||
// RUN: llvm-objdump -d %t2 | FileCheck --check-prefix=DISASM %s
|
||||
// REQUIRES: x86
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -o %t2
|
||||
// RUN: ld.lld2 %t -o %t2
|
||||
// RUN: llvm-objdump -d %t2 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: lld -flavor gnu2 %t -o %t2
|
||||
# RUN: ld.lld2 %t -o %t2
|
||||
# RUN: llvm-readobj -sections -program-headers %t2 | FileCheck %s
|
||||
# REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: not lld -flavor gnu2 %t -o %t2 2>&1 | FileCheck %s
|
||||
// RUN: not ld.lld2 %t -o %t2 2>&1 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
.global _start
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %S/Inputs/abs.s -o %tabs
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %tabs %t -o %tout
|
||||
// RUN: ld.lld2 %tabs %t -o %tout
|
||||
// RUN: llvm-objdump -d %tout | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -o %tout
|
||||
// RUN: ld.lld2 %t -o %tout
|
||||
// RUN: llvm-objdump -t -d %tout | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %S/Inputs/abs.s -o %tabs
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: not lld -flavor gnu2 %tabs %t -o %t2 2>&1 | FileCheck %s
|
||||
// RUN: not ld.lld2 %tabs %t -o %t2 2>&1 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
.global _start
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=i686-pc-linux %s -o %t
|
||||
// RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %p/Inputs/shared.s -o %t2.o
|
||||
// RUN: lld -flavor gnu2 -shared %t2.o -o %t2.so
|
||||
// RUN: lld -flavor gnu2 %t %t2.so -o %t2
|
||||
// RUN: ld.lld2 -shared %t2.o -o %t2.so
|
||||
// RUN: ld.lld2 %t %t2.so -o %t2
|
||||
// RUN: llvm-readobj -s %t2 | FileCheck --check-prefix=ADDR %s
|
||||
// RUN: llvm-objdump -d %t2 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Test that relocation of local symbols is working.
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -o %t2
|
||||
// RUN: ld.lld2 %t -o %t2
|
||||
// RUN: llvm-objdump -s -d %t2 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -o %tout
|
||||
// RUN: ld.lld2 %t -o %tout
|
||||
// RUN: llvm-readobj -sections %tout | FileCheck %s
|
||||
// RUN: llvm-objdump -d %tout | FileCheck %s --check-prefix DISASM
|
||||
// REQUIRES: x86
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/shared.s -o %t2
|
||||
// RUN: lld -flavor gnu2 %t2 -o %t2.so -shared
|
||||
// RUN: lld -flavor gnu2 %t %t2.so -o %t3
|
||||
// RUN: ld.lld2 %t2 -o %t2.so -shared
|
||||
// RUN: ld.lld2 %t %t2.so -o %t3
|
||||
// RUN: llvm-readobj -s %t3 | FileCheck --check-prefix=SEC %s
|
||||
// RUN: llvm-objdump -s -d %t3 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/resolution.s -o %t2
|
||||
// RUN: lld -flavor gnu2 -discard-all %t %t2 -o %t3
|
||||
// RUN: ld.lld2 -discard-all %t %t2 -o %t3
|
||||
// RUN: llvm-readobj -t %t3 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: yaml2obj -format elf %s -o %t
|
||||
# RUN: lld -flavor gnu2 %t -o %tout
|
||||
# RUN: ld.lld2 %t -o %tout
|
||||
|
||||
# Verify that lld can handle sections with an alignment of zero.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: lld -flavor gnu2 %t -o %tout
|
||||
# RUN: ld.lld2 %t -o %tout
|
||||
# RUN: llvm-readobj -sections %tout | FileCheck %s
|
||||
# REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %p/Inputs/shared.s -o %t2.o
|
||||
// RUN: lld -flavor gnu2 -shared %t2.o -o %t2.so
|
||||
// RUN: lld -flavor gnu2 -dynamic-linker /lib64/ld64.so.1 -rpath foo -rpath bar --export-dynamic %t.o %t2.so -o %t
|
||||
// RUN: ld.lld2 -shared %t2.o -o %t2.so
|
||||
// RUN: ld.lld2 -dynamic-linker /lib64/ld64.so.1 -rpath foo -rpath bar --export-dynamic %t.o %t2.so -o %t
|
||||
// RUN: llvm-readobj --dynamic-table -s %t | FileCheck %s
|
||||
// REQUIRES: ppc
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %p/Inputs/shared.s -o %t2.o
|
||||
// RUN: lld -flavor gnu2 -shared %t2.o -o %t2.so
|
||||
// RUN: ld.lld2 -shared %t2.o -o %t2.so
|
||||
// RUN: llvm-readobj -s %t2.so | FileCheck --check-prefix=SO %s
|
||||
// RUN: lld -flavor gnu2 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -rpath foo -rpath bar --export-dynamic %t.o %t2.so -o %t
|
||||
// RUN: ld.lld2 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -rpath foo -rpath bar --export-dynamic %t.o %t2.so -o %t
|
||||
// RUN: llvm-readobj --program-headers --dynamic-table -t -s -dyn-symbols -section-data -hash-table %t | FileCheck %s
|
||||
// RUN: lld -flavor gnu2 %t.o %t2.so %t2.so -o %t2
|
||||
// RUN: ld.lld2 %t.o %t2.so %t2.so -o %t2
|
||||
// RUN: llvm-readobj -dyn-symbols %t2 | FileCheck --check-prefix=DONT_EXPORT %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
|
||||
// RUN: lld -flavor gnu2 %t.o -shared -soname=bar -o %t.so
|
||||
// RUN: lld -flavor gnu2 %t.o -shared -soname=bar -o %t2.so
|
||||
// RUN: lld -flavor gnu2 %t.o %t.so %t2.so -o %t
|
||||
// RUN: ld.lld2 %t.o -shared -soname=bar -o %t.so
|
||||
// RUN: ld.lld2 %t.o -shared -soname=bar -o %t2.so
|
||||
// RUN: ld.lld2 %t.o %t.so %t2.so -o %t
|
||||
// RUN: llvm-readobj --dynamic-table %t | FileCheck %s
|
||||
|
||||
// CHECK: 0x0000000000000001 NEEDED SharedLibrary (bar)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
|
||||
// RUN: lld -flavor gnu2 %t.o -shared -soname=foo.so -o %t
|
||||
// RUN: ld.lld2 %t.o -shared -soname=foo.so -o %t
|
||||
// RUN: llvm-readobj --dynamic-table %t | FileCheck %s
|
||||
|
||||
// CHECK: 0x000000000000000E SONAME LibrarySoname (foo.so)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -o %t2
|
||||
// RUN: ld.lld2 %t -o %t2
|
||||
// RUN: llvm-readobj -sections -section-data %t2 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
// RUN: lld -flavor gnu2 %t -o %t2
|
||||
// RUN: ld.lld2 %t -o %t2
|
||||
// RUN: llvm-readobj -symbols -sections %t2 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -7,30 +7,30 @@
|
|||
// REQUIRES: x86
|
||||
|
||||
// Should not link because of undefined symbol _bar
|
||||
// RUN: not lld -flavor gnu2 -o %t/r %t/m.o 2>&1 \
|
||||
// RUN: not ld.lld2 -o %t/r %t/m.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=UNDEFINED %s
|
||||
// UNDEFINED: undefined symbol: _bar
|
||||
|
||||
// We need to be sure that there is no suitable library in the /lib directory
|
||||
// RUN: not lld -flavor gnu2 -o %t/r %t/m.o -L/lib -l:libls.a 2>&1 \
|
||||
// RUN: not ld.lld2 -o %t/r %t/m.o -L/lib -l:libls.a 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=NOLIB %s
|
||||
// NOLIB: Unable to find library -l:libls.a
|
||||
|
||||
// Should just remove the '=' symbol if --sysroot is not specified.
|
||||
// Case 1: relative path
|
||||
// RUN: cd %t && lld -flavor gnu2 -o %t/r %t/m.o -L=lib -l:libls.a
|
||||
// RUN: cd %t && ld.lld2 -o %t/r %t/m.o -L=lib -l:libls.a
|
||||
// Case 2: absolute path
|
||||
// RUN: cd %p && lld -flavor gnu2 -o %t/r %t/m.o -L=%t/lib -l:libls.a
|
||||
// RUN: cd %p && ld.lld2 -o %t/r %t/m.o -L=%t/lib -l:libls.a
|
||||
|
||||
// RUN: cd %p
|
||||
|
||||
// Should substitute SysRoot if specified
|
||||
// RUN: lld -flavor gnu2 -o %t/r %t/m.o --sysroot=%t -L=lib -l:libls.a
|
||||
// RUN: lld -flavor gnu2 -o %t/r %t/m.o --sysroot=%t -L=/lib -l:libls.a
|
||||
// RUN: ld.lld2 -o %t/r %t/m.o --sysroot=%t -L=lib -l:libls.a
|
||||
// RUN: ld.lld2 -o %t/r %t/m.o --sysroot=%t -L=/lib -l:libls.a
|
||||
|
||||
// Should not substitute SysRoot if the directory name does not start with '='
|
||||
// RUN: not lld -flavor gnu2 -o %t/r %r/m.o --sysroot=%t -Llib -l:libls.a
|
||||
// RUN: not lld -flavor gnu2 -o %t/r %r/m.o --sysroot=%t -L/lib -l:libls.a
|
||||
// RUN: not ld.lld2 -o %t/r %r/m.o --sysroot=%t -Llib -l:libls.a
|
||||
// RUN: not ld.lld2 -o %t/r %r/m.o --sysroot=%t -L/lib -l:libls.a
|
||||
|
||||
.globl _start,_bar;
|
||||
_start:
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
// 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/shared.s -o %tso
|
||||
// RUN: lld -flavor gnu2 -static %t -o %tout
|
||||
// RUN: lld -flavor gnu2 %t -o %tout
|
||||
// RUN: lld -flavor gnu2 -shared %tso -o %tshared
|
||||
// RUN: not lld -flavor gnu2 -static %t %tshared -o %tout
|
||||
// RUN: ld.lld2 -static %t -o %tout
|
||||
// RUN: ld.lld2 %t -o %tout
|
||||
// RUN: ld.lld2 -shared %tso -o %tshared
|
||||
// RUN: not ld.lld2 -static %t %tshared -o %tout
|
||||
// REQUIRES: x86
|
||||
|
||||
.global _start
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: not lld -flavor gnu2 %t -o %t2 2>&1 | FileCheck %s
|
||||
# RUN: not ld.lld2 %t -o %t2 2>&1 | FileCheck %s
|
||||
# CHECK: undefined symbol: _start
|
||||
# REQUIRES: x86
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: not lld -flavor gnu2 %t -o %t2 2>&1 | FileCheck %s
|
||||
# RUN: not ld.lld2 %t -o %t2 2>&1 | FileCheck %s
|
||||
# CHECK: undefined symbol: foo in {{.*}}
|
||||
# REQUIRES: x86
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
# REQUIRES: x86
|
||||
|
||||
# Symbols from the archive are not in if not needed
|
||||
# RUN: lld -flavor gnu2 -o %t1 %t.o %tar.a
|
||||
# RUN: ld.lld2 -o %t1 %t.o %tar.a
|
||||
# RUN: llvm-readobj --symbols %t1 | FileCheck --check-prefix=NO-UNDEFINED %s
|
||||
# NO-UNDEFINED: Symbols [
|
||||
# NO-UNDEFINED-NOT: Name: abs
|
||||
|
@ -19,7 +19,7 @@
|
|||
|
||||
# Symbols from the archive are in if needed, but only from the
|
||||
# containing object file
|
||||
# RUN: lld -flavor gnu2 -o %t2 %t.o %tar.a -u bar
|
||||
# RUN: ld.lld2 -o %t2 %t.o %tar.a -u bar
|
||||
# RUN: llvm-readobj --symbols %t2 | FileCheck --check-prefix=ONE-UNDEFINED %s
|
||||
# ONE-UNDEFINED: Symbols [
|
||||
# ONE-UNDEFINED-NOT: Name: abs
|
||||
|
@ -29,7 +29,7 @@
|
|||
# ONE-UNDEFINED: ]
|
||||
|
||||
# Use the option couple of times, both short and long forms
|
||||
# RUN: lld -flavor gnu2 -o %t3 %t.o %tar.a -u bar --undefined=abs
|
||||
# RUN: ld.lld2 -o %t3 %t.o %tar.a -u bar --undefined=abs
|
||||
# RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TWO-UNDEFINED %s
|
||||
# TWO-UNDEFINED: Symbols [
|
||||
# TWO-UNDEFINED: Name: abs
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
# Added undefined symbol may be left undefined without error, but
|
||||
# shouldn't show up in the dynamic table.
|
||||
# RUN: lld -flavor gnu2 -shared -o %t4 %t.o %tar.a -u unknown
|
||||
# RUN: ld.lld2 -shared -o %t4 %t.o %tar.a -u unknown
|
||||
# RUN: llvm-readobj --dyn-symbols %t4 | \
|
||||
# RUN: FileCheck --check-prefix=UNK-UNDEFINED-SO %s
|
||||
# UNK-UNDEFINED-SO: DynamicSymbols [
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/visibility.s -o %t2
|
||||
// RUN: lld -flavor gnu2 -shared %t %t2 -o %t3
|
||||
// RUN: ld.lld2 -shared %t %t2 -o %t3
|
||||
// RUN: llvm-readobj -t -dyn-symbols %t3 | FileCheck %s
|
||||
// REQUIRES: x86
|
||||
|
||||
|
|
|
@ -7,27 +7,27 @@
|
|||
// RUN: llvm-ar rcs %t.a %ta.o
|
||||
|
||||
// Should not add symbols from the archive by default as they are not required
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o %t.a
|
||||
// RUN: ld.lld2 -o %t3 %t.o %t.a
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=NOTADDED %s
|
||||
// NOTADDED: Symbols [
|
||||
// NOTADDED-NOT: Name: _bar
|
||||
// NOTADDED: ]
|
||||
|
||||
// Should add symbols from the archive if --whole-archive is used
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o --whole-archive %t.a
|
||||
// RUN: ld.lld2 -o %t3 %t.o --whole-archive %t.a
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=ADDED %s
|
||||
// ADDED: Symbols [
|
||||
// ADDED: Name: _bar
|
||||
// ADDED: ]
|
||||
|
||||
// --no-whole-archive should restore default behaviour
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o --whole-archive --no-whole-archive %t.a
|
||||
// RUN: ld.lld2 -o %t3 %t.o --whole-archive --no-whole-archive %t.a
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=NOTADDED %s
|
||||
|
||||
// --whole-archive and --no-whole-archive should affect only archives which follow them
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o %t.a --whole-archive --no-whole-archive
|
||||
// RUN: ld.lld2 -o %t3 %t.o %t.a --whole-archive --no-whole-archive
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=NOTADDED %s
|
||||
// RUN: lld -flavor gnu2 -o %t3 %t.o --whole-archive %t.a --no-whole-archive
|
||||
// RUN: ld.lld2 -o %t3 %t.o --whole-archive %t.a --no-whole-archive
|
||||
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=ADDED %s
|
||||
|
||||
.globl _start;
|
||||
|
|
Loading…
Reference in New Issue