diff options
author | Andrew Kaylor <andrew.kaylor@intel.com> | 2012-11-15 23:50:01 +0000 |
---|---|---|
committer | Andrew Kaylor <andrew.kaylor@intel.com> | 2012-11-15 23:50:01 +0000 |
commit | a342cb9613d33a50e25800d1d2414bec31249ab6 (patch) | |
tree | 7f0814847e10d3f1ce87575c47321120964f387c /llvm/unittests/ExecutionEngine | |
parent | dcc794906556b5e7fbf407226a725ed13fd8287e (diff) | |
download | bcm5719-llvm-a342cb9613d33a50e25800d1d2414bec31249ab6.tar.gz bcm5719-llvm-a342cb9613d33a50e25800d1d2414bec31249ab6.zip |
Interface changes to allow RuntimeDyld memory managers to set memory permissions after an object has been loaded.
llvm-svn: 168114
Diffstat (limited to 'llvm/unittests/ExecutionEngine')
3 files changed, 8 insertions, 4 deletions
diff --git a/llvm/unittests/ExecutionEngine/JIT/JITTest.cpp b/llvm/unittests/ExecutionEngine/JIT/JITTest.cpp index 59604dfbf5c..6e54449beba 100644 --- a/llvm/unittests/ExecutionEngine/JIT/JITTest.cpp +++ b/llvm/unittests/ExecutionEngine/JIT/JITTest.cpp @@ -118,13 +118,14 @@ public: Base->endFunctionBody(F, FunctionStart, FunctionEnd); } virtual uint8_t *allocateDataSection(uintptr_t Size, unsigned Alignment, - unsigned SectionID) { - return Base->allocateDataSection(Size, Alignment, SectionID); + unsigned SectionID, bool IsReadOnly) { + return Base->allocateDataSection(Size, Alignment, SectionID, IsReadOnly); } virtual uint8_t *allocateCodeSection(uintptr_t Size, unsigned Alignment, unsigned SectionID) { return Base->allocateCodeSection(Size, Alignment, SectionID); } + virtual bool applyPermissions(std::string *ErrMsg) { return false; } virtual uint8_t *allocateSpace(intptr_t Size, unsigned Alignment) { return Base->allocateSpace(Size, Alignment); } diff --git a/llvm/unittests/ExecutionEngine/MCJIT/SectionMemoryManager.cpp b/llvm/unittests/ExecutionEngine/MCJIT/SectionMemoryManager.cpp index d6baf3c9bb8..225106ecab2 100644 --- a/llvm/unittests/ExecutionEngine/MCJIT/SectionMemoryManager.cpp +++ b/llvm/unittests/ExecutionEngine/MCJIT/SectionMemoryManager.cpp @@ -32,7 +32,8 @@ namespace llvm { uint8_t *SectionMemoryManager::allocateDataSection(uintptr_t Size, unsigned Alignment, - unsigned SectionID) { + unsigned SectionID, + bool IsReadOnly) { if (!Alignment) Alignment = 16; // Ensure that enough memory is requested to allow aligning. diff --git a/llvm/unittests/ExecutionEngine/MCJIT/SectionMemoryManager.h b/llvm/unittests/ExecutionEngine/MCJIT/SectionMemoryManager.h index e44217c9063..968ee63ffdf 100644 --- a/llvm/unittests/ExecutionEngine/MCJIT/SectionMemoryManager.h +++ b/llvm/unittests/ExecutionEngine/MCJIT/SectionMemoryManager.h @@ -34,7 +34,9 @@ public: unsigned SectionID); virtual uint8_t *allocateDataSection(uintptr_t Size, unsigned Alignment, - unsigned SectionID); + unsigned SectionID, bool IsReadOnly); + + virtual bool applyPermissions(std::string *ErrMsg) { return false; } virtual void *getPointerToNamedFunction(const std::string &Name, bool AbortOnFailure = true); |