svn commit: r339013 - head/contrib/llvm/tools/lld/ELF

Dimitry Andric dim at FreeBSD.org
Sat Sep 29 14:12:05 UTC 2018


Author: dim
Date: Sat Sep 29 14:12:03 2018
New Revision: 339013
URL: https://svnweb.freebsd.org/changeset/base/339013

Log:
  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

Modified:
  head/contrib/llvm/tools/lld/ELF/Writer.cpp

Modified: head/contrib/llvm/tools/lld/ELF/Writer.cpp
==============================================================================
--- head/contrib/llvm/tools/lld/ELF/Writer.cpp	Sat Sep 29 13:01:23 2018	(r339012)
+++ head/contrib/llvm/tools/lld/ELF/Writer.cpp	Sat Sep 29 14:12:03 2018	(r339013)
@@ -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.


More information about the svn-src-head mailing list