mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-30 22:11:59 -09:00
package/rpi-userland: add GLint64, GLuint64 and GLsync typedefs to GLES2/gl2ext.h
Fixes:
- https://bugs.busybox.net/show_bug.cgi?id=13796
.../host/arm-linucleus-linux-gnueabihf/sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: error: conflicting declaration ‘typedef void* GLsync’
40 | typedef gpointer GLsync;
| ^~~~~~
.../host/arm-linucleus-linux-gnueabihf/sysroot/usr/include/qt5/QtGui/qopengles2ext.h:24:26: note: previous declaration as ‘typedef struct __GLsync* GLsync’
24 | typedef struct __GLsync *GLsync;
| ^~~~~~
File gstgl_compat.h:
39 #if !GST_GL_HAVE_GLSYNC
40 typedef gpointer GLsync;
41 #endif
File qopengles2ext.h:
1 #ifndef __gles2_gl2ext_h_
2 #define __gles2_gl2ext_h_ 1
3
4 #if 0
5 #pragma qt_no_master_include
6 #pragma qt_sync_skip_header_check
7 #pragma qt_sync_stop_processing
8 #endif
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 #ifndef __gl3_h_
15 /* These types are defined with reference to <inttypes.h>
16 * in the Apple extension spec, but here we use the Khronos
17 * portable types in khrplatform.h, and assume those types
18 * are always defined.
19 * If any other extensions using these types are defined,
20 * the typedefs must move out of this block and be shared.
21 */
22 typedef khronos_int64_t GLint64;
23 typedef khronos_uint64_t GLuint64;
24 typedef struct __GLsync *GLsync;
25 #endif
The problem is that rpi-userland doesn't define GLsync, and both
GStreamer and Qt have their own definition of GLsync in this case, but
they are not the same.
We reported this issue to:
* rpi-userland, to get the headers updated:
https://github.com/raspberrypi/userland/issues/469#issuecomment-1193864294
* gstreamer, to get their bogus definition of GLsync fixed:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/973
In the mean time, fix this by adding the missing definitions to
rpi-userland, so that GStreamer and Qt don't try to provide their own.
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit e008c0bb10)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
committed by
Peter Korsgaard
parent
0fa5de37f1
commit
69af5ab34f
@@ -0,0 +1,99 @@
|
|||||||
|
From ffb8eafe2d745ddf2f44101ffc4e6599ed096e69 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Seiderer <ps.report@gmx.net>
|
||||||
|
Date: Mon, 10 May 2021 19:15:48 +0200
|
||||||
|
Subject: [PATCH] GLES2/gl2ext.h: add GLint64, GLuint64 and GLsync typedefs
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Fixes:
|
||||||
|
|
||||||
|
.../host/arm-linucleus-linux-gnueabihf/sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: error: conflicting declaration ‘typedef void* GLsync’
|
||||||
|
40 | typedef gpointer GLsync;
|
||||||
|
| ^~~~~~
|
||||||
|
|
||||||
|
.../host/arm-linucleus-linux-gnueabihf/sysroot/usr/include/qt5/QtGui/qopengles2ext.h:24:26: note: previous declaration as ‘typedef struct __GLsync* GLsync’
|
||||||
|
24 | typedef struct __GLsync *GLsync;
|
||||||
|
| ^~~~~~
|
||||||
|
|
||||||
|
File gstgl_compat.h:
|
||||||
|
|
||||||
|
39 #if !GST_GL_HAVE_GLSYNC
|
||||||
|
40 typedef gpointer GLsync;
|
||||||
|
41 #endif
|
||||||
|
|
||||||
|
File qopengles2ext.h:
|
||||||
|
|
||||||
|
1 #ifndef __gles2_gl2ext_h_
|
||||||
|
2 #define __gles2_gl2ext_h_ 1
|
||||||
|
3
|
||||||
|
4 #if 0
|
||||||
|
5 #pragma qt_no_master_include
|
||||||
|
6 #pragma qt_sync_skip_header_check
|
||||||
|
7 #pragma qt_sync_stop_processing
|
||||||
|
8 #endif
|
||||||
|
9
|
||||||
|
10 #ifdef __cplusplus
|
||||||
|
11 extern "C" {
|
||||||
|
12 #endif
|
||||||
|
13
|
||||||
|
14 #ifndef __gl3_h_
|
||||||
|
15 /* These types are defined with reference to <inttypes.h>
|
||||||
|
16 * in the Apple extension spec, but here we use the Khronos
|
||||||
|
17 * portable types in khrplatform.h, and assume those types
|
||||||
|
18 * are always defined.
|
||||||
|
19 * If any other extensions using these types are defined,
|
||||||
|
20 * the typedefs must move out of this block and be shared.
|
||||||
|
21 */
|
||||||
|
22 typedef khronos_int64_t GLint64;
|
||||||
|
23 typedef khronos_uint64_t GLuint64;
|
||||||
|
24 typedef struct __GLsync *GLsync;
|
||||||
|
25 #endif
|
||||||
|
|
||||||
|
The problem is that rpi-userland doesn't define GLsync, and both
|
||||||
|
GStreamer and Qt have their own definition of GLsync in this case, but
|
||||||
|
they are not the same.
|
||||||
|
|
||||||
|
We reported this issue to:
|
||||||
|
|
||||||
|
* rpi-userland, to get the headers updated:
|
||||||
|
https://github.com/raspberrypi/userland/issues/469#issuecomment-1193864294
|
||||||
|
|
||||||
|
* gstreamer, to get their bogus definition of GLsync fixed:
|
||||||
|
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/973
|
||||||
|
|
||||||
|
In the mean time, fix this by adding the missing definitions to
|
||||||
|
rpi-userland, so that GStreamer and Qt don't try to provide their own.
|
||||||
|
|
||||||
|
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
|
||||||
|
---
|
||||||
|
interface/khronos/include/GLES2/gl2ext.h | 13 +++++++++++++
|
||||||
|
1 file changed, 13 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/include/GLES2/gl2ext.h b/interface/khronos/include/GLES2/gl2ext.h
|
||||||
|
index 4eacf7f..96e87ec 100644
|
||||||
|
--- a/interface/khronos/include/GLES2/gl2ext.h
|
||||||
|
+++ b/interface/khronos/include/GLES2/gl2ext.h
|
||||||
|
@@ -33,6 +33,19 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#ifndef __gl3_h_
|
||||||
|
+/* These types are defined with reference to <inttypes.h>
|
||||||
|
+ * in the Apple extension spec, but here we use the Khronos
|
||||||
|
+ * portable types in khrplatform.h, and assume those types
|
||||||
|
+ * are always defined.
|
||||||
|
+ * If any other extensions using these types are defined,
|
||||||
|
+ * the typedefs must move out of this block and be shared.
|
||||||
|
+ */
|
||||||
|
+typedef khronos_int64_t GLint64;
|
||||||
|
+typedef khronos_uint64_t GLuint64;
|
||||||
|
+typedef struct __GLsync *GLsync;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* We want this */
|
||||||
|
#ifndef GL_GLEXT_PROTOTYPES
|
||||||
|
#define GL_GLEXT_PROTOTYPES
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
||||||
Reference in New Issue
Block a user