forked from OSchip/llvm-project
Don't create a PLT when we optimize out the plt use.
llvm-svn: 265202
This commit is contained in:
parent
24ae22c047
commit
cf3b04dab9
|
@ -302,7 +302,7 @@ static unsigned handleTlsRelocation(uint32_t Type, SymbolBody &Body,
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (!Body.isPreemptible())
|
if (!Body.isPreemptible())
|
||||||
return 1;
|
return 2;
|
||||||
if (!Body.isInGot()) {
|
if (!Body.isInGot()) {
|
||||||
Out<ELFT>::Got->addEntry(Body);
|
Out<ELFT>::Got->addEntry(Body);
|
||||||
Out<ELFT>::RelaDyn->addReloc(
|
Out<ELFT>::RelaDyn->addReloc(
|
||||||
|
|
|
@ -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
|
Loading…
Reference in New Issue