summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-06-14 14:09:15 +0000
committerFangrui Song <maskray@google.com>2019-06-14 14:09:15 +0000
commite05ca381010d24e222027a9a985c7ce902f13671 (patch)
tree1f4d935421b6ad535d9f4562b1482c10751e8f00 /lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp
parenta59bc6e5890ad63940a22976c9f16687c3e4ce8c (diff)
downloadbcm5719-llvm-e05ca381010d24e222027a9a985c7ce902f13671.tar.gz
bcm5719-llvm-e05ca381010d24e222027a9a985c7ce902f13671.zip
[ELF] Don't emit dynamic relocations with weak undef in writable sections
In processRelocAux(), our handling of 1) link-time constant and 2) weak undef is the same, so put them together to simplify the logic. This moves the weak undef code around. The result is that: in a writable section (or -z notext), we will no longer emit dynamic relocations for weak undefined symbols. The new behavior seems to match GNU linkers, and improves consistency with the case of a readonly section. The condition `!Config->Shared` was there probably because it is common for a -shared link not to specify full dependencies. Keep it now but we may revisit the decision in the future. gABI says: > The behavior of weak symbols in areas not specified by this document is > implementation defined. Weak symbols are intended primarily for use in > system software. Applications using weak symbols are unreliable since > changes in the runtime environment might cause the execution to fail. Reviewed By: ruiu Differential Revision: https://reviews.llvm.org/D63003 llvm-svn: 363399
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud