diff --git a/src/virtual_memory.cpp b/src/virtual_memory.cpp index c0c9277b..9bf882a1 100644 --- a/src/virtual_memory.cpp +++ b/src/virtual_memory.cpp @@ -37,7 +37,11 @@ const std::size_t foonathan::memory::virtual_memory_page_size = get_page_size(); void* foonathan::memory::virtual_memory_reserve(std::size_t no_pages) noexcept { auto pages = + #if (_MSC_VER <= 1900) VirtualAlloc(nullptr, no_pages * virtual_memory_page_size, MEM_RESERVE, PAGE_READWRITE); + #else + VirtualAllocFromApp(nullptr, no_pages * virtual_memory_page_size, MEM_RESERVE, PAGE_READWRITE); + #endif return pages; } @@ -51,7 +55,11 @@ void* foonathan::memory::virtual_memory_commit(void* memory, std::size_t no_pages) noexcept { auto region = + #if (_MSC_VER <= 1900) VirtualAlloc(memory, no_pages * virtual_memory_page_size, MEM_COMMIT, PAGE_READWRITE); + #else + VirtualAllocFromApp(memory, no_pages * virtual_memory_page_size, MEM_COMMIT, PAGE_READWRITE); + #endif if (!region) return nullptr; FOONATHAN_MEMORY_ASSERT(region == memory); diff --git a/tool/CMakeLists.txt b/tool/CMakeLists.txt index 3739e552..350955c0 100644 --- a/tool/CMakeLists.txt +++ b/tool/CMakeLists.txt @@ -7,7 +7,7 @@ add_executable(foonathan_memory_node_size_debugger test_types.hpp node_size_debugger.hpp node_size_debugger.cpp) if (CMAKE_CROSSCOMPILING) # statically link when cross compiling so emulator doesn't need library paths - set_target_properties(foonathan_memory_node_size_debugger PROPERTIES LINK_FLAGS "-static") + set_target_properties(foonathan_memory_node_size_debugger PROPERTIES LINK_FLAGS "/WHOLEARCHIVE") endif() if (MSVC) target_compile_options(foonathan_memory_node_size_debugger PRIVATE "/bigobj")