2018-03-13 13:58:10

by Martin Vuille

[permalink] [raw]
Subject: [PATCH RESEND] perf annotate: Don't prepend symfs path to build_id_filename

build_id_filename already contains symfs path if applicable, so
don't prepend it a second time.

- dso__build_id_filename calls build_id_cache__linkname
- build_id_cache__linkname uses buildid_dir
- when symfs option is specified, symbol__config_symfs sets
buildid_dir to include the symfs directory

Signed-off-by: Martin Vuille <[email protected]>
---
tools/perf/util/annotate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 007170efa014..0b78cc4fb155 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -1381,7 +1381,7 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil

build_id_filename = dso__build_id_filename(dso, NULL, 0, false);
if (build_id_filename) {
- __symbol__join_symfs(filename, filename_size, build_id_filename);
+ scnprintf(filename, filename_size, "%s", build_id_filename);
free(build_id_filename);
} else {
if (dso->has_build_id)
--
2.13.6



2018-03-23 12:18:08

by Martin Vuille

[permalink] [raw]
Subject: Re: [PATCH RESEND] perf annotate: Don't prepend symfs path to build_id_filename

Ping?


On 03/13/18 09:56, Martin Vuille wrote:
> build_id_filename already contains symfs path if applicable, so
> don't prepend it a second time.
>
> - dso__build_id_filename calls build_id_cache__linkname
> - build_id_cache__linkname uses buildid_dir
> - when symfs option is specified, symbol__config_symfs sets
> buildid_dir to include the symfs directory
>
> Signed-off-by: Martin Vuille <[email protected]>
> ---
> tools/perf/util/annotate.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
> index 007170efa014..0b78cc4fb155 100644
> --- a/tools/perf/util/annotate.c
> +++ b/tools/perf/util/annotate.c
> @@ -1381,7 +1381,7 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
>
> build_id_filename = dso__build_id_filename(dso, NULL, 0, false);
> if (build_id_filename) {
> - __symbol__join_symfs(filename, filename_size, build_id_filename);
> + scnprintf(filename, filename_size, "%s", build_id_filename);
> free(build_id_filename);
> } else {
> if (dso->has_build_id)