void-packages/srcpkgs/v4l-utils/patches/musl.patch

47 lines
1.7 KiB
Diff

--- a/utils/ir-ctl/ir-ctl.c 2017-01-25 17:27:44.373665101 +0000
+++ b/utils/ir-ctl/ir-ctl.c 2017-01-25 17:27:51.052665445 +0000
@@ -44,6 +44,24 @@
# define N_(string) string
+#ifndef TEMP_FAILURE_RETRY
+#define TEMP_FAILURE_RETRY(expression) \
+ (__extension__ \
+ ({ long int __result; \
+ do __result = (long int) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+#endif
+
+#ifndef strndupa
+#define strndupa(s, n) \
+ (__extension__ ({const char *__in = (s); \
+ size_t __len = strnlen (__in, (n)) + 1; \
+ char *__out = (char *) alloca (__len); \
+ __out[__len-1] = '\0'; \
+ (char *) memcpy (__out, __in, __len-1);}))
+#endif
+
/* See drivers/media/rc/ir-lirc-codec.c line 23 */
#define LIRCBUF_SIZE 512
--- a/lib/libdvbv5/dvb-dev-local.c
+++ b/lib/libdvbv5/dvb-dev-local.c
@@ -60,6 +60,16 @@ struct dvb_dev_local_priv {
void *user_priv;
};
+/* taken from glibc unistd.h and fixes musl */
+#ifndef TEMP_FAILURE_RETRY
+#define TEMP_FAILURE_RETRY(expression) \
+ (__extension__ \
+ ({ long int __result; \
+ do __result = (long int) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+#endif
+
static int handle_device_change(struct dvb_device_priv *dvb,
struct udev_device *dev,
const char *syspath,