mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-10-12 10:32:24 +00:00
151 lines
4.5 KiB
Diff
151 lines
4.5 KiB
Diff
From 1c56d7626dcd86f9d72097cc76d5f46fad6b27f2 Mon Sep 17 00:00:00 2001
|
|
From: Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
Date: Thu, 2 Mar 2017 12:55:49 -0300
|
|
Subject: [PATCH 01/14] tools build: Add test for sched_getcpu()
|
|
|
|
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 <adrian.hunter@intel.com>
|
|
Cc: David Ahern <dsahern@gmail.com>
|
|
Cc: Jiri Olsa <jolsa@kernel.org>
|
|
Cc: Namhyung Kim <namhyung@kernel.org>
|
|
Cc: Wang Nan <wangnan0@huawei.com>
|
|
Link: http://lkml.kernel.org/n/tip-yge89er9g90sc0v6k0a0r5tr@git.kernel.org
|
|
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
(cherry picked from commit 120010cb1eea151d38a3e66f5ffc79a0c3110292)
|
|
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
|
|
---
|
|
tools/build/Makefile.feature | 1 +
|
|
tools/build/feature/Makefile | 6 +++++-
|
|
tools/build/feature/test-all.c | 5 +++++
|
|
tools/build/feature/test-sched_getcpu.c | 7 +++++++
|
|
tools/perf/Makefile.config | 4 ++++
|
|
tools/perf/util/cloexec.h | 6 ------
|
|
tools/perf/util/util.h | 4 ++--
|
|
7 files changed, 24 insertions(+), 9 deletions(-)
|
|
create mode 100644 tools/build/feature/test-sched_getcpu.c
|
|
|
|
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
|
|
index ae52e029dd22..ea0a46b4f65f 100644
|
|
--- a/tools/build/Makefile.feature
|
|
+++ b/tools/build/Makefile.feature
|
|
@@ -63,6 +63,7 @@ FEATURE_TESTS_BASIC := \
|
|
lzma \
|
|
get_cpuid \
|
|
bpf \
|
|
+ sched_getcpu \
|
|
sdt
|
|
|
|
# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
|
|
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
|
|
index ac9c477a2a48..5d5f093b85a1 100644
|
|
--- a/tools/build/feature/Makefile
|
|
+++ b/tools/build/feature/Makefile
|
|
@@ -47,7 +47,8 @@ FILES= \
|
|
test-bpf.bin \
|
|
test-get_cpuid.bin \
|
|
test-sdt.bin \
|
|
- test-cxx.bin
|
|
+ test-cxx.bin \
|
|
+ test-sched_getcpu.bin
|
|
|
|
FILES := $(addprefix $(OUTPUT),$(FILES))
|
|
|
|
@@ -89,6 +90,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
|
|
diff --git a/tools/build/feature/test-all.c b/tools/build/feature/test-all.c
|
|
index 699e43627397..cc6c7c01f4ca 100644
|
|
--- a/tools/build/feature/test-all.c
|
|
+++ b/tools/build/feature/test-all.c
|
|
@@ -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
|
|
@@ -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;
|
|
diff --git a/tools/build/feature/test-sched_getcpu.c b/tools/build/feature/test-sched_getcpu.c
|
|
new file mode 100644
|
|
index 000000000000..c4a148dd7104
|
|
--- /dev/null
|
|
+++ b/tools/build/feature/test-sched_getcpu.c
|
|
@@ -0,0 +1,7 @@
|
|
+#define _GNU_SOURCE
|
|
+#include <sched.h>
|
|
+
|
|
+int main(void)
|
|
+{
|
|
+ return sched_getcpu();
|
|
+}
|
|
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
|
|
index ff375310efe4..07c12686bcd1 100644
|
|
--- a/tools/perf/Makefile.config
|
|
+++ b/tools/perf/Makefile.config
|
|
@@ -296,6 +296,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
|
|
diff --git a/tools/perf/util/cloexec.h b/tools/perf/util/cloexec.h
|
|
index d0d465953d36..94a5a7d829d5 100644
|
|
--- a/tools/perf/util/cloexec.h
|
|
+++ b/tools/perf/util/cloexec.h
|
|
@@ -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 */
|
|
diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h
|
|
index 8b39e8086c2d..d0c7526db145 100644
|
|
--- a/tools/perf/util/util.h
|
|
+++ b/tools/perf/util/util.h
|
|
@@ -353,8 +353,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);
|
|
--
|
|
2.22.0
|
|
|