diff options
author | Sean Silva <chisophugis@gmail.com> | 2016-02-04 21:41:07 +0000 |
---|---|---|
committer | Sean Silva <chisophugis@gmail.com> | 2016-02-04 21:41:07 +0000 |
commit | 09247f8955f3cf868cfee2cc54b2b1b9e8f270b3 (patch) | |
tree | a016a8b1cad6b1681490b4b9e0458b16f41f013a /lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py | |
parent | de9857e3c16cb4e8f241b72066b8a8853e441af5 (diff) | |
download | bcm5719-llvm-09247f8955f3cf868cfee2cc54b2b1b9e8f270b3.tar.gz bcm5719-llvm-09247f8955f3cf868cfee2cc54b2b1b9e8f270b3.zip |
Don't push relocation sections onto InputSection<ELFT>::Discarded.RelocSections
Summary:
LLVM3.3 (and earlier) would fail to include a relocation section in
the group that the section it was relocating is in. Object files
affected by this issue have been encountered in the wild when using LLD.
This would result in a siutation like:
Section {
Index: 5
Name: .text._Z3fooIiEvv (6)
Type: SHT_PROGBITS (0x1)
Flags [ (0x206)
SHF_ALLOC (0x2)
SHF_EXECINSTR (0x4)
SHF_GROUP (0x200)
]
Address: 0x0
Offset: 0x48
Size: 5
Link: 0
Info: 0
AddressAlignment: 1
EntrySize: 0
}
Section {
Index: 6
Name: .rela.text._Z3fooIiEvv (1)
Type: SHT_RELA (0x4)
Flags [ (0x0)
]
Address: 0x0
Offset: 0x3F0
Size: 24
Link: 8
Info: 5
AddressAlignment: 8
EntrySize: 24
}
In LLD, during symbol resolution, we discard the section containing the
weak symbol, but this amounts to replacing it with
InputSection<ELFT>::Discarded.
When we later saw the corresponding relocation section, we would then
end up pusing onto InputSection<ELFT>::Discarded.RelocSections, which is
bogus.
Reviewers: ruiu, rafael
Subscribers: llvm-commits, Bigcheese
Differential Revision: http://reviews.llvm.org/D16898
llvm-svn: 259831
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py')
0 files changed, 0 insertions, 0 deletions