Re: [PATCH] perf tools: Restore proper cwd on return from mnt ns

From: Arnaldo Carvalho de Melo
Date: Mon Nov 19 2018 - 11:10:12 EST


Em Thu, Nov 01, 2018 at 06:00:01PM +0100, Jiri Olsa escreveu:
> Adding the current working directory to be part of the cookie
> and restoring it in the nsinfo__mountns_exit call.

> diff --git a/tools/perf/util/namespaces.c b/tools/perf/util/namespaces.c
> index cf8bd123cf73..fb0458b7e6aa 100644
> --- a/tools/perf/util/namespaces.c
> +++ b/tools/perf/util/namespaces.c

> @@ -199,9 +201,13 @@ void nsinfo__mountns_enter(struct nsinfo *nsi,
> if (snprintf(curpath, PATH_MAX, "/proc/self/ns/mnt") >= PATH_MAX)
> return;

> + oldcwd = get_current_dir_name();

Breaks the build with bionic (Android), where get_current_dir_name() is
not available:

/tmp/build/perf/libperf.a(libperf-in.o):hist.c:function nsinfo__mountns_enter: error: undefined reference to 'get_current_dir_name'
collect2: error: ld returned 1 exit status
Makefile.perf:534: recipe for target '/tmp/build/perf/perf' failed
make[2]: *** [/tmp/build/perf/perf] Error 1
Makefile.perf:206: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
Makefile:69: recipe for target 'all' failed
make: *** [all] Error 2
make: Leaving directory '/git/linux/tools/perf'
[root@seventh ~]#

The container builds are ongoing, its possoble that this becomes an
issue in uCLibc, wasn't on musl libc (Alpine Linux).

- Arnaldo