summaryrefslogtreecommitdiff
path: root/devel/llvm60/files/lld/patch-head-r339013.diff
diff options
context:
space:
mode:
Diffstat (limited to 'devel/llvm60/files/lld/patch-head-r339013.diff')
-rw-r--r--devel/llvm60/files/lld/patch-head-r339013.diff39
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.