libbpf: Fix build on read-only filesystems
authorNamhyung Kim <namhyung@kernel.org>
Mon, 23 Dec 2019 06:13:26 +0000 (15:13 +0900)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 23 Dec 2019 14:34:06 +0000 (15:34 +0100)
commitfa633a0f89192379828103957874682d389eae83
tree2a7f70307542ac7805d419c4f73f23b6771f56b7
parentf54c7898ed1c3c9331376c0337a5049c38f66497
libbpf: Fix build on read-only filesystems

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@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Tested-by: Andrii Nakryiko <andriin@fb.com>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Link: https://lore.kernel.org/bpf/20191223061326.843366-1-namhyung@kernel.org
tools/lib/bpf/Makefile
tools/testing/selftests/bpf/.gitignore
tools/testing/selftests/bpf/Makefile