mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-15 13:00:37 +02:00
Adds kernel version check to FEXLoader
We require kernel 4.17 minimum on the host to run correctly
This commit is contained in:
1 parent
80dfa76d48
commit
0e11dea46f
2 files changed
+10
-2
No files matched your search
@@ -234,6 +234,14 @@ int main(int argc, char **argv, char **const envp) {
|
||||
|
||||
FEX::HarnessHelper::ELFCodeLoader Loader{Program, LDPath(), Args, ParsedArgs, envp, &Environment};
|
||||
|
||||
uint32_t KernelVersion = FEX::HLE::SyscallHandler::CalculateHostKernelVersion();
|
||||
if (KernelVersion < FEX::HLE::SyscallHandler::KernelVersion(4, 17) &&
|
||||
!Loader.Is64BitMode()) {
|
||||
// We require 4.17 minimum for MAP_FIXED_NOREPLACE on 32bit ELFs
|
||||
LogMan::Msg::E("FEXLoader requires kernel 4.17 minimum");
|
||||
return -1;
|
||||
}
|
||||
|
||||
FEXCore::Context::InitializeStaticTables(Loader.Is64BitMode() ? FEXCore::Context::MODE_64BIT : FEXCore::Context::MODE_32BIT);
|
||||
auto CTX = FEXCore::Context::CreateNewContext();
|
||||
FEXCore::Context::InitializeContext(CTX);
|
||||
|
||||
@@ -361,8 +361,8 @@ namespace FEX::HarnessHelper {
|
||||
void MapMemoryRegion() override {
|
||||
bool LimitedSize = true;
|
||||
auto DoMMap = [](uint64_t Address, size_t Size) -> void* {
|
||||
void *Result = mmap(reinterpret_cast<void*>(Address), Size, PROT_READ | PROT_WRITE, MAP_FIXED_NOREPLACE | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
|
||||
LogMan::Throw::A(Result != (void*)~0ULL, "mmap failed");
|
||||
void *Result = mmap(reinterpret_cast<void*>(Address), Size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
|
||||
LogMan::Throw::A(Result == reinterpret_cast<void*>(Address), "mmap failed");
|
||||
return Result;
|
||||
};
|
||||
|
||||
|
||||
Reference in new issue
Block a user