RuntimeDyld: override EH frame registration with trivial version.
authorTim Northover <tnorthover@apple.com>
Wed, 3 Jun 2015 18:26:52 +0000 (18:26 +0000)
committerTim Northover <tnorthover@apple.com>
Wed, 3 Jun 2015 18:26:52 +0000 (18:26 +0000)
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238951 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-rtdyld/llvm-rtdyld.cpp

index bef6a1a044e3ec9c3a326ab65593f1558bf9076f..f857b2ef9735fd2b53ce5bdfc2e4e2a76599e637 100644 (file)
@@ -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,