From: Rafael Espindola Date: Wed, 24 Feb 2016 16:37:47 +0000 (+0000) Subject: Create implicit plt entries for R_X86_64_32S. X-Git-Tag: llvmorg-3.9.0-rc1~13363 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b508f520e7711873e002d0679af2988c6e62f431;p=platform%2Fupstream%2Fllvm.git Create implicit plt entries for R_X86_64_32S. llvm-svn: 261749 --- diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp index ef8ddcc..897de8c 100644 --- a/lld/ELF/Target.cpp +++ b/lld/ELF/Target.cpp @@ -718,6 +718,7 @@ TargetInfo::PltNeed X86_64TargetInfo::needsPlt(uint32_t Type, default: return Plt_No; case R_X86_64_32: + case R_X86_64_32S: case R_X86_64_64: case R_X86_64_PC32: // This relocation is defined to have a value of (S + A - P). diff --git a/lld/test/ELF/Inputs/shared.s b/lld/test/ELF/Inputs/shared.s index 1cfebbf..c3c22fe 100644 --- a/lld/test/ELF/Inputs/shared.s +++ b/lld/test/ELF/Inputs/shared.s @@ -2,5 +2,9 @@ .type bar, @function bar: +.global bar2 +.type bar2, @function +bar2: + .global zed zed: diff --git a/lld/test/ELF/relocation.s b/lld/test/ELF/relocation.s index 33b0e23..aa58040 100644 --- a/lld/test/ELF/relocation.s +++ b/lld/test/ELF/relocation.s @@ -14,7 +14,7 @@ // SEC-NEXT: ] // SEC-NEXT: Address: 0x11030 // SEC-NEXT: Offset: 0x1030 -// SEC-NEXT: Size: 32 +// SEC-NEXT: Size: 48 // SEC: Name: .got // SEC-NEXT: Type: SHT_PROGBITS @@ -39,7 +39,7 @@ // SEC-NEXT: ] // SEC-NEXT: Address: 0x13000 // SEC-NEXT: Offset: 0x3000 -// SEC-NEXT: Size: 32 +// SEC-NEXT: Size: 40 // SEC-NEXT: Link: 0 // SEC-NEXT: Info: 0 // SEC-NEXT: AddressAlignment: 8 @@ -98,6 +98,15 @@ R_X86_64_PC32: // CHECK-NEXT: 11017: {{.*}} callq 36 // CHECK-NEXT: 1101c: {{.*}} movl $69696, %eax +.section .R_X86_64_32S_2,"ax",@progbits +.global R_X86_64_32S_2 +R_X86_64_32S_2: + mov bar2, %eax +// plt is at 0x11030. The second plt entry is at 0x11050 == 69712 +// CHECK: Disassembly of section .R_X86_64_32S_2: +// CHECK-NEXT: R_X86_64_32S_2: +// CHECK-NEXT: 11021: {{.*}} movl 69712, %eax + .section .R_X86_64_64,"a",@progbits .global R_X86_64_64 R_X86_64_64: