package/multicat: fix HAVE_CLOCK_NANOSLEEP with uClibc

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>
This commit is contained in:
Jörg Krause 2016-03-20 18:55:25 +01:00 committed by Thomas Petazzoni
parent 36acf85340
commit 46271ffa9c

View file

@ -0,0 +1,24 @@
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