diff options
author | Alex Richardson <Alexander.Richardson@cl.cam.ac.uk> | 2019-11-20 13:19:16 +0000 |
---|---|---|
committer | Alex Richardson <Alexander.Richardson@cl.cam.ac.uk> | 2019-11-20 13:23:26 +0000 |
commit | 5bab291b7bd043104abf1ca7977e8248684cae95 (patch) | |
tree | 9be1b466e634ae1401bcb1af3c4412b407c833c3 /llvm/lib/CodeGen/MachineModuleInfo.cpp | |
parent | 3f91705ca54bc76b50c35f9e0831ab356d653c5c (diff) | |
download | llvm-5bab291b7bd043104abf1ca7977e8248684cae95.zip llvm-5bab291b7bd043104abf1ca7977e8248684cae95.tar.gz llvm-5bab291b7bd043104abf1ca7977e8248684cae95.tar.bz2 |
Ignore R_MIPS_JALR relocations against non-function symbols
Summary:
Current versions of clang would erroneously emit this relocation not only
against functions (loaded from the GOT) but also against data symbols
(e.g. a table of function pointers). LLD was then changing this into a
branch-and-link instruction, causing the program to jump to the data
symbol at run time. I discovered this problem when attempting to boot
MIPS64 FreeBSD after updating the to the latest upstream master.
Reviewers: atanasyan, jrtc27, espindola
Reviewed By: atanasyan
Subscribers: emaste, sdardis, krytarowski, MaskRay, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70406
Diffstat (limited to 'llvm/lib/CodeGen/MachineModuleInfo.cpp')
0 files changed, 0 insertions, 0 deletions