ELF2: Use ld.lld2 instead of lld -flavor gnu2.

llvm-svn: 249573
This commit is contained in:
Rui Ueyama 2015-10-07 17:31:39 +00:00
parent 169865ffda
commit 60fe7fcc6b
70 changed files with 166 additions and 166 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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:

View File

@ -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_

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 [

View File

@ -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

View File

@ -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;