forked from OSchip/llvm-project
parent
cbf43f0b7b
commit
227cb6baef
|
@ -72,7 +72,6 @@ struct VersionDefinition {
|
|||
// and such fields have the same name as the corresponding options.
|
||||
// Most fields are initialized by the driver.
|
||||
struct Configuration {
|
||||
InputFile *FirstElf = nullptr;
|
||||
uint8_t OSABI = 0;
|
||||
llvm::CachePruningPolicy ThinLTOCachePolicy;
|
||||
llvm::StringMap<uint64_t> SectionStartMap;
|
||||
|
|
|
@ -31,6 +31,14 @@ using namespace lld::elf;
|
|||
|
||||
SymbolTable *elf::Symtab;
|
||||
|
||||
static InputFile *getFirstElf() {
|
||||
if (!ObjectFiles.empty())
|
||||
return ObjectFiles[0];
|
||||
if (!SharedFiles.empty())
|
||||
return SharedFiles[0];
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// All input object files must be for the same architecture
|
||||
// (e.g. it does not make sense to link x86 object files with
|
||||
// MIPS object files.) This function checks for that error.
|
||||
|
@ -48,15 +56,12 @@ template <class ELFT> static bool isCompatible(InputFile *F) {
|
|||
if (!Config->Emulation.empty())
|
||||
error(toString(F) + " is incompatible with " + Config->Emulation);
|
||||
else
|
||||
error(toString(F) + " is incompatible with " + toString(Config->FirstElf));
|
||||
error(toString(F) + " is incompatible with " + toString(getFirstElf()));
|
||||
return false;
|
||||
}
|
||||
|
||||
// Add symbols in File to the symbol table.
|
||||
template <class ELFT> void SymbolTable::addFile(InputFile *File) {
|
||||
if (!Config->FirstElf && isa<ELFFileBase<ELFT>>(File))
|
||||
Config->FirstElf = File;
|
||||
|
||||
if (!isCompatible<ELFT>(File))
|
||||
return;
|
||||
|
||||
|
|
Loading…
Reference in New Issue