summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2021-10-04 14:35:58 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2021-10-04 15:12:42 +0200
commite5f1554d74e6ef57cf96b7ba67f361c784e645d1 (patch)
treec900fc12a3721687ffb73c4d30e87690ed254412
parentapp-misc/elasticsearch: call tmpfiles_process in 6.8.19 (diff)
downloadgentoo-e5f1554d74e6ef57cf96b7ba67f361c784e645d1.tar.gz
gentoo-e5f1554d74e6ef57cf96b7ba67f361c784e645d1.tar.bz2
gentoo-e5f1554d74e6ef57cf96b7ba67f361c784e645d1.zip
kde-plasma/kwin: Fix build on problematic platforms
Upstream commit df11acd46778e1e43183c2660bc9dcb1a8ad3282 Reported-by: David Flogeras <dflogeras2@gmail.com> Closes: https://bugs.gentoo.org/813228 Package-Manager: Portage-3.0.26, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
-rw-r--r--kde-plasma/kwin/files/kwin-5.22.5-libglvnd-1.3.4.patch35
1 files changed, 25 insertions, 10 deletions
diff --git a/kde-plasma/kwin/files/kwin-5.22.5-libglvnd-1.3.4.patch b/kde-plasma/kwin/files/kwin-5.22.5-libglvnd-1.3.4.patch
index 6db52bdd7492..d185d5e41fe6 100644
--- a/kde-plasma/kwin/files/kwin-5.22.5-libglvnd-1.3.4.patch
+++ b/kde-plasma/kwin/files/kwin-5.22.5-libglvnd-1.3.4.patch
@@ -12,15 +12,30 @@ BUG: 440372
* asturm 2021-09-21: Merged with upstream commits:
38e24ecd6416a975db0989c21b70d6a4cc242f35 "Fix build with 32-bit"
e26ea6bf2313c021db7e5ca5454cd8b1e2e2037f "Fix build on 32bit platforms"
+
+* asturm 2021-10-04: Merged with upstream commit:
+From df11acd46778e1e43183c2660bc9dcb1a8ad3282 Mon Sep 17 00:00:00 2001
+From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
+Date: Tue, 21 Sep 2021 17:34:59 +0300
+Subject: [PATCH] x11: Cast Window to EGLNativeWindowType using a C cast
+
+reinterpret_cast<>() will fail if the types we cast from and to have
+mismatching sizes.
+
+Unfortunately, there are platforms that have Window and
+EGLNativeWindowType of different size. This results in compilation
+errors.
+
+In order to work around those problematic platforms, this change
+replaces reinterpret_cast cast with a c style cast.
---
- src/plugins/platforms/x11/common/eglonxbackend.cpp | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
+ src/plugins/platforms/x11/common/eglonxbackend.cpp | 16 +++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
-diff --git a/src/plugins/platforms/x11/common/eglonxbackend.cpp b/src/plugins/platforms/x11/common/eglonxbackend.cpp
-index c62ec170d..d2900c7c3 100644
+diff -u a/src/plugins/platforms/x11/common/eglonxbackend.cpp b/src/plugins/platforms/x11/common/eglonxbackend.cpp
--- a/src/plugins/platforms/x11/common/eglonxbackend.cpp
+++ b/src/plugins/platforms/x11/common/eglonxbackend.cpp
-@@ -213,15 +213,16 @@ EGLSurface EglOnXBackend::createSurface(xcb_window_t window)
+@@ -213,15 +213,19 @@
return EGL_NO_SURFACE;
}
@@ -38,11 +53,11 @@ index c62ec170d..d2900c7c3 100644
+ surface = eglCreatePlatformWindowSurfaceEXT(eglDisplay(), config(), (void *) &nativeWindow, nullptr);
} else {
- surface = eglCreateWindowSurface(eglDisplay(), config(), window, nullptr);
-+ // eglCreateWindowSurface() expects a Window, not a pointer to the Window.
-+ surface = eglCreateWindowSurface(eglDisplay(), config(), reinterpret_cast<EGLNativeWindowType>(nativeWindow), nullptr);
++ // eglCreateWindowSurface() expects a Window, not a pointer to the Window. Use
++ // a c style cast as there are (buggy) platforms where the size of the Window
++ // type is not the same as the size of EGLNativeWindowType, reinterpret_cast<>()
++ // may not compile.
++ surface = eglCreateWindowSurface(eglDisplay(), config(), (EGLNativeWindowType) nativeWindow, nullptr);
}
return surface;
---
-GitLab
-