Changeset View
Changeset View
Standalone View
Standalone View
lld/ELF/Driver.cpp
Show First 20 Lines • Show All 2,219 Lines • ▼ Show 20 Lines | template <class ELFT> void LinkerDriver::link(opt::InputArgList &args) { | ||||
// For a relocatable output, version scripts don't make sense, and | // For a relocatable output, version scripts don't make sense, and | ||||
// parsing a symbol version string (e.g. dropping "@ver1" from a symbol | // parsing a symbol version string (e.g. dropping "@ver1" from a symbol | ||||
// name "foo@ver1") rather do harm, so we don't call this if -r is given. | // name "foo@ver1") rather do harm, so we don't call this if -r is given. | ||||
if (!config->relocatable) { | if (!config->relocatable) { | ||||
llvm::TimeTraceScope timeScope("Process symbol versions"); | llvm::TimeTraceScope timeScope("Process symbol versions"); | ||||
symtab->scanVersionScript(); | symtab->scanVersionScript(); | ||||
} | } | ||||
// Emit per func/datum sections if target permits. | |||||
config->emitFuncDataSections = target->emitFuncDataSections(); | |||||
// Do link-time optimization if given files are LLVM bitcode files. | // Do link-time optimization if given files are LLVM bitcode files. | ||||
// This compiles bitcode files into real object files. | // This compiles bitcode files into real object files. | ||||
// | // | ||||
// With this the symbol table should be complete. After this, no new names | // With this the symbol table should be complete. After this, no new names | ||||
// except a few linker-synthesized ones will be added to the symbol table. | // except a few linker-synthesized ones will be added to the symbol table. | ||||
compileBitcodeFiles<ELFT>(); | compileBitcodeFiles<ELFT>(); | ||||
// Handle --exclude-libs again because lto.tmp may reference additional | // Handle --exclude-libs again because lto.tmp may reference additional | ||||
▲ Show 20 Lines • Show All 179 Lines • Show Last 20 Lines |