mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 21:53:12 +08:00
Don't create a PLT when we optimize out the plt use.
llvm-svn: 265202
This commit is contained in:
@@ -302,7 +302,7 @@ static unsigned handleTlsRelocation(uint32_t Type, SymbolBody &Body,
|
||||
return 1;
|
||||
}
|
||||
if (!Body.isPreemptible())
|
||||
return 1;
|
||||
return 2;
|
||||
if (!Body.isInGot()) {
|
||||
Out<ELFT>::Got->addEntry(Body);
|
||||
Out<ELFT>::RelaDyn->addReloc(
|
||||
|
||||
24
lld/test/ELF/tls-opt-no-plt.s
Normal file
24
lld/test/ELF/tls-opt-no-plt.s
Normal file
@@ -0,0 +1,24 @@
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/tls-opt-gdie.s -o %t2.o
|
||||
// RUN: ld.lld %t2.o -o %t2.so -shared
|
||||
// RUN: ld.lld %t.o %t2.so -o %t.exe
|
||||
// RUN: llvm-readobj -s %t.exe | FileCheck %s
|
||||
|
||||
// CHECK-NOT: .plt
|
||||
|
||||
.global _start
|
||||
_start:
|
||||
data16
|
||||
leaq foo@TLSGD(%rip), %rdi
|
||||
data16
|
||||
data16
|
||||
rex64
|
||||
callq __tls_get_addr@PLT
|
||||
|
||||
|
||||
.type foo,@object
|
||||
.section .tdata,"awT",@progbits
|
||||
.globl foo
|
||||
.align 8
|
||||
foo:
|
||||
.long 42
|
||||
Reference in New Issue
Block a user