From e49fee0ca11517a39d3da65e5dc09e4d0cc3d020 Mon Sep 17 00:00:00 2001 From: Bart Ribbers Date: Thu, 25 Aug 2022 20:05:22 +0200 Subject: [PATCH] block_of_code: rename PAGE_SIZE to DYNARMIC_PAGE_SIZE to prevent use of reserved name PAGE_SIZE is a kernel symbol and depending on the libc in use, it will "leak". In this case dynarmic was using it's own PAGE_SIZE and in combination with the Musl libc the compiler would complain it was overwriting the kernel symbol --- src/dynarmic/backend/x64/block_of_code.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/dynarmic/backend/x64/block_of_code.cpp b/src/dynarmic/backend/x64/block_of_code.cpp index cc2bcc9b..2b26c6c6 100644 --- a/src/dynarmic/backend/x64/block_of_code.cpp +++ b/src/dynarmic/backend/x64/block_of_code.cpp @@ -59,13 +59,13 @@ constexpr size_t CONSTANT_POOL_SIZE = 2 * 1024 * 1024; class CustomXbyakAllocator : public Xbyak::Allocator { public: #ifndef _WIN32 - static constexpr size_t PAGE_SIZE = 4096; + static constexpr size_t DYNARMIC_PAGE_SIZE = 4096; // Can't subclass Xbyak::MmapAllocator because it is not a pure interface // and doesn't expose its construtor uint8_t* alloc(size_t size) override { // Waste a page to store the size - size += PAGE_SIZE; + size += DYNARMIC_PAGE_SIZE; # if defined(MAP_ANONYMOUS) int mode = MAP_PRIVATE | MAP_ANONYMOUS; @@ -83,13 +83,13 @@ public: throw Xbyak::Error(Xbyak::ERR_CANT_ALLOC); } std::memcpy(p, &size, sizeof(size_t)); - return static_cast(p) + PAGE_SIZE; + return static_cast(p) + DYNARMIC_PAGE_SIZE; } void free(uint8_t* p) override { size_t size; - std::memcpy(&size, p - PAGE_SIZE, sizeof(size_t)); - munmap(p - PAGE_SIZE, size); + std::memcpy(&size, p - DYNARMIC_PAGE_SIZE, sizeof(size_t)); + munmap(p - DYNARMIC_PAGE_SIZE, size); } #endif