diff options
Diffstat (limited to 'devel/llvm60/files/lld/patch-head-r339013.diff')
-rw-r--r-- | devel/llvm60/files/lld/patch-head-r339013.diff | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/devel/llvm60/files/lld/patch-head-r339013.diff b/devel/llvm60/files/lld/patch-head-r339013.diff new file mode 100644 index 000000000000..ba614706a88d --- /dev/null +++ b/devel/llvm60/files/lld/patch-head-r339013.diff @@ -0,0 +1,39 @@ +r339013 | dim | 2018-09-29 16:12:03 +0200 (Sat, 29 Sep 2018) | 24 lines + +Pull in r329557 from upstream lld trunk (by George Rimar): + + [ELF] - Allow LLD to produce file symbols. + + This is for PR36716 and + this enables emitting STT_FILE symbols. + + Output size affect is minor: + lld binary size changes from 52,883,408 to 52,949,400 + clang binary size changes from 83,136,456 to 83,219,600 + + Differential revision: https://reviews.llvm.org/D45261 + +This fixes a regression in lld that made it stop emitting STT_FILE +symbols, which ctfmerge relies upon to uniquify function table entries +that reference STB_LOCAL symbols. Consequently, ctfmerge stopped +emitting entries for static functions into the function table, and +dtrace no longer gets type info for them. + +Approved by: re (kib) +Reported by: markj +PR: 230444 +MFC after: 3 days + +Index: tools/lld/ELF/Writer.cpp +=================================================================== +--- tools/lld/ELF/Writer.cpp (revision 339012) ++++ tools/lld/ELF/Writer.cpp (revision 339013) +@@ -487,7 +487,7 @@ template <class ELFT> void Writer<ELFT>::run() { + + static bool shouldKeepInSymtab(SectionBase *Sec, StringRef SymName, + const Symbol &B) { +- if (B.isFile() || B.isSection()) ++ if (B.isSection()) + return false; + + // If sym references a section in a discarded group, don't keep it. |