summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC
diff options
context:
space:
mode:
authorPavel Labath <pavel@labath.sk>2019-08-06 10:04:27 +0000
committerPavel Labath <pavel@labath.sk>2019-08-06 10:04:27 +0000
commit1177bc597d5f1bab4f4ed79b2fe88ae1d2461c39 (patch)
tree8c6472e9845bdf790e389f615c9bf76ae2f0b543 /llvm/lib/MC
parentf89c8f20e1e6c3d8db89e53ac367e4ee69a5415d (diff)
downloadbcm5719-llvm-1177bc597d5f1bab4f4ed79b2fe88ae1d2461c39.tar.gz
bcm5719-llvm-1177bc597d5f1bab4f4ed79b2fe88ae1d2461c39.zip
ObjectFileELF: permit thread-local sections with overlapping file addresses
Summary: In an attempt to make file-address-based lookups more predictable, in D55998 we started ignoring sections which would result in file address overlaps. It turns out this was too aggressive because thread-local sections typically will have file addresses which apear to overlap regular data/code. This does not cause a problem at runtime because thread-local sections are loaded into memory using special logic, but it can cause problems for lldb when trying to lookup objects by their file address. This patch changes ObjectFileELF to permit thread-local sections to overlap regular ones by essentially giving them a separate address space. It also makes them more symmetrical to regular sections by creating container sections from PT_TLS segments. Simultaneously, the patch changes the regular file address lookup logic to ignore sections with the thread-specific bit set. I believe this is what the users looking up file addresses would typically expect, as looking up thread-local data generally requires more complex logic (e.g. DWARF has a special opcode for that). Reviewers: clayborg, jingham, MaskRay Subscribers: emaste, aprantl, arichardson, lldb-commits Differential Revision: https://reviews.llvm.org/D65282 llvm-svn: 368010
Diffstat (limited to 'llvm/lib/MC')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud