const InMemoryStruct<macho::SymtabLoadCommand> &SymtabLC);
public:
+ RuntimeDyldImpl() : HasError(false) {}
+
bool loadObject(MemoryBuffer *InputBuffer);
void *getSymbolAddress(StringRef Name) {
SymbolTable[Name] = Address;
}
+ // We've loaded the section; now mark the functions in it as executable.
+ // FIXME: We really should use the JITMemoryManager for this.
+ sys::Memory::setRangeExecutable(Data.base(), Data.size());
+
delete SectionBases;
return false;
}
SymbolTable[Name] = Address;
}
+ // We've loaded the section; now mark the functions in it as executable.
+ // FIXME: We really should use the JITMemoryManager for this.
+ sys::Memory::setRangeExecutable(Data.base(), Data.size());
+
delete SectionBases;
return false;
}
-
-
bool RuntimeDyldImpl::loadObject(MemoryBuffer *InputBuffer) {
// If the linker is in an error state, don't do anything.
if (hasError())
return Dyld->getMemoryBlock();
}
+StringRef RuntimeDyld::getErrorString()
+{
+ return Dyld->getErrorString();
+}
+
} // end namespace llvm