summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2023-02-13 13:04:19 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-02-15 10:21:35 +0000
commitaf5e8ae3a23cdc5c6ea65a820530171ca5157b73 (patch)
tree3dcb8b84eb75e8f63f1c76eea0d36ee5b6f98ae5 /meta/recipes-multimedia
parent0e8fcf8b51e2412682b4aba3af07f9548cb3135f (diff)
downloadpoky-af5e8ae3a23cdc5c6ea65a820530171ca5157b73.tar.gz
gstreamer1.0-plugins-good: Fix build with musl
musl's definition of ioctl() API is different from glibc's and gst has built upon definition from glibc which was being warned about but now compilers can check signatures of funciton pointers, means it becomes an error with clang16+ (From OE-Core rev: 840d55a4bf8e908e2b2841496232ffa7c00799e4) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-multimedia')
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch40
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.bb2
2 files changed, 41 insertions, 1 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch
new file mode 100644
index 0000000000..fbbf029a2c
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch
@@ -0,0 +1,40 @@
1From 5ce1e410965ed047a03c09b17796162f0363e396 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 13 Feb 2023 12:47:31 -0800
4Subject: [PATCH] v4l2: Define ioctl_req_t for posix/linux case
5
6this is an issue seen with musl based linux distros e.g. alpine [1]
7musl is not going to change this since it breaks ABI/API interfaces
8Newer compilers are stringent ( e.g. clang16 ) which can now detect
9signature mismatches in function pointers too, existing code warned but
10did not error with older clang
11
12Fixes
13gstv4l2object.c:544:23: error: incompatible function pointer types assigning to 'gint (*)(gint, ioctl_req_t, ...)' (aka 'int (*)(int, unsigned long, ...)') from 'int (int, int, ...)' [-Wincompatible-function-pointer-types]
14 v4l2object->ioctl = ioctl;
15 ^ ~~~~~
16
17[1] https://gitlab.alpinelinux.org/alpine/aports/-/issues/7580
18
19Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3950]
20Signed-off-by: Khem Raj <raj.khem@gmail.com>
21---
22 sys/v4l2/gstv4l2object.h | 2 ++
23 1 file changed, 2 insertions(+)
24
25diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
26index 3a5c961..4f43008 100644
27--- a/sys/v4l2/gstv4l2object.h
28+++ b/sys/v4l2/gstv4l2object.h
29@@ -76,6 +76,8 @@ typedef gboolean (*GstV4l2UpdateFpsFunction) (GstV4l2Object * v4l2object);
30 * 'unsigned long' for the 2nd parameter */
31 #ifdef __ANDROID__
32 typedef unsigned ioctl_req_t;
33+#elif defined(__linux__) && !defined(__GLIBC__) /* musl/linux */
34+typedef int ioctl_req_t;
35 #else
36 typedef gulong ioctl_req_t;
37 #endif
38--
392.39.1
40
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.bb
index 85f8a247b1..ef4d82c598 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.bb
@@ -6,7 +6,7 @@ BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues
6 6
7SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ 7SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
8 file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \ 8 file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \
9 " 9 file://0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch"
10 10
11SRC_URI[sha256sum] = "582e617271e7f314d1a2211e3e3856ae2e4303c8c0d6114e9c4a5ea5719294b0" 11SRC_URI[sha256sum] = "582e617271e7f314d1a2211e3e3856ae2e4303c8c0d6114e9c4a5ea5719294b0"
12 12