Re: [PATCH] libbpf: Fix build on read-only filesystems

From: Andrii Nakryiko
Date: Fri Dec 20 2019 - 16:46:06 EST


On Fri, Dec 20, 2019 at 12:47 PM Arnaldo Carvalho de Melo
<arnaldo.melo@xxxxxxxxx> wrote:
>
> Em Fri, Dec 20, 2019 at 12:29:36PM -0800, Andrii Nakryiko escreveu:
> > On Thu, Dec 19, 2019 at 7:26 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
> > > I got the following error when I tried to build perf on a read-only
> > > filesystem with O=dir option.
> > >
> > > $ cd /some/where/ro/linux/tools/perf
> > > $ make O=$HOME/build/perf
> > > ...
> > > CC /home/namhyung/build/perf/lib.o
> > > /bin/sh: bpf_helper_defs.h: Read-only file system
> > > make[3]: *** [Makefile:184: bpf_helper_defs.h] Error 1
> > > make[2]: *** [Makefile.perf:778: /home/namhyung/build/perf/libbpf.a] Error 2
> > > make[2]: *** Waiting for unfinished jobs....
> > > LD /home/namhyung/build/perf/libperf-in.o
> > > AR /home/namhyung/build/perf/libperf.a
> > > PERF_VERSION = 5.4.0
> > > make[1]: *** [Makefile.perf:225: sub-make] Error 2
> > > make: *** [Makefile:70: all] Error 2
> > >
> > > It was becaused bpf_helper_defs.h was generated in current directory.
> > > Move it to OUTPUT directory.
> > >
> > > Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> > > ---
> >
> > Overall nothing is obviously broken, except you need to fix up
> > selftests/bpf's Makefile as well.
> >
> > BTW, this patch doesn't apply cleanly to latest bpf-next, so please rebase.
> >
> > Also subject prefix should look like [PATCH bpf-next] if it's meant to
> > be applied against bpf-next.
>
> Shouldn't this be applied to the current merge window since a behaviour
> that people relied, i.e. using O= to generate the build in a separate
> directory, since its not possible to use the source dir tree as it is
> read-only is now broken, i.e. isn't this a regression?

Sure, it can be applied against bpf as well, but selftests still need
to be fixed first.

>
> - Arnaldo
>
> > > tools/lib/bpf/Makefile | 14 +++++++-------
> > > 1 file changed, 7 insertions(+), 7 deletions(-)
> > >
> >
> > [...]
>
> --
>
> - Arnaldo