| From 5ce1e410965ed047a03c09b17796162f0363e396 Mon Sep 17 00:00:00 2001 |
| From: Khem Raj <raj.khem@gmail.com> |
| Date: Mon, 13 Feb 2023 12:47:31 -0800 |
| Subject: [PATCH] v4l2: Define ioctl_req_t for posix/linux case |
| |
| this is an issue seen with musl based linux distros e.g. alpine [1] |
| musl is not going to change this since it breaks ABI/API interfaces |
| Newer compilers are stringent ( e.g. clang16 ) which can now detect |
| signature mismatches in function pointers too, existing code warned but |
| did not error with older clang |
| |
| Fixes |
| 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] |
| v4l2object->ioctl = ioctl; |
| ^ ~~~~~ |
| |
| [1] https://gitlab.alpinelinux.org/alpine/aports/-/issues/7580 |
| |
| Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3950] |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| --- |
| sys/v4l2/gstv4l2object.h | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h |
| index 3a5c961..4f43008 100644 |
| --- a/sys/v4l2/gstv4l2object.h |
| +++ b/sys/v4l2/gstv4l2object.h |
| @@ -76,6 +76,8 @@ typedef gboolean (*GstV4l2UpdateFpsFunction) (GstV4l2Object * v4l2object); |
| * 'unsigned long' for the 2nd parameter */ |
| #ifdef __ANDROID__ |
| typedef unsigned ioctl_req_t; |
| +#elif defined(__linux__) && !defined(__GLIBC__) /* musl/linux */ |
| +typedef int ioctl_req_t; |
| #else |
| typedef gulong ioctl_req_t; |
| #endif |
| -- |
| 2.39.1 |
| |