diff --git a/Source/Tests/LinuxSyscalls/EmulatedFiles/EmulatedFiles.cpp b/Source/Tests/LinuxSyscalls/EmulatedFiles/EmulatedFiles.cpp index a2344d953..ac9f15aec 100644 --- a/Source/Tests/LinuxSyscalls/EmulatedFiles/EmulatedFiles.cpp +++ b/Source/Tests/LinuxSyscalls/EmulatedFiles/EmulatedFiles.cpp @@ -600,8 +600,12 @@ namespace FEX::EmulatedFile { FDReadCreators["/proc/sys/kernel/osrelease"] = [&](FEXCore::Context::Context *ctx, int32_t fd, const char *pathname, int32_t flags, mode_t mode) -> int32_t { FILE *fp = tmpfile(); - const char kernel_version[] = "5.0.0\0"; - fwrite(kernel_version, sizeof(uint8_t), strlen(kernel_version) + 1, fp); + uint32_t GuestVersion = FEX::HLE::_SyscallHandler->GetGuestKernelVersion(); + fprintf(fp, "%d.%d.%d\n", + FEX::HLE::SyscallHandler::KernelMajor(GuestVersion), + FEX::HLE::SyscallHandler::KernelMinor(GuestVersion), + FEX::HLE::SyscallHandler::KernelPatch(GuestVersion)); + fputc('\0', fp); fseek(fp, 0, SEEK_SET); int32_t f = fileno(fp); return f; @@ -611,8 +615,13 @@ namespace FEX::EmulatedFile { FILE *fp = tmpfile(); // UTS version NEEDS to be in a format that can pass to `date -d` // Format of this is Linux version (@) () # {SMP, PREEMPT, PREEMPT_RT} \n" - const char kernel_version[] = "Linux version 5.0.0 (FEX@FEX) (clang) #" GIT_DESCRIBE_STRING " SMP " __DATE__ " " __TIME__ "\n\0"; - fwrite(kernel_version, sizeof(uint8_t), strlen(kernel_version) + 1, fp); + const char kernel_version[] = "Linux version %d.%d.%d (FEX@FEX) (clang) #" GIT_DESCRIBE_STRING " SMP " __DATE__ " " __TIME__ "\n"; + uint32_t GuestVersion = FEX::HLE::_SyscallHandler->GetGuestKernelVersion(); + fprintf(fp, kernel_version, + FEX::HLE::SyscallHandler::KernelMajor(GuestVersion), + FEX::HLE::SyscallHandler::KernelMinor(GuestVersion), + FEX::HLE::SyscallHandler::KernelPatch(GuestVersion)); + fputc('\0', fp); fseek(fp, 0, SEEK_SET); int32_t f = fileno(fp); return f; diff --git a/Source/Tests/LinuxSyscalls/Syscalls/Info.cpp b/Source/Tests/LinuxSyscalls/Syscalls/Info.cpp index f9723d5ac..495f46b97 100644 --- a/Source/Tests/LinuxSyscalls/Syscalls/Info.cpp +++ b/Source/Tests/LinuxSyscalls/Syscalls/Info.cpp @@ -42,7 +42,12 @@ namespace FEX::HLE { LogMan::Msg::E("Couldn't determine host nodename. Defaulting to '%s'", buf->nodename); } strcpy(buf->sysname, "Linux"); - strcpy(buf->release, "5.0.0"); + uint32_t GuestVersion = FEX::HLE::_SyscallHandler->GetGuestKernelVersion(); + snprintf(buf->release, sizeof(buf->release), "%d.%d.%d", + FEX::HLE::SyscallHandler::KernelMajor(GuestVersion), + FEX::HLE::SyscallHandler::KernelMinor(GuestVersion), + FEX::HLE::SyscallHandler::KernelPatch(GuestVersion)); + const char version[] = "#" GIT_DESCRIBE_STRING " SMP " __DATE__ " " __TIME__; strcpy(buf->version, version); static_assert(sizeof(version) <= sizeof(buf->version), "uname version define became too large!");