1
Fork 0

Changes to LLVM ExecutionEngine wrapper

* Removes `RustJITMemoryManager` from public API.
  This was really sort of an implementation detail to begin with.
* `__morestack` is linked to C++ wrapper code and this pointer
  is used when resolving the symbol for `ExecutionEngine` code.
* `__morestack_addr` is also resolved for `ExecutionEngine` code.
  This function is sometimes referenced in LLVM-generated code,
  but was not able to be resolved on Mac OS systems.
* Added Windows support to `ExecutionEngine` API.
* Added a test for basic `ExecutionEngine` functionality.
This commit is contained in:
Murarth 2015-05-19 16:00:59 -07:00
parent aca207a65c
commit 021e48326d
5 changed files with 293 additions and 30 deletions

View file

@ -51,14 +51,6 @@
#include "llvm/IR/DIBuilder.h"
#include "llvm/Linker/Linker.h"
// Used by RustMCJITMemoryManager::getPointerToNamedFunction()
// to get around glibc issues. See the function for more information.
#ifdef __linux__
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#endif
void LLVMRustSetLastError(const char*);
typedef struct OpaqueRustString *RustStringRef;