commit:     4142c39268e870f6dba983fa74dbba28c70efbe1
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 13 17:55:20 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Aug 13 17:55:49 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4142c392

games-fps/worldofpadman: Fix build w/ clang

Closes: https://bugs.gentoo.org/739246
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/worldofpadman-1.6-clang.patch            | 152 +++++++++++++++++++++
 .../worldofpadman/worldofpadman-1.6-r4.ebuild      |   1 +
 2 files changed, 153 insertions(+)

diff --git a/games-fps/worldofpadman/files/worldofpadman-1.6-clang.patch 
b/games-fps/worldofpadman/files/worldofpadman-1.6-clang.patch
new file mode 100644
index 000000000000..101ac5d257a0
--- /dev/null
+++ b/games-fps/worldofpadman/files/worldofpadman-1.6-clang.patch
@@ -0,0 +1,152 @@
+From 675e7a641a67eae2a27e5754e876d08d395c5da8 Mon Sep 17 00:00:00 2001
+From: Tim Angus <[email protected]>
+Date: Fri, 21 Oct 2011 22:48:53 +0000
+Subject: [PATCH] * clang support
+
+---
+ Makefile                     | 2 +-
+ code/asm/snapvector.c        | 6 +++---
+ code/botlib/be_ai_chat.c     | 2 +-
+ code/qcommon/common.c        | 3 +++
+ code/qcommon/q_platform.h    | 5 +++++
+ code/qcommon/unzip.c         | 2 +-
+ code/renderer/tr_model_iqm.c | 9 +++------
+ code/renderer/tr_scene.c     | 2 +-
+ 9 files changed, 19 insertions(+), 14 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 3bec57714..d0d3ba939 100644
+--- a/Makefile
++++ b/Makefile
+@@ -276,7 +276,7 @@ ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" 
"kfreebsd-gnu"))
+   endif
+ 
+   BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
+-    -pipe -DUSE_ICON
++    -Wno-self-assign -pipe -DUSE_ICON
+   CLIENT_CFLAGS += $(SDL_CFLAGS)
+ 
+   OPTIMIZEVM = -O3 -funroll-loops -fomit-frame-pointer
+diff --git a/code/asm/snapvector.c b/code/asm/snapvector.c
+index a70a1069c..2ba248dfe 100644
+--- a/code/asm/snapvector.c
++++ b/code/asm/snapvector.c
+@@ -55,9 +55,9 @@ void qsnapvectorsse(vec3_t vec)
+ 
+ #define QROUNDX87(src) \
+       "flds " src "\n" \
+-      "fistp " src "\n" \
+-      "fild " src "\n" \
+-      "fstp " src "\n"        
++      "fistpl " src "\n" \
++      "fildl " src "\n" \
++      "fstpl " src "\n"       
+ 
+ void qsnapvectorx87(vec3_t vec)
+ {
+diff --git a/code/botlib/be_ai_chat.c b/code/botlib/be_ai_chat.c
+index 10950e9d8..cc489d557 100644
+--- a/code/botlib/be_ai_chat.c
++++ b/code/botlib/be_ai_chat.c
+@@ -1173,7 +1173,7 @@ bot_matchpiece_t *BotLoadMatchPieces(source_t *source, 
char *endtoken)
+       {
+               if (token.type == TT_NUMBER && (token.subtype & TT_INTEGER))
+               {
+-                      if (token.intvalue < 0 || token.intvalue >= 
MAX_MATCHVARIABLES)
++                      if (token.intvalue >= MAX_MATCHVARIABLES)
+                       {
+                               SourceError(source, "can't have more than %d 
match variables\n", MAX_MATCHVARIABLES);
+                               FreeSource(source);
+diff --git a/code/qcommon/common.c b/code/qcommon/common.c
+index 2e39731c0..4f9abfcac 100644
+--- a/code/qcommon/common.c
++++ b/code/qcommon/common.c
+@@ -2329,7 +2329,10 @@ A way to force a bus error for development reasons
+ =================
+ */
+ static void Com_Crash_f( void ) {
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Wnull-dereference"
+       * ( int * ) 0 = 0x12345678;
++#pragma clang diagnostic pop
+ }
+ 
+ /*
+diff --git a/code/qcommon/q_platform.h b/code/qcommon/q_platform.h
+index 8bc2984ca..f2baf1c75 100644
+--- a/code/qcommon/q_platform.h
++++ b/code/qcommon/q_platform.h
+@@ -179,7 +179,12 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
 02110-1301  USA
+ #define OS_STRING "kFreeBSD"
+ #endif
+ 
++#ifdef __clang__
++#define ID_INLINE static inline
++#else
+ #define ID_INLINE inline
++#endif
++
+ #define PATH_SEP '/'
+ 
+ #if defined __i386__
+diff --git a/code/qcommon/unzip.c b/code/qcommon/unzip.c
+index b307e98d4..128502ce0 100644
+--- a/code/qcommon/unzip.c
++++ b/code/qcommon/unzip.c
+@@ -1250,7 +1250,7 @@ extern int ZEXPORT unzReadCurrentFile  (file, buf, len)
+         return UNZ_PARAMERROR;
+ 
+ 
+-    if ((pfile_in_zip_read_info->read_buffer == NULL))
++    if (pfile_in_zip_read_info->read_buffer == NULL)
+         return UNZ_END_OF_LIST_OF_FILE;
+     if (len==0)
+         return 0;
+diff --git a/code/renderer/tr_model_iqm.c b/code/renderer/tr_model_iqm.c
+index cad3aa6fd..98517d559 100644
+--- a/code/renderer/tr_model_iqm.c
++++ b/code/renderer/tr_model_iqm.c
+@@ -284,9 +284,9 @@ qboolean R_LoadIQM( model_t *mod, void *buffer, int 
filesize, const char *mod_na
+               LL( triangle->vertex[1] );
+               LL( triangle->vertex[2] );
+               
+-              if( triangle->vertex[0] < 0 || triangle->vertex[0] > 
header->num_vertexes ||
+-                  triangle->vertex[1] < 0 || triangle->vertex[1] > 
header->num_vertexes ||
+-                  triangle->vertex[2] < 0 || triangle->vertex[2] > 
header->num_vertexes ) {
++              if( triangle->vertex[0] > header->num_vertexes ||
++                  triangle->vertex[1] > header->num_vertexes ||
++                  triangle->vertex[2] > header->num_vertexes ) {
+                       return qfalse;
+               }
+       }
+@@ -323,9 +323,7 @@ qboolean R_LoadIQM( model_t *mod, void *buffer, int 
filesize, const char *mod_na
+                   mesh->first_vertex + mesh->num_vertexes > 
header->num_vertexes ||
+                   mesh->first_triangle >= header->num_triangles ||
+                   mesh->first_triangle + mesh->num_triangles > 
header->num_triangles ||
+-                  mesh->name < 0 ||
+                   mesh->name >= header->num_text ||
+-                  mesh->material < 0 ||
+                   mesh->material >= header->num_text ) {
+                       return qfalse;
+               }
+@@ -354,7 +352,6 @@ qboolean R_LoadIQM( model_t *mod, void *buffer, int 
filesize, const char *mod_na
+ 
+               if( joint->parent < -1 ||
+                   joint->parent >= (int)header->num_joints ||
+-                  joint->name < 0 ||
+                   joint->name >= (int)header->num_text ) {
+                       return qfalse;
+               }
+diff --git a/code/renderer/tr_scene.c b/code/renderer/tr_scene.c
+index 34e4141d3..94910d611 100644
+--- a/code/renderer/tr_scene.c
++++ b/code/renderer/tr_scene.c
+@@ -219,7 +219,7 @@ void RE_AddRefEntityToScene( const refEntity_t *ent ) {
+               }
+               return;
+       }
+-      if ( ent->reType < 0 || ent->reType >= RT_MAX_REF_ENTITY_TYPE ) {
++      if ( (int)ent->reType < 0 || ent->reType >= RT_MAX_REF_ENTITY_TYPE ) {
+               ri.Error( ERR_DROP, "RE_AddRefEntityToScene: bad reType %i", 
ent->reType );
+       }
+ 

diff --git a/games-fps/worldofpadman/worldofpadman-1.6-r4.ebuild 
b/games-fps/worldofpadman/worldofpadman-1.6-r4.ebuild
index f3d6af6b0180..973ac1ea60eb 100644
--- a/games-fps/worldofpadman/worldofpadman-1.6-r4.ebuild
+++ b/games-fps/worldofpadman/worldofpadman-1.6-r4.ebuild
@@ -43,6 +43,7 @@ DOCS=( id-readme.txt IOQ3-README voip-readme.txt 
../XTRAS/{changelog.txt,sounds_
 PATCHES=(
        "${FILESDIR}"/${P}-gentoo.patch
        "${WORKDIR}"/${P}-bison-3.patch # bug 921029, in 1.6.1
+       "${FILESDIR}"/${P}-clang.patch # bug 944329, in 1.6.0
        "${FILESDIR}"/${P}-c23.patch # bug 944329, git main
 )
 

Reply via email to