From nobody Thu Aug 6 09:29:48 2026 X-Original-To: dev-commits-ports-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hG2711vcJz6mjkD for ; Thu, 06 Aug 2026 09:29:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hG2703hZpz3dbs for ; Thu, 06 Aug 2026 09:29:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786008588; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fpbqQt4ZMRdp4ZfUiXPlq/kzPHYhPHT3HVNcS/V6JSg=; b=HgJ0AWQSBkbIcJSED74zfNb6S+u8NkyVf3VHrEnYopP0G2Ptwt/GlYUaxh7oor/b+GD7yq H5ew2DbpAgKiaSy0yLhb5iJRjMeKvEGB3DVqXU9mmQNfeQ3vxwyfePr74v5fSJTSxC8rKS gnpFs0lfwHh3/paHBHkz7nrNmsNCcy7m75F/woOxsfpJ1SBq4p/6UN8Rzj+u3x0ftxS9K3 V7HQc4nGjHdh5uIPP7vV+R6HWEdqsjxQHj9qJ/c4xqJHjp6+VT3DKgRkhUXxvz9SW/lqfz qeDXU72Ts/ureYG41okZYedZmowyscrSZ1hWe6bnJOz5UIFbdTW+Q/6XhSUeDQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786008588; a=rsa-sha256; cv=none; b=uHGN1xlTgufZaSaSpj0xI60+mqRLNV0kvjXcMNvBn8rewXLMpvSvXRmISXHjQHZbFjPdO8 XTMkiCLT6GaQToklKVL/PYlI+eM3EM/PKt67bHZzCkL+xyVG3Hg6yvIihdJ8c7nJk0ydul NtyCob/bl2C+LWqxfNmzwXuPyI8vEUlmlwK8P2m1ikUUSA+ZD4aOfNstU6xCpHzJ2zkMhU W8m/RXGYbX4EpWe+LxccLuMuI123Vq4kAp0LhQ0pwWu5b6M2chtdBkTFzgpiJv2r38NKq7 JrsXFGZKFLOE+xZ0zr8nUK6aSpdEFaq4CvsMz1KZ0QE2UEED9YaxAa+E2WFUCg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786008588; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fpbqQt4ZMRdp4ZfUiXPlq/kzPHYhPHT3HVNcS/V6JSg=; b=tgSstpphzTLA0H+FxZTlJb7cIg8kR0Pdd890NU2ff06nf0mO4CIiv8rT80rHtNhxKs4HVU eI5arFmgVSE37nVbmrzw7a1ITHTt2Dyord5iwcRAs/hhRv8ntBATfgulOExSVlFvLxnsVI sJZJnK86R5uH3Rw/U9ZQFCoTANn8L9F9Q/tArehCrJHXsiYxHKl+/1/LFuOrKApTQ2k8op lrryU7sMfFNOd4UTxJ8rC7b5iDZZwwypqIWfj+TNfYvHiYqlLX4GhQ2dPj2IhALOkxHFsd CP9hD0+D0fp3iagey0HhvGaws5URvPfpSXodOyJui2HVIkp7XtZ0rlbynztEzg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hG2702MrTzNm for ; Thu, 06 Aug 2026 09:29:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 199ee by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 06 Aug 2026 09:29:48 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org From: Robert Clausecker Subject: git: 4744e66b618a - 2026Q3 - games/CWR-CE: fix build on armv7 List-Id: Commits to the quarterly branches of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-branches@freebsd.org Sender: owner-dev-commits-ports-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: ports X-Git-Refname: refs/heads/2026Q3 X-Git-Reftype: branch X-Git-Commit: 4744e66b618a15a657bc75bd1ce78ee610616650 Auto-Submitted: auto-generated Date: Thu, 06 Aug 2026 09:29:48 +0000 Message-Id: <6a74540c.199ee.4d87779@gitrepo.freebsd.org> The branch 2026Q3 has been updated by fuz: URL: https://cgit.FreeBSD.org/ports/commit/?id=4744e66b618a15a657bc75bd1ce78ee610616650 commit 4744e66b618a15a657bc75bd1ce78ee610616650 Author: Robert Clausecker AuthorDate: 2026-08-04 16:20:06 +0000 Commit: Robert Clausecker CommitDate: 2026-08-06 09:29:29 +0000 games/CWR-CE: fix build on armv7 - disabled pre-compiled headers to work around a long-standing clang bug - apply sse2neon workaround to arm, too - fix assumption of size_t being 64 bits in a hash calculation - improve architecture name reporting See also: https://github.com/llvm/llvm-project/issues/69524 Approved by: portmgr (build fix blanket) MFH: 2026Q3 (cherry picked from commit 319393265d592e3bd5b422959190a12bd4e02033) --- games/CWR-CE/Makefile | 9 +++++++-- ...patch-engine_Poseidon_Asset_Cache_AssetCache.hpp | 21 +++++++++++++++++++++ ...atch-engine_Poseidon_Foundation_Math_Quatrix.hpp | 13 ++++++------- ...ch-engine_Poseidon_Foundation_Math_V3QuadsP3.cpp | 11 +++++------ ...h-engine_Poseidon_Graphics_Rendering_ColorsK.hpp | 10 +++++----- .../files/patch-engine_Poseidon_UI_OptionsUIApp.cpp | 17 ++++++++++++++--- 6 files changed, 58 insertions(+), 23 deletions(-) diff --git a/games/CWR-CE/Makefile b/games/CWR-CE/Makefile index 2ef97966212d..b5171862b4dd 100644 --- a/games/CWR-CE/Makefile +++ b/games/CWR-CE/Makefile @@ -11,6 +11,9 @@ MAINTAINER= olivier@FreeBSD.org COMMENT= Arma: Cold War Assault - Remastered Community Edition WWW= https://github.com/ofpisnotdead-com/CWR-CE +ONLY_FOR_ARCHS= aarch64 amd64 armv7 i386 +ONLY_FOR_ARCHS_REASON= requires SSE intrinsics, light porting work for other architectures + LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/LICENSE @@ -51,7 +54,9 @@ SUB_FILES= pkg-message CMAKE_ARGS= -DVCPKG_MANIFEST_MODE=OFF \ -DCMAKE_DISABLE_FIND_PACKAGE_VCPKG=ON -CMAKE_OFF= POSEIDON_DISABLE_PCH POSEIDON_BUILD_FUZZERS +CMAKE_OFF= POSEIDON_BUILD_FUZZERS +# https://github.com/llvm/llvm-project/issues/69524 +CMAKE_ON= POSEIDON_DISABLE_PCH CXXFLAGS_powerpc64le= -DNO_WARN_X86_INTRINSICS PLIST_FILES= bin/PoseidonGame \ @@ -79,7 +84,7 @@ do-install: .include -.if ${ARCH} == aarch64 +.if ${ARCH} == aarch64 || ${ARCH:Marmv?} BUILD_DEPENDS+= ${LOCALBASE}/include/sse2neon.h:devel/sse2neon .endif diff --git a/games/CWR-CE/files/patch-engine_Poseidon_Asset_Cache_AssetCache.hpp b/games/CWR-CE/files/patch-engine_Poseidon_Asset_Cache_AssetCache.hpp new file mode 100644 index 000000000000..89d4e94a17cc --- /dev/null +++ b/games/CWR-CE/files/patch-engine_Poseidon_Asset_Cache_AssetCache.hpp @@ -0,0 +1,21 @@ +--- engine/Poseidon/Asset/Cache/AssetCache.hpp.orig 2026-08-04 10:49:53 UTC ++++ engine/Poseidon/Asset/Cache/AssetCache.hpp +@@ -70,15 +70,15 @@ struct StringKeyHash + // FNV-1a over lowercased bytes — case-insensitive hash matching the equality above. + size_t operator()(const StringKey& k) const noexcept + { +- size_t h = 14695981039346656037ULL; ++ uint64_t h = 14695981039346656037ULL; + for (char c : k.value) + { + const unsigned char u = static_cast(c); + const unsigned char lc = (u >= 'A' && u <= 'Z') ? u + 32 : u; +- h ^= static_cast(lc); ++ h ^= static_cast(lc); + h *= 1099511628211ULL; + } +- return h; ++ return static_cast(h); + } + }; + diff --git a/games/CWR-CE/files/patch-engine_Poseidon_Foundation_Math_Quatrix.hpp b/games/CWR-CE/files/patch-engine_Poseidon_Foundation_Math_Quatrix.hpp index f8d12f18b07d..69d9f63f7dc2 100644 --- a/games/CWR-CE/files/patch-engine_Poseidon_Foundation_Math_Quatrix.hpp +++ b/games/CWR-CE/files/patch-engine_Poseidon_Foundation_Math_Quatrix.hpp @@ -1,17 +1,16 @@ ---- engine/Poseidon/Foundation/Math/Quatrix.hpp.orig +--- engine/Poseidon/Foundation/Math/Quatrix.hpp.orig 2026-08-04 10:46:28 UTC +++ engine/Poseidon/Foundation/Math/Quatrix.hpp -@@ -1,10 +1,14 @@ +@@ -1,9 +1,13 @@ #pragma once - -+#ifdef __aarch64__ + ++#if defined(__aarch64__) || defined(__arm__) +#include +#else #ifdef _MSC_VER #include #else #include - #endif +#endif - + #endif + namespace Poseidon::Foundation - { diff --git a/games/CWR-CE/files/patch-engine_Poseidon_Foundation_Math_V3QuadsP3.cpp b/games/CWR-CE/files/patch-engine_Poseidon_Foundation_Math_V3QuadsP3.cpp index 3174dc07d403..de2336fb41bc 100644 --- a/games/CWR-CE/files/patch-engine_Poseidon_Foundation_Math_V3QuadsP3.cpp +++ b/games/CWR-CE/files/patch-engine_Poseidon_Foundation_Math_V3QuadsP3.cpp @@ -1,18 +1,17 @@ ---- engine/Poseidon/Foundation/Math/V3QuadsP3.cpp.orig +--- engine/Poseidon/Foundation/Math/V3QuadsP3.cpp.orig 2026-08-04 10:46:28 UTC +++ engine/Poseidon/Foundation/Math/V3QuadsP3.cpp -@@ -7,11 +7,15 @@ +@@ -7,10 +7,14 @@ #include #include #include -+#ifdef __aarch64__ ++#if defined(__aarch64__) || defined(__arm__) +#include +#else #ifdef _MSC_VER #include // For MMX intrinsics #else #include - #endif +#endif - + #endif + #if defined __ICL - #define _COMPILER_CAN_PIII 1 diff --git a/games/CWR-CE/files/patch-engine_Poseidon_Graphics_Rendering_ColorsK.hpp b/games/CWR-CE/files/patch-engine_Poseidon_Graphics_Rendering_ColorsK.hpp index 378e6a5abbd3..4adfda08ae38 100644 --- a/games/CWR-CE/files/patch-engine_Poseidon_Graphics_Rendering_ColorsK.hpp +++ b/games/CWR-CE/files/patch-engine_Poseidon_Graphics_Rendering_ColorsK.hpp @@ -1,14 +1,14 @@ ---- engine/Poseidon/Graphics/Rendering/ColorsK.hpp.orig +--- engine/Poseidon/Graphics/Rendering/ColorsK.hpp.orig 2026-08-04 10:46:27 UTC +++ engine/Poseidon/Graphics/Rendering/ColorsK.hpp -@@ -2,7 +2,11 @@ +@@ -2,7 +2,11 @@ int toInt(double f); int toInt(float fval); int toInt(double f); - -+#ifdef __aarch64__ + ++#if defined(__aarch64__) || defined(__arm__) +#include +#else #include +#endif #include #include - + diff --git a/games/CWR-CE/files/patch-engine_Poseidon_UI_OptionsUIApp.cpp b/games/CWR-CE/files/patch-engine_Poseidon_UI_OptionsUIApp.cpp index 56222be713a7..99bd9abac1b8 100644 --- a/games/CWR-CE/files/patch-engine_Poseidon_UI_OptionsUIApp.cpp +++ b/games/CWR-CE/files/patch-engine_Poseidon_UI_OptionsUIApp.cpp @@ -1,11 +1,22 @@ ---- engine/Poseidon/UI/OptionsUIApp.cpp.orig +--- engine/Poseidon/UI/OptionsUIApp.cpp.orig 2026-08-06 09:21:54 UTC +++ engine/Poseidon/UI/OptionsUIApp.cpp -@@ -120,6 +120,8 @@ +@@ -119,8 +119,18 @@ RString GetAppVersion() { #if defined(_M_X64) || defined(__x86_64__) const char* platform = "x64"; +-#else +#elif defined(__aarch64__) + const char* platform = "aarch64"; - #else ++#elif defined(__arm__) ++ const char* platform = "arm"; ++#elif defined(__powerpc64__) ++ const char* platform = "powerpc64"; ++#elif defined(__powerpc__) ++ const char* platform = "powerpc"; ++#elif defined(__i386__) const char* platform = "x86"; ++#else ++ const char* platform = "unknown"; #endif + + RString renderer = GEngine ? GEngine->GetRendererName() : "No renderer";