diff options
| author | Shankar Easwaran <shankarke@gmail.com> | 2014-03-31 03:16:37 +0000 |
|---|---|---|
| committer | Shankar Easwaran <shankarke@gmail.com> | 2014-03-31 03:16:37 +0000 |
| commit | 79cfed55fc923b137a1a41702534b6830c4f5851 (patch) | |
| tree | 2517c558ff2a49c338922de8956ab30559ba881a /lld/lib/ReaderWriter/Native/WriterNative.cpp | |
| parent | 82ec13e3d56dc463a0bbd49d5922e3387119ab27 (diff) | |
| download | bcm5719-llvm-79cfed55fc923b137a1a41702534b6830c4f5851.tar.gz bcm5719-llvm-79cfed55fc923b137a1a41702534b6830c4f5851.zip | |
[core] support .gnu.linkonce sections
.gnu.linkonce sections are similar to section groups. They were supported before
section groups existed and provided a way to resolve COMDAT sections using a
different design. There are few implementations that use .gnu.linkonce sections
to store simple floating point constants which doesnot require complex section
group support but need a way to store only one copy of the floating point
constant. .gnu.linkonce based symbol resolution achieves that.
llvm-svn: 205163
Diffstat (limited to 'lld/lib/ReaderWriter/Native/WriterNative.cpp')
| -rw-r--r-- | lld/lib/ReaderWriter/Native/WriterNative.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lld/lib/ReaderWriter/Native/WriterNative.cpp b/lld/lib/ReaderWriter/Native/WriterNative.cpp index 9735783b0a9..c1173380faa 100644 --- a/lld/lib/ReaderWriter/Native/WriterNative.cpp +++ b/lld/lib/ReaderWriter/Native/WriterNative.cpp @@ -41,7 +41,8 @@ public: // We are trying to process all atoms, but the defined() iterator does not // return group children. So, when a group parent is found, we need to // handle each child atom. - if (defAtom->contentType() == DefinedAtom::typeGroupComdat) { + if (defAtom->contentType() == DefinedAtom::typeGroupComdat || + defAtom->contentType() == DefinedAtom::typeGnuLinkOnce) { for (const Reference *r : *defAtom) { if (r->kindNamespace() != lld::Reference::KindNamespace::all) continue; |

