diff --git a/src/rustllvm/ExecutionEngineWrapper.cpp b/src/rustllvm/ExecutionEngineWrapper.cpp index 50551405383..bd4fcc0fc7d 100644 --- a/src/rustllvm/ExecutionEngineWrapper.cpp +++ b/src/rustllvm/ExecutionEngineWrapper.cpp @@ -16,8 +16,8 @@ using namespace llvm; using namespace llvm::sys; using namespace llvm::object; -// libmorestack is not used on Windows -#if !defined(_WIN32) && !defined(__FreeBSD__) && !defined(__DragonFly__) && !defined(__Bitrig__) +// libmorestack is not used on other platforms +#if defined(__linux__) || defined(__APPLE__) extern "C" void __morestack(void); static void* morestack_addr() { @@ -35,7 +35,7 @@ class RustJITMemoryManager : public SectionMemoryManager uint64_t getSymbolAddress(const std::string &Name) override { -#if !defined(_WIN32) && !defined(__FreeBSD__) && !defined(__DragonFly__) && !defined(__Bitrig__) +#if defined(__linux__) || defined(__APPLE__) if (Name == "__morestack" || Name == "___morestack") return reinterpret_cast(__morestack); if (Name == "__morestack_addr" || Name == "___morestack_addr")