23e18c4036
Removed patch 0002, applied upstream:068e5f921d
Added patch to fix musl & uclibc build. Renamed option dvbcsa to tvhcsa. Upstream removed the dvbcsa configure option with this commit:4e7f837c70 (diff-e2d5a00791bce9a01f99bc6fd613a39d)
and moved the optional dvbcsa support inside the tvhcsa option block:c76c7e0604/configure (L645)
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
98 lines
2.7 KiB
Diff
98 lines
2.7 KiB
Diff
From 1f879e4b930fef71f030e5b6e5fae359f27d1aec Mon Sep 17 00:00:00 2001
|
|
From: Bernd Kuhls <bernd.kuhls@t-online.de>
|
|
Date: Sat, 23 Jun 2018 20:47:26 +0200
|
|
Subject: [PATCH] configure: check for strlcat & strlcpy
|
|
|
|
Building tvheadend with uclibc and musl fails:
|
|
|
|
src/tvh_string.h:50:22: error: static declaration of 'strlcpy' follows non-static declaration
|
|
static inline size_t strlcpy(char *dst, const char *src, size_t size)
|
|
|
|
src/tvh_string.h:61:22: error: static declaration of 'strlcat' follows non-static declaration
|
|
static inline size_t strlcat(char *dst, const char *src, size_t count)
|
|
|
|
because they provide strlcat & strlcpy:
|
|
https://sourceware.org/glibc/wiki/strlcpy
|
|
|
|
This patch adds configure checks and makes the implementation in
|
|
tvh_string.h optional, the configure log looks like this:
|
|
|
|
glibc
|
|
checking for cc strlcat ... fail
|
|
checking for cc strlcpy ... fail
|
|
|
|
musl
|
|
checking for cc strlcat ... ok
|
|
checking for cc strlcpy ... ok
|
|
|
|
uclibc
|
|
checking for cc strlcat ... ok
|
|
checking for cc strlcpy ... ok
|
|
|
|
Patch sent upstream: https://github.com/tvheadend/tvheadend/pull/1133
|
|
|
|
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
|
---
|
|
configure | 14 ++++++++++++++
|
|
src/tvh_string.h | 4 ++++
|
|
2 files changed, 18 insertions(+)
|
|
|
|
diff --git a/configure b/configure
|
|
index 0857a1958..b183d02b3 100755
|
|
--- a/configure
|
|
+++ b/configure
|
|
@@ -159,6 +159,20 @@ else
|
|
COMPILER=gcc
|
|
fi
|
|
|
|
+check_cc_snippet strlcat '#include <string.h>
|
|
+int test(int argc, char **argv) {
|
|
+ char dst[10];
|
|
+ strlcat("test", dst, sizeof(dst));
|
|
+ return 0;
|
|
+}'
|
|
+
|
|
+check_cc_snippet strlcpy '#include <string.h>
|
|
+int test(int argc, char **argv) {
|
|
+ char dst[10];
|
|
+ strlcpy("test", dst, sizeof(dst));
|
|
+ return 0;
|
|
+}'
|
|
+
|
|
check_cc_snippet getloadavg '#include <stdlib.h>
|
|
void test() { getloadavg(NULL,0); }'
|
|
|
|
diff --git a/src/tvh_string.h b/src/tvh_string.h
|
|
index 87d8c3320..13ef2f308 100644
|
|
--- a/src/tvh_string.h
|
|
+++ b/src/tvh_string.h
|
|
@@ -47,6 +47,7 @@ static inline const char *tvh_strbegins(const char *s1, const char *s2)
|
|
return s1;
|
|
}
|
|
|
|
+#ifndef ENABLE_STRLCPY
|
|
static inline size_t strlcpy(char *dst, const char *src, size_t size)
|
|
{
|
|
size_t ret = strlen(src);
|
|
@@ -57,7 +58,9 @@ static inline size_t strlcpy(char *dst, const char *src, size_t size)
|
|
}
|
|
return ret;
|
|
}
|
|
+#endif
|
|
|
|
+#ifndef ENABLE_STRLCAT
|
|
static inline size_t strlcat(char *dst, const char *src, size_t count)
|
|
{
|
|
size_t dlen = strlen(dst);
|
|
@@ -72,6 +75,7 @@ static inline size_t strlcat(char *dst, const char *src, size_t count)
|
|
dst[len] = '\0';
|
|
return res;
|
|
}
|
|
+#endif
|
|
|
|
#define tvh_strlcatf(buf, size, ptr, fmt...) \
|
|
do { int __r = snprintf((buf) + ptr, (size) - ptr, fmt); \
|
|
--
|
|
2.17.1
|
|
|