Skip to content

Commit

Permalink
perf llvm: Use realpath to canonicalize paths
Browse files Browse the repository at this point in the history
To kill the last user of make_nonrelative_path(), that gets ditched,
one more panicking function killed.

Cc: Adrian Hunter <adrian.hunter@intel.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-3hu56rvyh4q5gxogovb6ko8a@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
acmel committed Mar 23, 2016
1 parent 0741208 commit 7847826
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 44 deletions.
1 change: 0 additions & 1 deletion tools/perf/util/Build
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
libperf-y += abspath.o
libperf-y += alias.o
libperf-y += annotate.o
libperf-y += build-id.o
Expand Down
37 changes: 0 additions & 37 deletions tools/perf/util/abspath.c

This file was deleted.

1 change: 0 additions & 1 deletion tools/perf/util/cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ static inline int is_absolute_path(const char *path)
return path[0] == '/';
}

const char *make_nonrelative_path(const char *path);
char *strip_path_suffix(const char *path, const char *suffix);

char *mkpath(const char *fmt, ...) __attribute__((format (printf, 1, 2)));
Expand Down
17 changes: 12 additions & 5 deletions tools/perf/util/llvm-utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
* Copyright (C) 2015, Huawei Inc.
*/

#include <limits.h>
#include <stdio.h>
#include "util.h"
#include <stdlib.h>
#include "debug.h"
#include "llvm-utils.h"
#include "cache.h"

#define CLANG_BPF_CMD_DEFAULT_TEMPLATE \
"$CLANG_EXEC -D__KERNEL__ -D__NR_CPUS__=$NR_CPUS "\
Expand Down Expand Up @@ -334,10 +334,18 @@ int llvm__compile_bpf(const char *path, void **p_obj_buf,
unsigned int kernel_version;
char linux_version_code_str[64];
const char *clang_opt = llvm_param.clang_opt;
char clang_path[PATH_MAX], nr_cpus_avail_str[64];
char clang_path[PATH_MAX], abspath[PATH_MAX], nr_cpus_avail_str[64];
char serr[STRERR_BUFSIZE];
char *kbuild_dir = NULL, *kbuild_include_opts = NULL;
const char *template = llvm_param.clang_bpf_cmd_template;

if (path[0] != '-' && realpath(path, abspath) == NULL) {
err = errno;
pr_err("ERROR: problems with path %s: %s\n",
path, strerror_r(err, serr, sizeof(serr)));
return -err;
}

if (!template)
template = CLANG_BPF_CMD_DEFAULT_TEMPLATE;

Expand Down Expand Up @@ -387,8 +395,7 @@ int llvm__compile_bpf(const char *path, void **p_obj_buf,
* stdin to be source file (testing).
*/
force_set_env("CLANG_SOURCE",
(path[0] == '-') ? path :
make_nonrelative_path(path));
(path[0] == '-') ? path : abspath);

pr_debug("llvm compiling command template: %s\n", template);
err = read_from_pipe(template, &obj_buf, &obj_buf_sz);
Expand Down

0 comments on commit 7847826

Please sign in to comment.