Skip to contentSkip to conversation

sdl2: fix build with --disable-threads

PATCH New Fabrice Fontaine 2 participants 2 messages Nov 21, 2018 – Nov 23, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sdl2: fix build with --disable-threads

SDL_LinuxSetThreadPriority() has been added since version 2.0.9 and
https://github.com/SDL-mirror/SDL/commit/f25a7fa870bdceb339e5105973f689606bcb9086

However, this function is used in src/dynapi/SDL_dynapi_procs.h even when SDL_THREADS_DISABLED

However, when SDL_THREADS_DISABLED is set, SDL_LinuxSetThreadPriority is not defined because thread/pthread/SDL_systhread.c is not built

So check SDL_THREADS_DISABLED in addition to __LINUX__

Fixes:
- http://autobuild.buildroot.org/results/539cb9ab6c605dc6be73ebe90debab1a998f2451

---
 .../0001-fix-build-with-disable-threads.patch | 63 +++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 package/sdl2/0001-fix-build-with-disable-threads.patch
package/sdl2/0001-fix-build-with-disable-threads.patch new file +63 -0
new file mode 100644
index 0000000000..81f7d7446f
@@ -0,0 +1,63 @@
+From 26646028f79d7f3d857df9b46cd6d0285796c699 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <[email protected]>
+Date: Wed, 21 Nov 2018 22:31:09 +0100
+Subject: [PATCH] fix build with --disable-threads
+
+SDL_LinuxSetThreadPriority() has been added since version 2.0.9 and
+https://github.com/SDL-mirror/SDL/commit/f25a7fa870bdceb339e5105973f689606bcb9086
+
+However, this function is used in src/dynapi/SDL_dynapi_procs.h even
+when SDL_THREADS_DISABLED
+
+However, when SDL_THREADS_DISABLED is set, SDL_LinuxSetThreadPriority is
+not defined because thread/pthread/SDL_systhread.c is not built
+
+So check SDL_THREADS_DISABLED in addition to __LINUX__
+
+Fixes:
+ - http://autobuild.buildroot.org/results/539cb9ab6c605dc6be73ebe90debab1a998f2451
+
+Signed-off-by: Fabrice Fontaine <[email protected]>
+---
+ include/SDL_system.h          | 4 ++--
+ src/dynapi/SDL_dynapi_procs.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/include/SDL_system.h b/include/SDL_system.h
+index 4dc372d6b..0513d7fa5 100644
+--- a/include/SDL_system.h
++++ b/include/SDL_system.h
+@@ -77,7 +77,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_DXGIGetOutputInfo( int displayIndex, int *a
+ 
+ 
+ /* Platform specific functions for Linux */
+-#ifdef __LINUX__
++#if defined(__LINUX__) && !defined(SDL_THREADS_DISABLED)
+ 
+ /**
+    \brief Sets the UNIX nice value for a thread, using setpriority() if possible, and RealtimeKit if available.
+@@ -86,7 +86,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_DXGIGetOutputInfo( int displayIndex, int *a
+  */
+ extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriority(Sint64 threadID, int priority);
+  
+-#endif /* __LINUX__ */
++#endif /* defined(__LINUX__) && !defined(SDL_THREADS_DISABLED) */
+ 	
+ /* Platform specific functions for iOS */
+ #if defined(__IPHONEOS__) && __IPHONEOS__
+diff --git a/src/dynapi/SDL_dynapi_procs.h b/src/dynapi/SDL_dynapi_procs.h
+index c95cf708b..ee9bf60a6 100644
+--- a/src/dynapi/SDL_dynapi_procs.h
++++ b/src/dynapi/SDL_dynapi_procs.h
+@@ -708,7 +708,7 @@ SDL_DYNAPI_PROC(SDL_bool,SDL_IsAndroidTV,(void),(),return)
+ SDL_DYNAPI_PROC(double,SDL_log10,(double a),(a),return)
+ SDL_DYNAPI_PROC(float,SDL_log10f,(float a),(a),return)
+ SDL_DYNAPI_PROC(char*,SDL_GameControllerMappingForDeviceIndex,(int a),(a),return)
+-#ifdef __LINUX__
++#if defined(__LINUX__) && !defined(SDL_THREADS_DISABLED)
+ SDL_DYNAPI_PROC(int,SDL_LinuxSetThreadPriority,(Sint64 a, int b),(a,b),return)
+ #endif
+ SDL_DYNAPI_PROC(SDL_bool,SDL_HasAVX512F,(void),(),return)
+-- 
+2.17.1
+
Signature · 1 line
2.17.1
#1 lore raw

PATCH 1/1 sdl2: fix build with --disable-threads

Hello,

Quoted 11 lines · Fabrice Fontaine

SDL_LinuxSetThreadPriority() has been added since version 2.0.9 and
https://github.com/SDL-mirror/SDL/commit/f25a7fa870bdceb339e5105973f689606bcb9086

However, this function is used in src/dynapi/SDL_dynapi_procs.h even when SDL_THREADS_DISABLED

However, when SDL_THREADS_DISABLED is set, SDL_LinuxSetThreadPriority is not defined because thread/pthread/SDL_systhread.c is not built

So check SDL_THREADS_DISABLED in addition to __LINUX__

Quoted 8 lines

Fixes:
- http://autobuild.buildroot.org/results/539cb9ab6c605dc6be73ebe90debab1a998f2451

---
 .../0001-fix-build-with-disable-threads.patch | 63 +++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 package/sdl2/0001-fix-build-with-disable-threads.patch

I like how the inverted SDL_THREADS_DISABLED macro makes the code readable. !SDL_THREADS_DISABLED means thread support is enabled...

But anyway, that's not your fault, that's how the existing SDL2 code is. So applied to next, thanks! Please make sure you submit this upstream.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com