summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--games-fps/worldofpadman/files/worldofpadman-1.6-clang.patch152
-rw-r--r--games-fps/worldofpadman/worldofpadman-1.6-r4.ebuild1
2 files changed, 153 insertions, 0 deletions
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 <tim@ngus.net>
+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
)