summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2015-06-03 18:26:52 +0000
committerTim Northover <tnorthover@apple.com>2015-06-03 18:26:52 +0000
commit5af339a1a9139d2b9c04445bb7e38db09c15ad48 (patch)
treeff00f6886c0258e65e36f4b9c9588525805f444a /llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
parent1c9e6432487fe9edd8e731865f9b6c18b250b25c (diff)
downloadbcm5719-llvm-5af339a1a9139d2b9c04445bb7e38db09c15ad48.tar.gz
bcm5719-llvm-5af339a1a9139d2b9c04445bb7e38db09c15ad48.zip
RuntimeDyld: override EH frame registration with trivial version.
llvm-rtdyld was relying on the default memory manager's EH frame registration, which is host-dependent rather than target-dependent. As a result, big-endian ELF Mips EH frames were being registered on OS X (and elsewhere). This is a really bad idea. llvm-svn: 238951
Diffstat (limited to 'llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp')
-rw-r--r--llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp b/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
index bef6a1a044e..f857b2ef973 100644
--- a/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
+++ b/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
@@ -139,6 +139,11 @@ public:
// explicit cache flush, otherwise JIT code manipulations (like resolved
// relocations) will get to the data cache but not to the instruction cache.
virtual void invalidateInstructionCache();
+
+ void registerEHFrames(uint8_t *Addr, uint64_t LoadAddr,
+ size_t Size) override {}
+ void deregisterEHFrames(uint8_t *Addr, uint64_t LoadAddr,
+ size_t Size) override {}
};
uint8_t *TrivialMemoryManager::allocateCodeSection(uintptr_t Size,
OpenPOWER on IntegriCloud