inverse the logic in code inclusion

instead of enumerate the (long) list of platforms to exclude, use only
the short list of platforms to include.

should fixes __morestack symbol problem under openbsd
This commit is contained in:
Sébastien Marie 2015-06-11 08:12:07 +02:00
parent c85f307369
commit b804c241b3

View File

@ -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<uint64_t>(__morestack);
if (Name == "__morestack_addr" || Name == "___morestack_addr")