mirror of
https://codeberg.org/wownero/RandomWOW
synced 2026-03-05 14:17:33 -05:00
Fix compilation and JIT support on NetBSD:
1. Disable hugepages (not supported). 2. Force W^X (required). 3. When allocating JIT memory, PROT_EXEC must be reserved in order to set the pages executable later.
This commit is contained in:
@@ -65,7 +65,7 @@ set_thread_affinity(std::thread::native_handle_type thread,
|
||||
(thread_policy_t)&policy, 1);
|
||||
#elif defined(_WIN32) || defined(__CYGWIN__)
|
||||
rc = SetThreadAffinityMask(reinterpret_cast<HANDLE>(thread), 1ULL << cpuid) == 0 ? -2 : 0;
|
||||
#elif !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__ANDROID__)
|
||||
#elif !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__ANDROID__) && !defined(__NetBSD__)
|
||||
cpu_set_t cs;
|
||||
CPU_ZERO(&cs);
|
||||
CPU_SET(cpuid, &cs);
|
||||
|
||||
@@ -40,6 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include "../dataset.hpp"
|
||||
#include "../blake2/endian.h"
|
||||
#include "../common.hpp"
|
||||
#include "../jit_compiler.hpp"
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#include <VersionHelpers.h>
|
||||
@@ -199,7 +200,7 @@ int main(int argc, char** argv) {
|
||||
}
|
||||
if (jit) {
|
||||
flags |= RANDOMX_FLAG_JIT;
|
||||
#ifdef __OpenBSD__
|
||||
#ifdef RANDOMX_FORCE_SECURE
|
||||
flags |= RANDOMX_FLAG_SECURE;
|
||||
#endif
|
||||
}
|
||||
@@ -211,7 +212,7 @@ int main(int argc, char** argv) {
|
||||
if (miningMode) {
|
||||
flags |= RANDOMX_FLAG_FULL_MEM;
|
||||
}
|
||||
#ifndef __OpenBSD__
|
||||
#ifndef RANDOMX_FORCE_SECURE
|
||||
if (secure) {
|
||||
flags |= RANDOMX_FLAG_SECURE;
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ int main() {
|
||||
randomx::JitCompiler jit;
|
||||
jit.generateSuperscalarHash(cache->programs, cache->reciprocalCache);
|
||||
jit.generateDatasetInitCode();
|
||||
#ifdef __OpenBSD__
|
||||
#ifdef RANDOMX_FORCE_SECURE
|
||||
jit.enableExecution();
|
||||
#else
|
||||
jit.enableAll();
|
||||
@@ -954,7 +954,7 @@ int main() {
|
||||
assert(ibc.memMask == randomx::ScratchpadL3Mask);
|
||||
});
|
||||
|
||||
#ifdef __OpenBSD__
|
||||
#ifdef RANDOMX_FORCE_SECURE
|
||||
vm = randomx_create_vm(RANDOMX_FLAG_DEFAULT | RANDOMX_FLAG_SECURE, cache, nullptr);
|
||||
#else
|
||||
vm = randomx_create_vm(RANDOMX_FLAG_DEFAULT, cache, nullptr);
|
||||
@@ -1009,10 +1009,10 @@ int main() {
|
||||
vm = nullptr;
|
||||
cache = randomx_alloc_cache(RANDOMX_FLAG_JIT);
|
||||
initCache("test key 000");
|
||||
#ifdef __OpenBSD__
|
||||
vm = randomx_create_vm(RANDOMX_FLAG_DEFAULT | RANDOMX_FLAG_SECURE, cache, nullptr);
|
||||
#ifdef RANDOMX_FORCE_SECURE
|
||||
vm = randomx_create_vm(RANDOMX_FLAG_JIT | RANDOMX_FLAG_SECURE, cache, nullptr);
|
||||
#else
|
||||
vm = randomx_create_vm(RANDOMX_FLAG_DEFAULT, cache, nullptr);
|
||||
vm = randomx_create_vm(RANDOMX_FLAG_JIT, cache, nullptr);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user