perf tools: Move the build-id storage operations to headers
So that it makes easier to control it. Especially because we
plan to give it a feature section.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
LKML-Reference: <1257911467-28276-2-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 9f98b86..c35e61b 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -378,39 +378,11 @@
nr_cpu++;
}
-static bool write_buildid_table(void)
-{
- struct dso *pos;
- bool have_buildid = false;
-
- list_for_each_entry(pos, &dsos, node) {
- struct build_id_event b;
- size_t len;
-
- if (filename__read_build_id(pos->long_name,
- &b.build_id,
- sizeof(b.build_id)) < 0)
- continue;
- have_buildid = true;
- memset(&b.header, 0, sizeof(b.header));
- len = strlen(pos->long_name) + 1;
- len = ALIGN(len, 64);
- b.header.size = sizeof(b) + len;
- write_output(&b, sizeof(b));
- write_output(pos->long_name, len);
- }
-
- return have_buildid;
-}
-
static void atexit_header(void)
{
header->data_size += bytes_written;
- if (write_buildid_table())
- perf_header__set_feat(header, HEADER_BUILD_ID);
-
- perf_header__write(header, output);
+ perf_header__write(header, output, true);
}
static int __cmd_record(int argc, const char **argv)
@@ -487,7 +459,7 @@
}
if (file_new)
- perf_header__write(header, output);
+ perf_header__write(header, output, false);
if (!system_wide)
event__synthesize_thread(pid, process_synthesized_event);