[lld] r249636 - ELF2: Initialize SyntheticOptional only once.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 7 20:24:25 PDT 2015


I did that in r249645. Thanks!

On Wed, Oct 7, 2015 at 7:34 PM, Rafael EspĂ­ndola <rafael.espindola at gmail.com
> wrote:

> There is also IgnoreUndef if you want.
>
> On 7 October 2015 at 19:46, Rui Ueyama via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
> > Author: ruiu
> > Date: Wed Oct  7 18:46:11 2015
> > New Revision: 249636
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=249636&view=rev
> > Log:
> > ELF2: Initialize SyntheticOptional only once.
> >
> > Modified:
> >     lld/trunk/ELF/Driver.cpp
> >     lld/trunk/ELF/SymbolTable.cpp
> >     lld/trunk/ELF/Symbols.cpp
> >     lld/trunk/ELF/Symbols.h
> >
> > Modified: lld/trunk/ELF/Driver.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=249636&r1=249635&r2=249636&view=diff
> >
> ==============================================================================
> > --- lld/trunk/ELF/Driver.cpp (original)
> > +++ lld/trunk/ELF/Driver.cpp Wed Oct  7 18:46:11 2015
> > @@ -147,6 +147,8 @@ getString(opt::InputArgList &Args, unsig
> >  }
> >
> >  void LinkerDriver::link(ArrayRef<const char *> ArgsArr) {
> > +  initSymbols();
> > +
> >    // Parse command line options.
> >    opt::InputArgList Args = Parser.parse(ArgsArr);
> >
> >
> > Modified: lld/trunk/ELF/SymbolTable.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SymbolTable.cpp?rev=249636&r1=249635&r2=249636&view=diff
> >
> ==============================================================================
> > --- lld/trunk/ELF/SymbolTable.cpp (original)
> > +++ lld/trunk/ELF/SymbolTable.cpp Wed Oct  7 18:46:11 2015
> > @@ -90,7 +90,6 @@ void SymbolTable::addUndefinedSym(String
> >  }
> >
> >  template <class ELFT> void SymbolTable::addUndefinedSym(StringRef Name)
> {
> > -  Undefined<ELFT>::SyntheticOptional.setVisibility(STV_HIDDEN);
> >    resolve<ELFT>(new (Alloc)
> >                      Undefined<ELFT>(Name,
> Undefined<ELFT>::SyntheticOptional));
> >  }
> >
> > Modified: lld/trunk/ELF/Symbols.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Symbols.cpp?rev=249636&r1=249635&r2=249636&view=diff
> >
> ==============================================================================
> > --- lld/trunk/ELF/Symbols.cpp (original)
> > +++ lld/trunk/ELF/Symbols.cpp Wed Oct  7 18:46:11 2015
> > @@ -86,6 +86,13 @@ std::unique_ptr<InputFile> Lazy::getMemb
> >    return createELFFile<ObjectFile>(MBRef);
> >  }
> >
> > +void lld::elf2::initSymbols() {
> > +  Undefined<ELF32LE>::SyntheticOptional.setVisibility(STV_HIDDEN);
> > +  Undefined<ELF32BE>::SyntheticOptional.setVisibility(STV_HIDDEN);
> > +  Undefined<ELF64LE>::SyntheticOptional.setVisibility(STV_HIDDEN);
> > +  Undefined<ELF64BE>::SyntheticOptional.setVisibility(STV_HIDDEN);
> > +}
> > +
> >  template int SymbolBody::compare<ELF32LE>(SymbolBody *Other);
> >  template int SymbolBody::compare<ELF32BE>(SymbolBody *Other);
> >  template int SymbolBody::compare<ELF64LE>(SymbolBody *Other);
> >
> > Modified: lld/trunk/ELF/Symbols.h
> > URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Symbols.h?rev=249636&r1=249635&r2=249636&view=diff
> >
> ==============================================================================
> > --- lld/trunk/ELF/Symbols.h (original)
> > +++ lld/trunk/ELF/Symbols.h Wed Oct  7 18:46:11 2015
> > @@ -25,6 +25,10 @@ class SymbolBody;
> >  template <class ELFT> class ObjectFile;
> >  template <class ELFT> class OutputSection;
> >
> > +// Initializes global objects defined in this file.
> > +// Called at the beginning of main().
> > +void initSymbols();
> > +
> >  // A real symbol object, SymbolBody, is usually accessed indirectly
> >  // through a Symbol. There's always one Symbol for each symbol name.
> >  // The resolver updates SymbolBody pointers as it resolves symbols.
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151007/8a950e16/attachment.html>


More information about the llvm-commits mailing list