aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/debugger/debugger.cpp2
-rw-r--r--src/dynarmic/CMakeLists.txt16
-rw-r--r--src/dynarmic/externals/CMakeLists.txt7
-rw-r--r--src/dynarmic/src/dynarmic/backend/x64/block_of_code.cpp8
-rw-r--r--src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp2
5 files changed, 23 insertions, 12 deletions
diff --git a/src/core/debugger/debugger.cpp b/src/core/debugger/debugger.cpp
index 7fe22fdce2..460e0d19b4 100644
--- a/src/core/debugger/debugger.cpp
+++ b/src/core/debugger/debugger.cpp
@@ -7,7 +7,7 @@
#include <boost/asio.hpp>
#include <boost/version.hpp>
-#if BOOST_VERSION > 108300 && (!defined(_WINDOWS) && !defined(ANDROID)) || defined(YUZU_BOOST_v1)
+#if BOOST_VERSION > 108400 && (!defined(_WINDOWS) && !defined(ANDROID)) || defined(YUZU_BOOST_v1)
#define USE_BOOST_v1
#endif
diff --git a/src/dynarmic/CMakeLists.txt b/src/dynarmic/CMakeLists.txt
index d505d16553..842eb91a88 100644
--- a/src/dynarmic/CMakeLists.txt
+++ b/src/dynarmic/CMakeLists.txt
@@ -14,12 +14,24 @@ endif()
# Dynarmic project options
option(DYNARMIC_ENABLE_CPU_FEATURE_DETECTION "Turning this off causes dynarmic to assume the host CPU doesn't support anything later than SSE3" ON)
-option(DYNARMIC_ENABLE_NO_EXECUTE_SUPPORT "Enables support for systems that require W^X" OFF)
+
+if (PLATFORM_OPENBSD)
+ option(DYNARMIC_ENABLE_NO_EXECUTE_SUPPORT "Enables support for systems that require W^X" ON)
+else()
+ option(DYNARMIC_ENABLE_NO_EXECUTE_SUPPORT "Enables support for systems that require W^X" OFF)
+endif()
+
option(DYNARMIC_FATAL_ERRORS "Errors are fatal" OFF)
option(DYNARMIC_IGNORE_ASSERTS "Ignore asserts" OFF)
option(DYNARMIC_TESTS_USE_UNICORN "Enable fuzzing tests against unicorn" OFF)
option(DYNARMIC_USE_LLVM "Support disassembly of jitted x86_64 code using LLVM" OFF)
-option(DYNARMIC_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
+
+if (PLATFORM_OPENBSD)
+ option(DYNARMIC_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF)
+else()
+ option(DYNARMIC_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
+endif()
+
option(DYNARMIC_INSTALL "Install dynarmic headers and CMake files" OFF)
option(DYNARMIC_USE_BUNDLED_EXTERNALS "Use all bundled externals (useful when e.g. cross-compiling)" OFF)
option(DYNARMIC_WARNINGS_AS_ERRORS "Warnings as errors" ${MASTER_PROJECT})
diff --git a/src/dynarmic/externals/CMakeLists.txt b/src/dynarmic/externals/CMakeLists.txt
index ba70797a84..26f9290ed8 100644
--- a/src/dynarmic/externals/CMakeLists.txt
+++ b/src/dynarmic/externals/CMakeLists.txt
@@ -60,13 +60,6 @@ AddJsonPackage(
# endif()
# endif()
-# unordered_dense
-
-# AddJsonPackage(
-# NAME unordered-dense
-# BUNDLED_PACKAGE ${DYNARMIC_USE_BUNDLED_EXTERNALS}
-# )
-
# xbyak
# uncomment if in an independent repo
diff --git a/src/dynarmic/src/dynarmic/backend/x64/block_of_code.cpp b/src/dynarmic/src/dynarmic/backend/x64/block_of_code.cpp
index 5a33ac7727..d5d5f089ff 100644
--- a/src/dynarmic/src/dynarmic/backend/x64/block_of_code.cpp
+++ b/src/dynarmic/src/dynarmic/backend/x64/block_of_code.cpp
@@ -225,8 +225,14 @@ bool IsUnderRosetta() {
} // anonymous namespace
+#ifdef DYNARMIC_ENABLE_NO_EXECUTE_SUPPORT
+static const auto default_cg_mode = Xbyak::DontSetProtectRWE;
+#else
+static const auto default_cg_mode = nullptr; //Allow RWE
+#endif
+
BlockOfCode::BlockOfCode(RunCodeCallbacks cb, JitStateInfo jsi, size_t total_code_size, std::function<void(BlockOfCode&)> rcp)
- : Xbyak::CodeGenerator(total_code_size, nullptr, &s_allocator)
+ : Xbyak::CodeGenerator(total_code_size, default_cg_mode, &s_allocator)
, cb(std::move(cb))
, jsi(jsi)
, constant_pool(*this, CONSTANT_POOL_SIZE)
diff --git a/src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp b/src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp
index 474c2f8404..7c0ba8a890 100644
--- a/src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp
+++ b/src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp
@@ -37,7 +37,7 @@ namespace {
struct SpinLockImpl {
void Initialize();
- Xbyak::CodeGenerator code;
+ Xbyak::CodeGenerator code = Xbyak::CodeGenerator(4096, Xbyak::DontSetProtectRWE);
void (*lock)(volatile int*);
void (*unlock)(volatile int*);