summaryrefslogtreecommitdiffstats
path: root/llvm/lib/LineEditor/LineEditor.cpp
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-06-12 07:53:06 +0000
committerFangrui Song <maskray@google.com>2019-06-12 07:53:06 +0000
commit4ce0a519c19cb4e8629213db8baeab5f16df68cf (patch)
tree00bd6f91fd5d41930e378da54efaecd9e2c466da /llvm/lib/LineEditor/LineEditor.cpp
parent6fab7d0ef2391642c4f78c01b9901fad6c8f09b6 (diff)
downloadbcm5719-llvm-4ce0a519c19cb4e8629213db8baeab5f16df68cf.tar.gz
bcm5719-llvm-4ce0a519c19cb4e8629213db8baeab5f16df68cf.zip
[ELF][RISCV] Treat R_RISCV_{ADD,SET,SUB}* as link-time constants
R_RISCV_{ADD,SET,SUB}* are used for local label computation. Add a new RelExpr member R_RISCV_ADD to represent them. R_RISCV_ADD is treated as a link-time constant because otherwise R_RISCV_{ADD,SET,SUB}* are not allowed in -pie/-shared mode. In glibc Scrt1.o, .rela.eh_frame contains such relocations. Because .eh_frame is not writable, we get this error: ld.lld: error: can't create dynamic relocation R_RISCV_ADD32 against symbol: .L0 in readonly segment; recompil object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output >>> defined in ..../riscv64-linux-gnu/lib/Scrt1.o With D63076 and this patch, I can run -pie/-shared programs linked against glibc. Note llvm-mc cannot currently produce R_RISCV_SET* so they are not tested. Reviewed By: ruiu Differential Revision: https://reviews.llvm.org/D63183 llvm-svn: 363128
Diffstat (limited to 'llvm/lib/LineEditor/LineEditor.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud