diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/alpha/process.cc | 2 | ||||
-rw-r--r-- | src/arch/arm/process.cc | 2 | ||||
-rw-r--r-- | src/arch/mips/process.cc | 2 | ||||
-rw-r--r-- | src/arch/power/process.cc | 2 | ||||
-rw-r--r-- | src/arch/riscv/process.cc | 2 | ||||
-rw-r--r-- | src/arch/sparc/process.cc | 2 | ||||
-rw-r--r-- | src/arch/x86/process.cc | 2 | ||||
-rw-r--r-- | src/base/loader/elf_object.cc | 12 | ||||
-rw-r--r-- | src/base/loader/elf_object.hh | 2 |
9 files changed, 14 insertions, 14 deletions
diff --git a/src/arch/alpha/process.cc b/src/arch/alpha/process.cc index 59cbebc1c..e266b92b2 100644 --- a/src/arch/alpha/process.cc +++ b/src/arch/alpha/process.cc @@ -78,6 +78,8 @@ AlphaProcess::argsInit(int intSize, int pageSize) updateBias(); objFile->loadSegments(initVirtMem); + if (objFile->getInterpreter()) + objFile->getInterpreter()->loadSegments(initVirtMem); std::vector<AuxVector<uint64_t>> auxv; diff --git a/src/arch/arm/process.cc b/src/arch/arm/process.cc index f98572690..ff3b92f48 100644 --- a/src/arch/arm/process.cc +++ b/src/arch/arm/process.cc @@ -271,6 +271,8 @@ ArmProcess::argsInit(int pageSize, IntRegIndex spIndex) // load object file into target memory objFile->loadSegments(initVirtMem); + if (objFile->getInterpreter()) + objFile->getInterpreter()->loadSegments(initVirtMem); //Setup the auxilliary vectors. These will already have endian conversion. //Auxilliary vectors are loaded only for elf formatted executables. diff --git a/src/arch/mips/process.cc b/src/arch/mips/process.cc index 1808372d9..4c4b0e414 100644 --- a/src/arch/mips/process.cc +++ b/src/arch/mips/process.cc @@ -94,6 +94,8 @@ MipsProcess::argsInit(int pageSize) // load object file into target memory objFile->loadSegments(initVirtMem); + if (objFile->getInterpreter()) + objFile->getInterpreter()->loadSegments(initVirtMem); std::vector<AuxVector<IntType>> auxv; diff --git a/src/arch/power/process.cc b/src/arch/power/process.cc index b391773ee..89b94b21f 100644 --- a/src/arch/power/process.cc +++ b/src/arch/power/process.cc @@ -100,6 +100,8 @@ PowerProcess::argsInit(int intSize, int pageSize) // load object file into target memory objFile->loadSegments(initVirtMem); + if (objFile->getInterpreter()) + objFile->getInterpreter()->loadSegments(initVirtMem); //Setup the auxilliary vectors. These will already have endian conversion. //Auxilliary vectors are loaded only for elf formatted executables. diff --git a/src/arch/riscv/process.cc b/src/arch/riscv/process.cc index e15197d78..35dde7600 100644 --- a/src/arch/riscv/process.cc +++ b/src/arch/riscv/process.cc @@ -125,6 +125,8 @@ RiscvProcess::argsInit(int pageSize) updateBias(); objFile->loadSegments(initVirtMem); + if (objFile->getInterpreter()) + objFile->getInterpreter()->loadSegments(initVirtMem); ElfObject* elfObject = dynamic_cast<ElfObject*>(objFile); memState->setStackMin(memState->getStackBase()); diff --git a/src/arch/sparc/process.cc b/src/arch/sparc/process.cc index cca61c1be..1c020c6b1 100644 --- a/src/arch/sparc/process.cc +++ b/src/arch/sparc/process.cc @@ -209,6 +209,8 @@ SparcProcess::argsInit(int pageSize) // load object file into target memory objFile->loadSegments(initVirtMem); + if (objFile->getInterpreter()) + objFile->getInterpreter()->loadSegments(initVirtMem); enum hardwareCaps { diff --git a/src/arch/x86/process.cc b/src/arch/x86/process.cc index c743685d0..546474138 100644 --- a/src/arch/x86/process.cc +++ b/src/arch/x86/process.cc @@ -775,6 +775,8 @@ X86Process::argsInit(int pageSize, // load object file into target memory objFile->loadSegments(initVirtMem); + if (objFile->getInterpreter()) + objFile->getInterpreter()->loadSegments(initVirtMem); enum X86CpuFeature { X86_OnboardFPU = 1 << 0, diff --git a/src/base/loader/elf_object.cc b/src/base/loader/elf_object.cc index 4dee7d2c0..4cf20975d 100644 --- a/src/base/loader/elf_object.cc +++ b/src/base/loader/elf_object.cc @@ -464,18 +464,6 @@ ElfObject::loadWeakSymbols(SymbolTable *symtab, Addr base, Addr offset, return loadSomeSymbols(symtab, STB_WEAK, addr_mask, base, offset); } -bool -ElfObject::loadSegments(const PortProxy &mem_proxy) -{ - if (!ObjectFile::loadSegments(mem_proxy)) - return false; - - if (interpreter) - interpreter->loadSegments(mem_proxy); - - return true; -} - void ElfObject::getSections() { diff --git a/src/base/loader/elf_object.hh b/src/base/loader/elf_object.hh index f2af4142a..dbefadd19 100644 --- a/src/base/loader/elf_object.hh +++ b/src/base/loader/elf_object.hh @@ -89,8 +89,6 @@ class ElfObject : public ObjectFile public: virtual ~ElfObject() {} - bool loadSegments(const PortProxy &mem_proxy) override; - virtual bool loadAllSymbols(SymbolTable *symtab, Addr base = 0, Addr offset = 0, Addr addr_mask = maxAddr) override; |