aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dimitry@andric.com>2021-05-04 16:58:54 +0200
committerDimitry Andric <dimitry@andric.com>2021-05-04 18:16:09 +0200
commit7e83a7f1fdfcc2edde61f0a535f9d7a56f531db9 (patch)
treee8a38d6550ef2c740cea5eeded5c931e4200466d /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent5285748c2c764c1d7fb3f882ba9f11ed79f676a1 (diff)
downloadllvm-7e83a7f1fdfcc2edde61f0a535f9d7a56f531db9.zip
llvm-7e83a7f1fdfcc2edde61f0a535f9d7a56f531db9.tar.gz
llvm-7e83a7f1fdfcc2edde61f0a535f9d7a56f531db9.tar.bz2
Reland "[MC][ELF] Work around R_MIPS_LO16 relocation handling problem"
This fixes PR49821, and avoids "ld.lld: error: test.o:(.rodata.str1.1): offset is outside the section" errors when linking MIPS objects with negative R_MIPS_LO16 implicit addends. ld.lld handles R_MIPS_HI16/R_MIPS_LO16 separately, not as a whole, so it doesn't know that an R_MIPS_HI16 with implicit addend 1 and an R_MIPS_LO16 with implicit addend -32768 represents 32768, which is in range of a MergeInputSection. We could introduce a new RelExpr member (like R_RISCV_PC_INDIRECT for R_RISCV_PCREL_HI20 / R_RISCV_PCREL_LO12) but the complexity is unnecessary given that GNU as keeps the original symbol for this case as well. Adds a new test case for PR49821, and also updates two other test cases that are affected by this change. Reviewed By: atanasyan, MaskRay Differential Revision: https://reviews.llvm.org/D101773
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions