summaryrefslogtreecommitdiffstats
path: root/llvm/examples/ModuleMaker
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-08-22 23:26:10 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-08-22 23:26:10 +0000
commitf7ecb1157226f078264ced1d6d9b2fe5802c8486 (patch)
treed4da186730a5f1869165a39a23d423cd29b6214c /llvm/examples/ModuleMaker
parent4bf437ecd8ccd86d154b16521b8406246aa33e3a (diff)
downloadbcm5719-llvm-f7ecb1157226f078264ced1d6d9b2fe5802c8486.tar.gz
bcm5719-llvm-f7ecb1157226f078264ced1d6d9b2fe5802c8486.zip
Add support for comdats to the gold plugin.
There are two parts to this. First, the plugin needs to tell gold the comdat by setting comdat_key. What gets things a bit more complicated is that gold only seems symbols. In particular, if A is an alias to B, it only sees the symbols A and B. It can then ask us to keep symbol A but drop symbol B. What we have to do instead is to create an internal version of B and make A an alias to that. At some point some of this logic should be moved to lib/Linker so that we don't map a Constant to an internal version just to have lib/Linker map that again to the destination module. The reason for implementing this in tools/gold for now is simplicity. With it in place it should be possible to update clang to use comdats for constructors and destructors on ELF without breaking the LTO bootstrap. Once that is done I intend to come back and improve the interface lib/Linker exposes. llvm-svn: 216302
Diffstat (limited to 'llvm/examples/ModuleMaker')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud