From 4bbbe7a82fb75abe0840c9ee240c8c9c06c1a7c8 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Thu, 19 Oct 2017 10:41:02 +0200 Subject: [PATCH] backport one more patch to fix build Signed-off-by: Igor Gnatenko --- SDL2-2.0.6-add-min-max-datatypes.patch | 93 ++++++++++++++++++++++++++ SDL2.spec | 5 +- 2 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 SDL2-2.0.6-add-min-max-datatypes.patch diff --git a/SDL2-2.0.6-add-min-max-datatypes.patch b/SDL2-2.0.6-add-min-max-datatypes.patch new file mode 100644 index 0000000..af97077 --- /dev/null +++ b/SDL2-2.0.6-add-min-max-datatypes.patch @@ -0,0 +1,93 @@ +# HG changeset patch +# User Sam Lantinga +# Date 1508189996 25200 +# Mon Oct 16 14:39:56 2017 -0700 +# Node ID 97bc026b46ded1ef28709d246130e66e81f1b513 +# Parent 2eaf345a2a301183f671cdb31852bee8196aaec8 +Added min/max macros for the sized SDL datatypes + +diff -r 2eaf345a2a30 -r 97bc026b46de include/SDL_stdinc.h +--- a/include/SDL_stdinc.h Sun Oct 15 21:21:19 2017 -0700 ++++ b/include/SDL_stdinc.h Mon Oct 16 14:39:56 2017 -0700 +@@ -146,35 +146,51 @@ + /** + * \brief A signed 8-bit integer type. + */ ++#define SDL_MAX_SINT8 ((Sint8)0x7F) /* 127 */ ++#define SDL_MIN_SINT8 ((Sint8)(~0x7F)) /* -128 */ + typedef int8_t Sint8; + /** + * \brief An unsigned 8-bit integer type. + */ ++#define SDL_MAX_UINT8 ((Uint8)0xFF) /* 255 */ ++#define SDL_MIN_UINT8 ((Uint8)0x00) /* 0 */ + typedef uint8_t Uint8; + /** + * \brief A signed 16-bit integer type. + */ ++#define SDL_MAX_SINT16 ((Sint16)0x7FFF) /* 32767 */ ++#define SDL_MIN_SINT16 ((Sint16)(~0x7FFF)) /* -32768 */ + typedef int16_t Sint16; + /** + * \brief An unsigned 16-bit integer type. + */ ++#define SDL_MAX_UINT16 ((Uint16)0xFFFF) /* 65535 */ ++#define SDL_MIN_UINT16 ((Uint16)0x0000) /* 0 */ + typedef uint16_t Uint16; + /** + * \brief A signed 32-bit integer type. + */ ++#define SDL_MAX_SINT32 ((Sint32)0x7FFFFFFF) /* 2147483647 */ ++#define SDL_MIN_SINT32 ((Sint32)(~0x7FFFFFFF)) /* -2147483648 */ + typedef int32_t Sint32; + /** + * \brief An unsigned 32-bit integer type. + */ ++#define SDL_MAX_UINT32 ((Uint32)0xFFFFFFFFu) /* 4294967295 */ ++#define SDL_MIN_UINT32 ((Uint32)0x00000000) /* 0 */ + typedef uint32_t Uint32; + + /** + * \brief A signed 64-bit integer type. + */ ++#define SDL_MAX_SINT64 ((Sint64)0x7FFFFFFFFFFFFFFFll) /* 9223372036854775807 */ ++#define SDL_MIN_SINT64 ((Sint64)(~0x7FFFFFFFFFFFFFFFll)) /* -9223372036854775808 */ + typedef int64_t Sint64; + /** + * \brief An unsigned 64-bit integer type. + */ ++#define SDL_MAX_UINT64 ((Uint64)0xFFFFFFFFFFFFFFFFull) /* 18446744073709551615 */ ++#define SDL_MIN_UINT64 ((Uint64)(0x0000000000000000ull)) /* 0 */ + typedef uint64_t Uint64; + + /* @} *//* Basic data types */ +diff -r 2eaf345a2a30 -r 97bc026b46de test/testplatform.c +--- a/test/testplatform.c Sun Oct 15 21:21:19 2017 -0700 ++++ b/test/testplatform.c Mon Oct 16 14:39:56 2017 -0700 +@@ -30,6 +30,26 @@ + { + int error = 0; + ++ SDL_COMPILE_TIME_ASSERT(SDL_MAX_SINT8, SDL_MAX_SINT8 == 127); ++ SDL_COMPILE_TIME_ASSERT(SDL_MIN_SINT8, SDL_MIN_SINT8 == -128); ++ SDL_COMPILE_TIME_ASSERT(SDL_MAX_UINT8, SDL_MAX_UINT8 == 255); ++ SDL_COMPILE_TIME_ASSERT(SDL_MIN_UINT8, SDL_MIN_UINT8 == 0); ++ ++ SDL_COMPILE_TIME_ASSERT(SDL_MAX_SINT16, SDL_MAX_SINT16 == 32767); ++ SDL_COMPILE_TIME_ASSERT(SDL_MIN_SINT16, SDL_MIN_SINT16 == -32768); ++ SDL_COMPILE_TIME_ASSERT(SDL_MAX_UINT16, SDL_MAX_UINT16 == 65535); ++ SDL_COMPILE_TIME_ASSERT(SDL_MIN_UINT16, SDL_MIN_UINT16 == 0); ++ ++ SDL_COMPILE_TIME_ASSERT(SDL_MAX_SINT32, SDL_MAX_SINT32 == 2147483647); ++ SDL_COMPILE_TIME_ASSERT(SDL_MIN_SINT32, SDL_MIN_SINT32 == ~0x7fffffff); /* Instead of -2147483648, which is treated as unsigned by some compilers */ ++ SDL_COMPILE_TIME_ASSERT(SDL_MAX_UINT32, SDL_MAX_UINT32 == 4294967295u); ++ SDL_COMPILE_TIME_ASSERT(SDL_MIN_UINT32, SDL_MIN_UINT32 == 0); ++ ++ SDL_COMPILE_TIME_ASSERT(SDL_MAX_SINT64, SDL_MAX_SINT64 == 9223372036854775807ll); ++ SDL_COMPILE_TIME_ASSERT(SDL_MIN_SINT64, SDL_MIN_SINT64 == ~0x7fffffffffffffffll); /* Instead of -9223372036854775808, which is treated as unsigned by compilers */ ++ SDL_COMPILE_TIME_ASSERT(SDL_MAX_UINT64, SDL_MAX_UINT64 == 18446744073709551615ull); ++ SDL_COMPILE_TIME_ASSERT(SDL_MIN_UINT64, SDL_MIN_UINT64 == 0); ++ + if (badsize(sizeof(Uint8), 1)) { + if (verbose) + SDL_Log("sizeof(Uint8) != 1, instead = %u\n", diff --git a/SDL2.spec b/SDL2.spec index 6b51376..bf5e473 100644 --- a/SDL2.spec +++ b/SDL2.spec @@ -15,8 +15,11 @@ Patch0: multilib.patch Patch1: SDL2-2.0.6-invalid-dbus-args.patch # https://hg.libsdl.org/SDL/rev/7e0f1498ddb5 Patch2: SDL2-2.0.6-CVE-2017-2888.patch +# https://hg.libsdl.org/SDL/rev/97bc026b46de +# This is needed for next patch +Patch3: SDL2-2.0.6-add-min-max-datatypes.patch # https://hg.libsdl.org/SDL/rev/81a4950907a0 -Patch3: SDL2-2.0.6-CVE-2017-2888-2.patch +Patch4: SDL2-2.0.6-CVE-2017-2888-2.patch BuildRequires: alsa-lib-devel BuildRequires: audiofile-devel