42 lines
1.4 KiB
Diff
42 lines
1.4 KiB
Diff
|
|
||
|
# HG changeset patch
|
||
|
# User Paul Cercueil <paul@crapouillou.net>
|
||
|
# Date 1576820863 28800
|
||
|
# Node ID 4f5bef55183c677d12a7da8f3392879ed50670a3
|
||
|
# Parent 01f16d7f36cb9f4fa02016e57fbe915fdea71cc8
|
||
|
kmsdrm: Fix busy-loop within libc's dlopen()
|
||
|
For some obscure reason, the order in which the libdrm/libgbm libraries
|
||
|
are loaded matters.
|
||
|
|
||
|
Without this fix, the first call to check_modesetting() will work and
|
||
|
load then unload all symbols properly, but the second call to this
|
||
|
function will lock up as soon as dlopen() is called on libdrm.
|
||
|
|
||
|
Swapping the order in which the libdrm and libgbm libraries are loaded
|
||
|
is enough to fix (or work around?) this issue.
|
||
|
|
||
|
Fixes #4891:
|
||
|
https://bugzilla.libsdl.org/show_bug.cgi?id=4891
|
||
|
|
||
|
Upstream: https://hg.libsdl.org/SDL/rev/4f5bef55183c
|
||
|
|
||
|
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
|
||
|
[yann.morin.1998@free.fr: add upstream commit URL]
|
||
|
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
|
||
|
|
||
|
diff -r 01f16d7f36cb -r 4f5bef55183c src/video/kmsdrm/SDL_kmsdrmdyn.c
|
||
|
--- a/src/video/kmsdrm/SDL_kmsdrmdyn.c Thu Dec 19 21:45:44 2019 -0800
|
||
|
+++ b/src/video/kmsdrm/SDL_kmsdrmdyn.c Thu Dec 19 21:47:43 2019 -0800
|
||
|
@@ -50,8 +50,8 @@
|
||
|
#endif
|
||
|
|
||
|
static kmsdrmdynlib kmsdrmlibs[] = {
|
||
|
- {NULL, SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC},
|
||
|
- {NULL, SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM}
|
||
|
+ {NULL, SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM},
|
||
|
+ {NULL, SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC}
|
||
|
};
|
||
|
|
||
|
static void *
|
||
|
|