diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-02-24 16:15:13 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-02-24 16:15:13 +0000 |
| commit | a4e35f7092a34dba2649753663902dc589f83ea3 (patch) | |
| tree | bc192f5d237bd3b461dfe31a9e25b1afb6814243 | |
| parent | 064dbac212c73659623f389e4f0f2f624030b274 (diff) | |
| download | bcm5719-llvm-a4e35f7092a34dba2649753663902dc589f83ea3.tar.gz bcm5719-llvm-a4e35f7092a34dba2649753663902dc589f83ea3.zip | |
Mark R_AARCH64_PREL32 as relative.
llvm-svn: 261747
| -rw-r--r-- | lld/ELF/Target.cpp | 4 | ||||
| -rw-r--r-- | lld/test/ELF/aarch64-relative.s | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp index a2a609cdd58..ef8ddcc0bca 100644 --- a/lld/ELF/Target.cpp +++ b/lld/ELF/Target.cpp @@ -1209,7 +1209,9 @@ AArch64TargetInfo::AArch64TargetInfo() { PltZeroSize = 32; } -bool AArch64TargetInfo::isRelRelative(uint32_t Type) const { return false; } +bool AArch64TargetInfo::isRelRelative(uint32_t Type) const { + return Type == R_AARCH64_PREL32; +} bool AArch64TargetInfo::isTlsGlobalDynamicRel(unsigned Type) const { return Type == R_AARCH64_TLSDESC_ADR_PAGE21 || diff --git a/lld/test/ELF/aarch64-relative.s b/lld/test/ELF/aarch64-relative.s new file mode 100644 index 00000000000..9ffd6a8704a --- /dev/null +++ b/lld/test/ELF/aarch64-relative.s @@ -0,0 +1,11 @@ +// REQUIRES: aarch64 +// RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %t.o +// RUN: ld.lld %t.o -o %t.so -shared +// RUN: llvm-readobj -r %t.so | FileCheck %s + + .Lfoo: + .rodata + .long .Lfoo - . + +// CHECK: Relocations [ +// CHECK-NEXT: ] |

