multicat uses clock_nanosleep() conditionally if HAVE_CLOCK_NANOSLEEP is
defined. Unfortunatly, multicat does not use autoconf to check if
clock_nanosleep() is really available, but defines it if __APPLE__ is not
defined.
With uClibc clock_nanosleep() is not available if the C library is configured
without NPTL support (sets __UCLIBC_HAS_THREADS_NATIVE__) or
__UCLIBC_HAS_ADVANCED_REALTIME__ is not set.
Fixes:
http://autobuild.buildroot.net/results/84f/
84f8302ee94e6e6849f6b26cb697c2f9986bafe5/
http://autobuild.buildroot.net/results/9e0/
9e07a98e87755c992254295c46edb0dace967a21/
http://autobuild.buildroot.net/results/4b0/
4b07d276d7c09f2fc2d63c8c37c92519cfe36dbc/
http://autobuild.buildroot.net/results/84f/
84f8302ee94e6e6849f6b26cb697c2f9986bafe5/
and many more.
Upstream status: Pending
https://mailman.videolan.org/pipermail/multicat-devel/2016-March/000129.html
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
--- /dev/null
+uClibc may be configured without support for clock_nanosleep(). The function is
+only available with uClibc if the C library is build with NPTL support (sets
+__UCLIBC_HAS_THREADS_NATIVE__) and __UCLIBC_HAS_ADVANCED_REALTIME__ set.
+
+Upstream status: Pending
+https://mailman.videolan.org/pipermail/multicat-devel/2016-March/000129.html
+
+Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
+
+diff -purN multicat-2.1.orig/util.h multicat-2.1/util.h
+--- multicat-2.1.orig/util.h 2015-07-15 22:47:39.000000000 +0200
++++ multicat-2.1/util.h 2016-03-20 18:13:51.899780405 +0100
+@@ -26,7 +26,10 @@
+
+ #ifdef __APPLE__
+ #define POLLRDHUP 0
+-#else
++/* uClibc may not have clock_nanosleep() available */
++#elif !defined (__UCLIBC__) || \
++ defined (__UCLIBC__) && defined (__UCLIBC_HAS_THREADS_NATIVE__) \
++ && defined (__UCLIBC_HAS_ADVANCED_REALTIME__)
+ #define HAVE_CLOCK_NANOSLEEP
+ #endif
+