summaryrefslogtreecommitdiff
path: root/games
diff options
context:
space:
mode:
Diffstat (limited to 'games')
-rw-r--r--games/darkplaces/darkplaces.SlackBuild3
-rw-r--r--games/darkplaces/gcc11.patch89
2 files changed, 92 insertions, 0 deletions
diff --git a/games/darkplaces/darkplaces.SlackBuild b/games/darkplaces/darkplaces.SlackBuild
index 3fc95fddd0..1fcf44a837 100644
--- a/games/darkplaces/darkplaces.SlackBuild
+++ b/games/darkplaces/darkplaces.SlackBuild
@@ -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
diff --git a/games/darkplaces/gcc11.patch b/games/darkplaces/gcc11.patch
new file mode 100644
index 0000000000..ec653f8bc8
--- /dev/null
+++ b/games/darkplaces/gcc11.patch
@@ -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;