Don't create a PLT when we optimize out the plt use.

llvm-svn: 265202
This commit is contained in:
Rafael Espindola 2016-04-01 23:36:56 +00:00
parent 24ae22c047
commit cf3b04dab9
2 changed files with 25 additions and 1 deletions

View File

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

View 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