diff options
author | Khem Raj <raj.khem@gmail.com> | 2023-02-13 13:04:19 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-02-15 10:21:35 +0000 |
commit | af5e8ae3a23cdc5c6ea65a820530171ca5157b73 (patch) | |
tree | 3dcb8b84eb75e8f63f1c76eea0d36ee5b6f98ae5 /meta/recipes-multimedia | |
parent | 0e8fcf8b51e2412682b4aba3af07f9548cb3135f (diff) | |
download | poky-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')
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 @@ | |||
1 | From 5ce1e410965ed047a03c09b17796162f0363e396 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Mon, 13 Feb 2023 12:47:31 -0800 | ||
4 | Subject: [PATCH] v4l2: Define ioctl_req_t for posix/linux case | ||
5 | |||
6 | this is an issue seen with musl based linux distros e.g. alpine [1] | ||
7 | musl is not going to change this since it breaks ABI/API interfaces | ||
8 | Newer compilers are stringent ( e.g. clang16 ) which can now detect | ||
9 | signature mismatches in function pointers too, existing code warned but | ||
10 | did not error with older clang | ||
11 | |||
12 | Fixes | ||
13 | gstv4l2object.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 | |||
19 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3950] | ||
20 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
21 | --- | ||
22 | sys/v4l2/gstv4l2object.h | 2 ++ | ||
23 | 1 file changed, 2 insertions(+) | ||
24 | |||
25 | diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h | ||
26 | index 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 | -- | ||
39 | 2.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 | ||
7 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ | 7 | SRC_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 | ||
11 | SRC_URI[sha256sum] = "582e617271e7f314d1a2211e3e3856ae2e4303c8c0d6114e9c4a5ea5719294b0" | 11 | SRC_URI[sha256sum] = "582e617271e7f314d1a2211e3e3856ae2e4303c8c0d6114e9c4a5ea5719294b0" |
12 | 12 | ||