From fdae04f387fb7f804a41d9ac39c88d87d6490915 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Tue, 17 Mar 2026 01:00:07 +0100 Subject: [PATCH] fix ABI mismatch check --- src/common/IPC/Primitives.cpp | 6 ++++++ src/common/IPC/Primitives.h | 2 ++ src/engine/framework/VirtualMachine.cpp | 3 +-- src/engine/server/sv_main.cpp | 6 ++---- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/common/IPC/Primitives.cpp b/src/common/IPC/Primitives.cpp index 14bdd8c339..684f947063 100644 --- a/src/common/IPC/Primitives.cpp +++ b/src/common/IPC/Primitives.cpp @@ -590,4 +590,10 @@ SharedMemory SharedMemory::Create(size_t size) } #endif +std::string AbiVersion() +{ + return std::string(IPC::SYSCALL_ABI_VERSION) + + (IPC::DAEMON_HAS_COMPATIBILITY_BREAKING_SYSCALL_CHANGES ? "+compatbreak" : ""); +} + } // namespace IPC diff --git a/src/common/IPC/Primitives.h b/src/common/IPC/Primitives.h index e5c2bcf02d..3489610b94 100644 --- a/src/common/IPC/Primitives.h +++ b/src/common/IPC/Primitives.h @@ -155,6 +155,8 @@ namespace IPC { size_t size; }; + std::string AbiVersion(); + } // namespace IPC namespace Util { diff --git a/src/engine/framework/VirtualMachine.cpp b/src/engine/framework/VirtualMachine.cpp index 482c6336d5..1f139a7a32 100644 --- a/src/engine/framework/VirtualMachine.cpp +++ b/src/engine/framework/VirtualMachine.cpp @@ -60,8 +60,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. static Cvar::Cvar abiVersionCvar( "version.daemon.abi", "Virtual machine IPC ABI version", Cvar::SERVERINFO | Cvar::ROM, - std::string(IPC::SYSCALL_ABI_VERSION) + - (IPC::DAEMON_HAS_COMPATIBILITY_BREAKING_SYSCALL_CHANGES ? "+compatbreak" : "")); + IPC::AbiVersion()); static Cvar::Cvar workaround_naclArchitecture_arm64_disableQualification( "workaround.linux.arm64.naclDisableQualification", diff --git a/src/engine/server/sv_main.cpp b/src/engine/server/sv_main.cpp index 293acb8c8f..ced0c8992b 100644 --- a/src/engine/server/sv_main.cpp +++ b/src/engine/server/sv_main.cpp @@ -596,10 +596,8 @@ static void SVC_Info( const netadr_t& from, const Cmd::Args& args ) } info_map["gamename"] = GAMENAME_STRING; // Arnout: to be able to filter out Quake servers - info_map["abi"] = IPC::SYSCALL_ABI_VERSION; - // Add the engine version. But is that really what we want? Probably the gamelogic version would - // be more interesting to players. Oh well, it's what's available for now. - info_map["daemonver"] = ENGINE_VERSION; + + info_map["abi"] = IPC::AbiVersion(); Net::OutOfBandPrint( netsrc_t::NS_SERVER, from, "infoResponse\n%s", InfoMapToString( info_map ) ); }