int ui__error_paranoid(void) { return ui__error("Permission error - are you root?\n" "Consider tweaking /proc/sys/kernel/perf_event_paranoid:\n" " -1 - Not paranoid at all\n" " 0 - Disallow raw tracepoint access for unpriv\n" " 1 - Disallow cpu events for unpriv\n" " 2 - Disallow kernel profiling for unpriv\n"); }
static int perf_session_env__lookup_binutils_path(struct perf_session_env *env, const char *name, const char **path) { int idx; const char *arch, *cross_env; struct utsname uts; const char *const *path_list; char *buf = NULL; arch = normalize_arch(env->arch); if (uname(&uts) < 0) goto out; /* * We don't need to try to find objdump path for native system. * Just use default binutils path (e.g.: "objdump"). */ if (!strcmp(normalize_arch(uts.machine), arch)) goto out; cross_env = getenv("CROSS_COMPILE"); if (cross_env) { if (asprintf(&buf, "%s%s", cross_env, name) < 0) goto out_error; if (buf[0] == '/') { if (access(buf, F_OK) == 0) goto out; goto out_error; } if (lookup_path(buf)) goto out; zfree(&buf); } if (!strcmp(arch, "arm")) path_list = arm_triplets; else if (!strcmp(arch, "powerpc")) path_list = powerpc_triplets; else if (!strcmp(arch, "sh")) path_list = sh_triplets; else if (!strcmp(arch, "s390")) path_list = s390_triplets; else if (!strcmp(arch, "sparc")) path_list = sparc_triplets; else if (!strcmp(arch, "x86")) path_list = x86_triplets; else if (!strcmp(arch, "mips")) path_list = mips_triplets; else { ui__error("binutils for %s not supported.\n", arch); goto out_error; } idx = lookup_triplets(path_list, name); if (idx < 0) { ui__error("Please install %s for %s.\n" "You can add it to PATH, set CROSS_COMPILE or " "override the default using --%s.\n", name, arch, name); goto out_error; } if (asprintf(&buf, "%s%s", path_list[idx], name) < 0) goto out_error; out: *path = buf; return 0; out_error: free(buf); *path = NULL; return -1; }