games/darkplaces: Patch for gcc >= 11.x.

Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
M.Dinslage 2021-09-04 11:08:15 +02:00 committed by Willy Sudiarto Raharjo
parent b53ebffb0f
commit 32baca649e
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
2 changed files with 92 additions and 0 deletions

View File

@ -100,6 +100,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
( cd darkplaces
patch -p1 < $CWD/gcc11.patch )
if [ "$SOURCE" != "NO" ]; then
cd $PRGNAM
make OPTIM_RELEASE="$SLKCFLAGS" release

View File

@ -0,0 +1,89 @@
--- a/dpsoftrast.c 2013-02-07 11:40:40.000000000 +0000
+++ b/dpsoftrast.c 2021-04-30 04:45:31.276607019 +0000
@@ -21,6 +21,7 @@
#if defined(__APPLE__)
#include <libkern/OSAtomic.h>
#define ALIGN(var) var __attribute__((__aligned__(16)))
+ #define ALIGN_STRUCT(def) struct __attribute__((__aligned__(16))) def
#define ATOMIC(var) var __attribute__((__aligned__(4)))
#define MEMORY_BARRIER (_mm_sfence())
#define ATOMIC_COUNTER volatile int32_t
@@ -29,6 +30,7 @@
#define ATOMIC_ADD(counter, val) ((void)OSAtomicAdd32Barrier((val), &(counter)))
#elif defined(__GNUC__) && defined(WIN32)
#define ALIGN(var) var __attribute__((__aligned__(16)))
+ #define ALIGN_STRUCT(def) struct __attribute__((__aligned__(16))) def
#define ATOMIC(var) var __attribute__((__aligned__(4)))
#define MEMORY_BARRIER (_mm_sfence())
//(__sync_synchronize())
@@ -43,6 +45,7 @@
#define ATOMIC_ADD(counter, val) ((void)InterlockedExchangeAdd((LONG *) &(counter), (val)))
#elif defined(__GNUC__)
#define ALIGN(var) var __attribute__((__aligned__(16)))
+ #define ALIGN_STRUCT(def) struct __attribute__((__aligned__(16))) def
#define ATOMIC(var) var __attribute__((__aligned__(4)))
#define MEMORY_BARRIER (_mm_sfence())
//(__sync_synchronize())
@@ -52,6 +55,7 @@
#define ATOMIC_ADD(counter, val) ((void)__sync_fetch_and_add(&(counter), (val)))
#elif defined(_MSC_VER)
#define ALIGN(var) __declspec(align(16)) var
+ #define ALIGN_STRUCT(def) ALIGN(struct def)
#define ATOMIC(var) __declspec(align(4)) var
#define MEMORY_BARRIER (_mm_sfence())
//(MemoryBarrier())
@@ -65,6 +69,9 @@
#ifndef ALIGN
#define ALIGN(var) var
#endif
+#ifndef ALIGN_STRUCT
+#define ALIGN_STRUCT(def) def
+#endif
#ifndef ATOMIC
#define ATOMIC(var) var
#endif
@@ -163,7 +170,7 @@
#define DPSOFTRAST_DRAW_MAXCOMMANDPOOL 2097152
#define DPSOFTRAST_DRAW_MAXCOMMANDSIZE 16384
-typedef ALIGN(struct DPSOFTRAST_State_Command_Pool_s
+typedef ALIGN_STRUCT(DPSOFTRAST_State_Command_Pool_s
{
int freecommand;
int usedcommands;
@@ -171,7 +178,7 @@
}
DPSOFTRAST_State_Command_Pool);
-typedef ALIGN(struct DPSOFTRAST_State_Triangle_s
+typedef ALIGN_STRUCT(DPSOFTRAST_State_Triangle_s
{
unsigned char mip[DPSOFTRAST_MAXTEXTUREUNITS]; // texcoord to screen space density values (for picking mipmap of textures)
float w[3];
@@ -198,7 +205,7 @@
#define DPSOFTRAST_DRAW_MAXSUBSPAN 16
-typedef ALIGN(struct DPSOFTRAST_State_Span_s
+typedef ALIGN_STRUCT(DPSOFTRAST_State_Span_s
{
int triangle; // triangle this span was generated by
int x; // framebuffer x coord
@@ -236,7 +243,7 @@
}
DPSOFTRAST_BLENDMODE;
-typedef ALIGN(struct DPSOFTRAST_State_Thread_s
+typedef ALIGN_STRUCT(DPSOFTRAST_State_Thread_s
{
void *thread;
int index;
@@ -302,7 +309,7 @@
}
DPSOFTRAST_State_Thread);
-typedef ALIGN(struct DPSOFTRAST_State_s
+typedef ALIGN_STRUCT(DPSOFTRAST_State_s
{
int fb_width;
int fb_height;