diff options
-rw-r--r-- | lld/ELF/Driver.cpp | 8 | ||||
-rw-r--r-- | lld/ELF/Symbols.cpp | 13 | ||||
-rw-r--r-- | lld/ELF/Symbols.h | 3 |
3 files changed, 8 insertions, 16 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 064938abaaa..a010b399f2c 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -315,6 +315,14 @@ void LinkerDriver::createFiles(opt::InputArgList &Args) { error("No input files"); } +template <class ELFT> static void initSymbols() { + ElfSym<ELFT>::Etext.setBinding(STB_GLOBAL); + ElfSym<ELFT>::Edata.setBinding(STB_GLOBAL); + ElfSym<ELFT>::End.setBinding(STB_GLOBAL); + ElfSym<ELFT>::Ignored.setBinding(STB_WEAK); + ElfSym<ELFT>::Ignored.setVisibility(STV_HIDDEN); +} + template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) { initSymbols<ELFT>(); // For LTO diff --git a/lld/ELF/Symbols.cpp b/lld/ELF/Symbols.cpp index f71152011fb..d32bbb061d8 100644 --- a/lld/ELF/Symbols.cpp +++ b/lld/ELF/Symbols.cpp @@ -203,14 +203,6 @@ std::unique_ptr<InputFile> Lazy::getMember() { return createObjectFile(MBRef, File->getName()); } -template <class ELFT> void elf::initSymbols() { - ElfSym<ELFT>::Etext.setBinding(STB_GLOBAL); - ElfSym<ELFT>::Edata.setBinding(STB_GLOBAL); - ElfSym<ELFT>::End.setBinding(STB_GLOBAL); - ElfSym<ELFT>::Ignored.setBinding(STB_WEAK); - ElfSym<ELFT>::Ignored.setVisibility(STV_HIDDEN); -} - // Returns the demangled C++ symbol name for Name. std::string elf::demangle(StringRef Name) { #if !defined(HAVE_CXXABI_H) @@ -276,8 +268,3 @@ template class elf::DefinedSynthetic<ELF32LE>; template class elf::DefinedSynthetic<ELF32BE>; template class elf::DefinedSynthetic<ELF64LE>; template class elf::DefinedSynthetic<ELF64BE>; - -template void elf::initSymbols<ELF32LE>(); -template void elf::initSymbols<ELF32BE>(); -template void elf::initSymbols<ELF64LE>(); -template void elf::initSymbols<ELF64BE>(); diff --git a/lld/ELF/Symbols.h b/lld/ELF/Symbols.h index 33986a820af..fa2fb78aee5 100644 --- a/lld/ELF/Symbols.h +++ b/lld/ELF/Symbols.h @@ -40,9 +40,6 @@ template <class ELFT> class OutputSection; template <class ELFT> class OutputSectionBase; template <class ELFT> class SharedFile; -// Initializes global objects defined in this file. -template <class ELFT> void initSymbols(); - // Returns a demangled C++ symbol name. If Name is not a mangled // name or the system does not provide __cxa_demangle function, // it returns the unmodified string. |