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 similarity index 100% rename from package/iozone/iozone-targets.patch rename to 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 + +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 ++#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