blob: 493f52cc77ca7818017f7a979e8000ab7f566b35 [file] [log] [blame] [edit]
Dummy pthread_setaffinity_np() when not available
On uClibc configurations that do not use the NPTL thread
implementation, pthread_setaffinity_np() is not available. This patch
defines a dummy (empty) implementation of this function for such
cases.
The only few architectures that do not provide the NPTL thread
implementation are very likely to be non-SMP architectures, and
therefore, setting the affinity of the thread is not doing anything
useful, so having an empty stub for pthread_setaffinity_np() is not a
problem.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/src/current/iozone.c
===================================================================
--- a/src/current/iozone.c
+++ b/src/current/iozone.c
@@ -306,6 +306,17 @@
#endif
#endif
+#if defined (__linux__)
+#include <features.h>
+#if defined (__UCLIBC__) && !defined (__UCLIBC_HAS_THREADS_NATIVE__)
+static int pthread_setaffinity_np(pthread_t thread, size_t cpusetsize,
+ const cpu_set_t *cpuset)
+{
+ return 0;
+}
+#endif
+#endif
+
#if ((defined(solaris) && defined(__LP64__)) || defined(__s390x__))
/* If we are building for 64-bit Solaris, all functions that return pointers
* must be declared before they are used; otherwise the compiler will assume