From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Adrian Hunter <adrian.hunter@intel.com>,
David Ahern <dsahern@gmail.com>, Jiri Olsa <jolsa@kernel.org>,
Josh Poimboeuf <jpoimboe@redhat.com>,
Namhyung Kim <namhyung@kernel.org>,
Wang Nan <wangnan0@huawei.com>
Subject: [PATCH 28/66] perf tools: Uninline scnprintf() and vscnprint()
Date: Tue, 12 Jul 2016 19:40:03 -0300 [thread overview]
Message-ID: <1468363241-14555-29-git-send-email-acme@kernel.org> (raw)
In-Reply-To: <1468363241-14555-1-git-send-email-acme@kernel.org>
From: Arnaldo Carvalho de Melo <acme@redhat.com>
They were in tools/include/linux/kernel.h, requiring that it in turn
included stdio.h, which is way too heavy.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-855h8olnkot9v0dajuee1lo3@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/include/linux/kernel.h | 28 +++-------------------------
tools/lib/vsprintf.c | 24 ++++++++++++++++++++++++
tools/objtool/builtin-check.c | 1 +
tools/perf/MANIFEST | 1 +
tools/perf/util/Build | 5 +++++
tools/perf/util/color.c | 2 ++
tools/perf/util/dso.h | 1 +
tools/perf/util/help-unknown-cmd.c | 1 +
tools/perf/util/python-ext-sources | 1 +
9 files changed, 39 insertions(+), 25 deletions(-)
create mode 100644 tools/lib/vsprintf.c
diff --git a/tools/include/linux/kernel.h b/tools/include/linux/kernel.h
index 76df53539c2a..28607db02bd3 100644
--- a/tools/include/linux/kernel.h
+++ b/tools/include/linux/kernel.h
@@ -2,8 +2,7 @@
#define __TOOLS_LINUX_KERNEL_H
#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
+#include <stddef.h>
#include <assert.h>
#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
@@ -70,29 +69,8 @@
#define cpu_to_le64(x) (x)
#define cpu_to_le32(x) (x)
-static inline int
-vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
-{
- int i;
- ssize_t ssize = size;
-
- i = vsnprintf(buf, size, fmt, args);
-
- return (i >= ssize) ? (ssize - 1) : i;
-}
-
-static inline int scnprintf(char * buf, size_t size, const char * fmt, ...)
-{
- va_list args;
- ssize_t ssize = size;
- int i;
-
- va_start(args, fmt);
- i = vsnprintf(buf, size, fmt, args);
- va_end(args);
-
- return (i >= ssize) ? (ssize - 1) : i;
-}
+int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
+int scnprintf(char * buf, size_t size, const char * fmt, ...);
/*
* This looks more complex than it should be. But we need to
diff --git a/tools/lib/vsprintf.c b/tools/lib/vsprintf.c
new file mode 100644
index 000000000000..45f9a06daa56
--- /dev/null
+++ b/tools/lib/vsprintf.c
@@ -0,0 +1,24 @@
+#include <sys/types.h>
+#include <linux/kernel.h>
+#include <stdio.h>
+
+int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
+{
+ int i = vsnprintf(buf, size, fmt, args);
+ ssize_t ssize = size;
+
+ return (i >= ssize) ? (ssize - 1) : i;
+}
+
+int scnprintf(char * buf, size_t size, const char * fmt, ...)
+{
+ ssize_t ssize = size;
+ va_list args;
+ int i;
+
+ va_start(args, fmt);
+ i = vsnprintf(buf, size, fmt, args);
+ va_end(args);
+
+ return (i >= ssize) ? (ssize - 1) : i;
+}
diff --git a/tools/objtool/builtin-check.c b/tools/objtool/builtin-check.c
index e8a1e69eb92c..92d84b277032 100644
--- a/tools/objtool/builtin-check.c
+++ b/tools/objtool/builtin-check.c
@@ -26,6 +26,7 @@
*/
#include <string.h>
+#include <stdlib.h>
#include <subcmd/parse-options.h>
#include "builtin.h"
diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST
index f18e781447bc..2bd8c310606c 100644
--- a/tools/perf/MANIFEST
+++ b/tools/perf/MANIFEST
@@ -30,6 +30,7 @@ tools/lib/symbol/kallsyms.h
tools/lib/find_bit.c
tools/lib/bitmap.c
tools/lib/str_error_r.c
+tools/lib/vsprintf.c
tools/include/asm/atomic.h
tools/include/asm/barrier.h
tools/include/asm/bug.h
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index a6a805302312..eda68f582884 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -85,6 +85,7 @@ libperf-y += parse-regs-options.o
libperf-y += term.o
libperf-y += help-unknown-cmd.o
libperf-y += mem-events.o
+libperf-y += vsprintf.o
libperf-$(CONFIG_LIBBPF) += bpf-loader.o
libperf-$(CONFIG_BPF_PROLOGUE) += bpf-prologue.o
@@ -181,3 +182,7 @@ $(OUTPUT)util/str_error_r.o: ../lib/str_error_r.c FORCE
$(OUTPUT)util/hweight.o: ../lib/hweight.c FORCE
$(call rule_mkdir)
$(call if_changed_dep,cc_o_c)
+
+$(OUTPUT)util/vsprintf.o: ../lib/vsprintf.c FORCE
+ $(call rule_mkdir)
+ $(call if_changed_dep,cc_o_c)
diff --git a/tools/perf/util/color.c b/tools/perf/util/color.c
index 47a34b561f5d..dbbf89b050a5 100644
--- a/tools/perf/util/color.c
+++ b/tools/perf/util/color.c
@@ -1,6 +1,8 @@
#include <linux/kernel.h>
#include "cache.h"
#include "config.h"
+#include <stdlib.h>
+#include <stdio.h>
#include "color.h"
#include <math.h>
#include <unistd.h>
diff --git a/tools/perf/util/dso.h b/tools/perf/util/dso.h
index a571f24895ca..ecc4bbd3f82e 100644
--- a/tools/perf/util/dso.h
+++ b/tools/perf/util/dso.h
@@ -4,6 +4,7 @@
#include <linux/atomic.h>
#include <linux/types.h>
#include <linux/rbtree.h>
+#include <sys/types.h>
#include <stdbool.h>
#include <pthread.h>
#include <linux/types.h>
diff --git a/tools/perf/util/help-unknown-cmd.c b/tools/perf/util/help-unknown-cmd.c
index 776e28562345..2821f8d77e52 100644
--- a/tools/perf/util/help-unknown-cmd.c
+++ b/tools/perf/util/help-unknown-cmd.c
@@ -1,5 +1,6 @@
#include "cache.h"
#include "config.h"
+#include <stdio.h>
#include <subcmd/help.h>
#include "../builtin.h"
#include "levenshtein.h"
diff --git a/tools/perf/util/python-ext-sources b/tools/perf/util/python-ext-sources
index 49210b7a7925..5065ec98049c 100644
--- a/tools/perf/util/python-ext-sources
+++ b/tools/perf/util/python-ext-sources
@@ -14,6 +14,7 @@ util/cpumap.c
../lib/find_bit.c
../lib/hweight.c
../lib/str_error_r.c
+../lib/vsprintf.c
util/thread_map.c
util/util.c
util/xyarray.c
--
2.7.4
next prev parent reply other threads:[~2016-07-12 22:42 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-12 22:39 [GIT PULL 00/66] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 01/66] perf hists: Introduce hist_entry__init function Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 02/66] perf hists: Introduce hist_entry_ops Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 03/66] perf hists: Introduce hists__add_entry_ops function Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 04/66] perf ui stdio: Add way to setup the color output mode selection Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 05/66] perf annotate: Introduce --stdio-color " Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 06/66] perf report: " Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 07/66] perf trace beauty msg_flags: Remove MSG_TRYHARD Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 08/66] perf trace beauty flock: Add missing fcntl.h include Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 09/66] perf trace beauty open_flags: Add missing headers Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 10/66] perf trace beauty mmap: Add more conditional defines Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 11/66] perf trace beauty flock: " Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 12/66] perf trace beauty open_flags: " Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 13/66] tools: Introduce str_error_r() Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 14/66] perf bench: Add missing pthread.h include for CPU_*() macros Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 15/66] perf tests: " Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 16/66] perf trace: Add conditional define for AT_FDCWD Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 17/66] perf tests openat-syscall-tp-fields: Add some conditional defines Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 18/66] perf bench: Disentangle headers Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 19/66] perf tools: Move syscall number fallbacks from perf-sys.h to tools/arch/x86/include/asm/ Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 20/66] perf strbuf: Add missing headers Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 21/66] perf quote: Disentangle headers Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 22/66] perf tests cpumap: Add missing headers Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 23/66] perf test fdarray: Add missing poll.h header Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 24/66] perf tests x86 rdpmc: Add missing headers Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 25/66] perf tools: Add missing header to color.c Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 26/66] perf tools: Remove needless includes from cache.h Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 27/66] perf evsel: Uninline the is_function_event method Arnaldo Carvalho de Melo
2016-07-12 22:40 ` Arnaldo Carvalho de Melo [this message]
2016-07-12 22:40 ` [PATCH 29/66] tools lib traceevent: Use str_error_r() Arnaldo Carvalho de Melo
2016-07-12 23:11 ` Steven Rostedt
2016-07-12 23:14 ` Arnaldo Carvalho de Melo
2016-07-12 23:25 ` Steven Rostedt
2016-07-12 23:32 ` Arnaldo Carvalho de Melo
2016-07-13 12:30 ` Steven Rostedt
2016-07-13 13:51 ` Arnaldo Carvalho de Melo
2016-07-13 19:17 ` Steven Rostedt
2016-07-13 20:01 ` Arnaldo Carvalho de Melo
2016-07-14 1:25 ` Steven Rostedt
2016-07-14 1:39 ` Arnaldo Carvalho de Melo
2016-07-17 18:49 ` Jiri Olsa
2016-07-28 16:04 ` Steven Rostedt
2016-07-12 22:40 ` [PATCH 30/66] tools lib api fs: " Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 31/66] tools lib: Guard the strlcpy() header with __GLIBC__ Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 32/66] tools lib subcmd: Use str_error_r() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 33/66] perf bench futex: Add missing compiler.h header Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 34/66] perf tools: event.h needs asm/perf_regs.h Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 35/66] tools: Add copy of perf_event.h to tools/include/linux/ Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 36/66] perf bench: Copy kernel files needed to build mem{cpy,set} x86_64 benchmarks Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 37/66] tools lib bpf: Copy bpf.h and bpf_common.h from the kernel Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 38/66] tools: Copy uapi/asm/perf_regs.h " Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 39/66] perf test bpf: Use epoll_wait() instead of epoll_pwait() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 40/66] tools: Copy uapi/linux/hw_breakpoint.h from the kernel Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 41/66] perf tools: Introduce weak alternative to sched_getcpu() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 42/66] perf tools: Remove unneeded magic.h include from util.h Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 43/66] perf trace: Remove unused sys/ptrace.h include Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 44/66] kvm arm/arm64: Remove trailing whitespace from headers Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 45/66] tools: Copy the header files needed by perf tools Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 46/66] perf tools: Fallback to reading sysfs to get cacheline size Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 47/66] perf trace beauty futex_op: Add missing defines for older systems Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 48/66] perf trace beauty seccomp: Remove seccomp.h include Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 49/66] perf symbols: Provide a GElf_Nhdr typedef Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 50/66] perf script python: Silence -Werror=maybe-uninitialized on gcc 5.3.0 Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 51/66] tools: Copy the bitsperlong.h files from the kernel Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 52/66] perf tools: Add the tools/ stringify copy to the MANIFEST Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 53/66] perf tools: Don't add kernel directories to the header search path Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 54/66] perf intel-pt-decoder: Avoid checking code drift on busibox's diff Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 55/66] perf tools: Add feature detection for gelf_getnote() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 56/66] perf symbols: Add Rust demangling Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 57/66] perf evlist: Make event2evsel public Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 58/66] perf tools: Introduce trace_event__tp_format_id() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 59/66] perf python: Init perf_event_attr::size in perf.evsel constructor Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 60/66] perf python: Fix pyrf_evlist__read_on_cpu event consuming Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 61/66] perf python: Put perf.event objects into dictionary Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 62/66] perf python: Add perf.tracepoint method Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 63/66] perf python: Add struct evsel into struct pyrf_event Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 64/66] perf python: Add support to resolve tracepoint fields Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 65/66] perf python: Add tracepoint example Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 66/66] tools lib traceevent: Add filter on task CPU id Arnaldo Carvalho de Melo
2016-07-13 6:59 ` [GIT PULL 00/66] perf/core improvements and fixes Ingo Molnar
2016-07-13 7:35 ` Ingo Molnar
2016-07-13 20:49 ` Josh Poimboeuf
2016-07-13 20:54 ` Peter Zijlstra
2016-07-13 23:29 ` Arnaldo Carvalho de Melo
2016-07-13 7:37 ` Ingo Molnar
2016-07-13 7:33 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1468363241-14555-29-git-send-email-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=wangnan0@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).