Re: [PATCH 5/5] perf tools: [uclibc] provide stub for pthread_attr_setaffinity_np

Namhyung Kim
2015-01-08T07:58:57Z

On Tue, Jan 06, 2015 at 07:22:15PM +0530, Vineet Gupta wrote:
> uClibc Linuxthreads.old doesnt support pthread_attr_setaffinity_np()
> call
>
> ----------------->8-----------------------
> CC bench/futex-hash.o
> CC bench/futex-wake.o
> bench/futex-hash.c: In function 'bench_futex_hash':
> bench/futex-hash.c:161:3: error: implicit declaration of function
> 'pthread_attr_setaffinity_np' [-Werror=implicit-function-declaration]
> ret = pthread_attr_setaffinity_np(&thread_attr, sizeof(cpu_set_t),
> &cpu);
> ^
> bench/futex-hash.c:161:3: error: nested extern declaration of
> 'pthread_attr_setaffinity_np' [-Werror=nested-externs]
> ----------------->8-----------------------
>
> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
> ---
> tools/perf/bench/futex.h | 13 +++++++++++++
> tools/perf/config/Makefile | 6 ++++++
> tools/perf/config/feature-checks/Makefile | 4 ++++
> tools/perf/config/feature-checks/test-all.c | 5 +++++
> 4 files changed, 28 insertions(+)

It seems that you fotgot to add the real test file
(test-pthread_attr_setaffinity_np.c?) here..

Thanks,
Namhyung

>
> diff --git a/tools/perf/bench/futex.h b/tools/perf/bench/futex.h
> index 71f2844cf97f..7ed22ff1e1ac 100644
> --- a/tools/perf/bench/futex.h
> +++ b/tools/perf/bench/futex.h
> @@ -68,4 +68,17 @@ futex_cmp_requeue(u_int32_t *uaddr, u_int32_t val, u_int32_t *uaddr2, int nr_wak
> val, opflags);
> }
>
> +#ifndef HAVE_PTHREAD_ATTR_SETAFFINITY_NP
> +#include <pthread.h>
> +static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr,
> + size_t cpusetsize,
> + cpu_set_t *cpuset)
> +{
> + attr = attr;
> + cpusetsize = cpusetsize;
> + cpuset = cpuset;
> + return 0;
> +}
> +#endif
> +
> #endif /* _FUTEX_H */
> diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
> index 5d4b039fe1ed..6b59662136fa 100644
> --- a/tools/perf/config/Makefile
> +++ b/tools/perf/config/Makefile
> @@ -198,6 +198,7 @@ CORE_FEATURE_TESTS = \
> libpython-version \
> libslang \
> libunwind \
> + pthread-attr-setaffinity-np \
> stackprotector-all \
> timerfd \
> libdw-dwarf-unwind \
> @@ -226,6 +227,7 @@ VF_FEATURE_TESTS = \
> libelf-getphdrnum \
> libelf-mmap \
> libpython-version \
> + pthread-attr-setaffinity-np \
> stackprotector-all \
> timerfd \
> libunwind-debug-frame \
> @@ -301,6 +303,10 @@ ifeq ($(feature-sync-compare-and-swap), 1)
> CFLAGS += -DHAVE_SYNC_COMPARE_AND_SWAP_SUPPORT
> endif
>
> +ifeq ($(feature-pthread-attr-setaffinity-np), 1)
> + CFLAGS += -DHAVE_PTHREAD_ATTR_SETAFFINITY_NP
> +endif
> +
> ifndef NO_BIONIC
> $(call feature_check,bionic)
> ifeq ($(feature-bionic), 1)
> diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile
> index 53f19b5dbc37..e9b99bb29348 100644
> --- a/tools/perf/config/feature-checks/Makefile
> +++ b/tools/perf/config/feature-checks/Makefile
> @@ -25,6 +25,7 @@ FILES= \
> test-libslang.bin \
> test-libunwind.bin \
> test-libunwind-debug-frame.bin \
> + test-pthread-attr-setaffinity-np.bin \
> test-stackprotector-all.bin \
> test-timerfd.bin \
> test-libdw-dwarf-unwind.bin \
> @@ -47,6 +48,9 @@ test-all.bin:
> test-hello.bin:
> $(BUILD)
>
> +test-pthread-attr-setaffinity-np.bin:
> + $(BUILD) -Werror
> +
> test-stackprotector-all.bin:
> $(BUILD) -Werror -fstack-protector-all
>
> diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c
> index 652e0098eba6..6d4d09323922 100644
> --- a/tools/perf/config/feature-checks/test-all.c
> +++ b/tools/perf/config/feature-checks/test-all.c
> @@ -97,6 +97,10 @@
> # include "test-zlib.c"
> #undef main
>
> +#define main main_test_pthread_attr_setaffinity_np
> +# include "test-pthread_attr_setaffinity_np.c"
> +#undef main
> +
> int main(int argc, char *argv[])
> {
> main_test_libpython();
> @@ -121,6 +125,7 @@ int main(int argc, char *argv[])
> main_test_libdw_dwarf_unwind();
> main_test_sync_compare_and_swap(argc, argv);
> main_test_zlib();
> + main_test_pthread_attr_setaffinity_np();
>
> return 0;
> }
> --
> 1.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/