summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/StackMaps.cpp
diff options
context:
space:
mode:
authorRafael Auler <rafaelauler@gmail.com>2014-10-08 22:53:49 +0000
committerRafael Auler <rafaelauler@gmail.com>2014-10-08 22:53:49 +0000
commit7a18a385f05802333fcd0df4ad228bcf47a13b22 (patch)
tree54bc5acdb5d8252a8693aa69869a6f6534db7662 /llvm/lib/CodeGen/StackMaps.cpp
parentf4c1242bd9759bd2371491ad010e8f68f90c81f9 (diff)
downloadbcm5719-llvm-7a18a385f05802333fcd0df4ad228bcf47a13b22.tar.gz
bcm5719-llvm-7a18a385f05802333fcd0df4ad228bcf47a13b22.zip
[ELF] Only mark as DT_NEEDED libs that are strictly necessary
Enhances the creation of an ELF dynamic executable by avoiding recording unnecessary shared libraries as NEEDED to load a program. To do this, we must keep track of not only symbols that were referenced but also of COPY relocations, which steal the symbol from a shared library but does not store from which lib this symbol came from. To fix this, this commit changes ObjectSymbol to store the original library from which this symbol came. With this information, we are able to build a list of the exact shared libraries that must be marked as DT_NEEDED, instead of blindly marking all shared libraries as needed. This logic originally came from the MIPS backend with some adaptation. Reviewers: atanasyan, shankar.easwaran http://reviews.llvm.org/D5574 llvm-svn: 219353
Diffstat (limited to 'llvm/lib/CodeGen/StackMaps.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud