Skip to content

Commit

Permalink
tools build: Add test for sched_getcpu()
Browse files Browse the repository at this point in the history
Instead of trying to go on adding more ifdef conditions, do a feature
test and define HAVE_SCHED_GETCPU_SUPPORT instead, then use it to
provide the prototype. No need to change the stub, as it is already a
__weak symbol.

Cc: Adrian Hunter <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Wang Nan <[email protected]>
Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
  • Loading branch information
acmel committed Mar 3, 2017
1 parent e3ba76d commit 120010c
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 9 deletions.
1 change: 1 addition & 0 deletions tools/build/Makefile.feature
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ FEATURE_TESTS_BASIC := \
lzma \
get_cpuid \
bpf \
sched_getcpu \
sdt

# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
Expand Down
6 changes: 5 additions & 1 deletion tools/build/feature/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ FILES= \
test-get_cpuid.bin \
test-sdt.bin \
test-cxx.bin \
test-jvmti.bin
test-jvmti.bin \
test-sched_getcpu.bin

FILES := $(addprefix $(OUTPUT),$(FILES))

Expand Down Expand Up @@ -91,6 +92,9 @@ $(OUTPUT)test-libelf.bin:
$(OUTPUT)test-glibc.bin:
$(BUILD)

$(OUTPUT)test-sched_getcpu.bin:
$(BUILD)

DWARFLIBS := -ldw
ifeq ($(findstring -static,${LDFLAGS}),-static)
DWARFLIBS += -lelf -lebl -lz -llzma -lbz2
Expand Down
5 changes: 5 additions & 0 deletions tools/build/feature/test-all.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,10 @@
# include "test-pthread-attr-setaffinity-np.c"
#undef main

#define main main_test_sched_getcpu
# include "test-sched_getcpu.c"
#undef main

# if 0
/*
* Disable libbabeltrace check for test-all, because the requested
Expand Down Expand Up @@ -182,6 +186,7 @@ int main(int argc, char *argv[])
main_test_get_cpuid();
main_test_bpf();
main_test_libcrypto();
main_test_sched_getcpu();
main_test_sdt();

return 0;
Expand Down
7 changes: 7 additions & 0 deletions tools/build/feature/test-sched_getcpu.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#define _GNU_SOURCE
#include <sched.h>

int main(void)
{
return sched_getcpu();
}
4 changes: 4 additions & 0 deletions tools/perf/Makefile.config
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,10 @@ ifdef NO_DWARF
NO_LIBDW_DWARF_UNWIND := 1
endif

ifeq ($(feature-sched_getcpu), 1)
CFLAGS += -DHAVE_SCHED_GETCPU_SUPPORT
endif

ifndef NO_LIBELF
CFLAGS += -DHAVE_LIBELF_SUPPORT
EXTLIBS += -lelf
Expand Down
6 changes: 0 additions & 6 deletions tools/perf/util/cloexec.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,4 @@

unsigned long perf_event_open_cloexec_flag(void);

#ifdef __GLIBC_PREREQ
#if !__GLIBC_PREREQ(2, 6) && !defined(__UCLIBC__)
int sched_getcpu(void) __THROW;
#endif
#endif

#endif /* __PERF_CLOEXEC_H */
4 changes: 2 additions & 2 deletions tools/perf/util/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -355,8 +355,8 @@ void print_binary(unsigned char *data, size_t len,
size_t bytes_per_line, print_binary_t printer,
void *extra);

#if !defined(__GLIBC__) && !defined(__ANDROID__)
extern int sched_getcpu(void);
#ifndef HAVE_SCHED_GETCPU_SUPPORT
int sched_getcpu(void);
#endif

int is_printable_array(char *p, unsigned int len);
Expand Down

0 comments on commit 120010c

Please sign in to comment.