From 047924d35590e0632af85e4a751fe72c73b048ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= Date: Wed, 27 Feb 2013 00:38:06 +0100 Subject: perf: Merge fixes from AOSP's platform/external/linux-tools-perf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge various Bionic related patches from AOSP's platform/external/linux-tools-perf branch. Fixes crashes spotted in iKS builds. Signed-off-by: Bernhard Rosenkränzer Conflicts: tools/perf/util/symbol.c Conflicts: tools/perf/builtin-stat.c --- tools/perf/builtin-record.c | 4 ++++ tools/perf/builtin-sched.c | 2 +- tools/perf/builtin-stat.c | 4 ++++ tools/perf/util/annotate.c | 4 ++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index a41ac41546c..8d41729e8b7 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -372,7 +372,11 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv) if (!fstat(STDOUT_FILENO, &st) && S_ISFIFO(st.st_mode)) opts->pipe_output = true; else +#ifdef __BIONIC__ + rec->output_name = output_name = "/data/perf.data"; +#else rec->output_name = output_name = "perf.data"; +#endif } if (output_name) { if (!strcmp(output_name, "-")) diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index d8c51b2f263..96dbab0de2f 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c @@ -514,7 +514,7 @@ static void create_tasks(struct perf_sched *sched) err = pthread_attr_init(&attr); BUG_ON(err); err = pthread_attr_setstacksize(&attr, - (size_t) max(16 * 1024, PTHREAD_STACK_MIN)); + (size_t) max((unsigned)16 * 1024, (unsigned)PTHREAD_STACK_MIN)); BUG_ON(err); err = pthread_mutex_lock(&sched->start_work_mutex); BUG_ON(err); diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index f686d5ff594..9d4a9c49ec0 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -833,7 +833,11 @@ static void abs_printout(int cpu, int nr, struct perf_evsel *evsel, double avg) if (csv_output) fmt = "%.0f%s%s"; else if (big_num) +#ifdef __BIONIC__ + fmt = "%18.0f%s%-25s"; +#else fmt = "%'18.0f%s%-25s"; +#endif else fmt = "%18.0f%s%-25s"; diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 7eae5488ece..2552dfdff76 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -1112,7 +1112,11 @@ static int symbol__get_source_line(struct symbol *sym, struct map *map, if (!notes->src->lines) return -1; +#ifdef __BIONIC__ + start = sym->start; +#else start = map__rip_2objdump(map, sym->start); +#endif for (i = 0; i < len; i++) { char *path = NULL; -- cgit v1.2.3