summaryrefslogtreecommitdiffstats
path: root/package/iozone
diff options
context:
space:
mode:
Diffstat (limited to 'package/iozone')
-rw-r--r--package/iozone/Config.in1
-rw-r--r--package/iozone/iozone-01-targets.patch (renamed from package/iozone/iozone-targets.patch)0
-rw-r--r--package/iozone/iozone-02-no-nptl-support.patch37
3 files changed, 37 insertions, 1 deletions
diff --git a/package/iozone/Config.in b/package/iozone/Config.in
index 33e12ca77c..26d4daafe0 100644
--- a/package/iozone/Config.in
+++ b/package/iozone/Config.in
@@ -1,7 +1,6 @@
config BR2_PACKAGE_IOZONE
bool "iozone"
depends on BR2_USE_MMU # fork()
- depends on !BR2_UCLIBC_VERSION_0_9_31 # no pthread_setaffinity_np
help
IOzone is a filesystem benchmark tool.
The benchmark generates and measures a variety of file operations
diff --git a/package/iozone/iozone-targets.patch b/package/iozone/iozone-01-targets.patch
index 258b960928..258b960928 100644
--- a/package/iozone/iozone-targets.patch
+++ b/package/iozone/iozone-01-targets.patch
diff --git a/package/iozone/iozone-02-no-nptl-support.patch b/package/iozone/iozone-02-no-nptl-support.patch
new file mode 100644
index 0000000000..493f52cc77
--- /dev/null
+++ b/package/iozone/iozone-02-no-nptl-support.patch
@@ -0,0 +1,37 @@
+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
OpenPOWER on IntegriCloud