Re: [PATCH bpf-next 11/11] samples: bpf: makefile: add sysroot support

From: Ivan Khoronzhuk
Date: Fri Sep 13 2019 - 18:36:49 EST

On Fri, Sep 13, 2019 at 09:45:31PM +0000, Yonghong Song wrote:

On 9/10/19 11:38 AM, Ivan Khoronzhuk wrote:
Basically it only enables that was added by previous couple fixes.
For sure, just make tools/include to be included after sysroot

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
make samples/bpf/ SYSROOT="path/to/sysroot"

Sysroot contains correct libs installed and its headers ofc.
Useful when working with NFC or virtual machine.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@xxxxxxxxxx>
samples/bpf/Makefile | 5 +++++
samples/bpf/README.rst | 10 ++++++++++
2 files changed, 15 insertions(+)

diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index 4edc5232cfc1..68ba78d1dbbe 100644
--- a/samples/bpf/Makefile
+++ b/samples/bpf/Makefile
@@ -177,6 +177,11 @@ ifeq ($(ARCH), arm)

+ifdef SYSROOT
+ccflags-y += --sysroot=${SYSROOT}
ccflags-y += -I$(objtree)/usr/include
ccflags-y += -I$(srctree)/tools/lib/bpf/
ccflags-y += -I$(srctree)/tools/testing/selftests/bpf/
diff --git a/samples/bpf/README.rst b/samples/bpf/README.rst
index 5f27e4faca50..786d0ab98e8a 100644
--- a/samples/bpf/README.rst
+++ b/samples/bpf/README.rst
@@ -74,3 +74,13 @@ samples for the cross target.
export ARCH=arm64
export CROSS_COMPILE="aarch64-linux-gnu-"
make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang
+If need to use environment of target board (headers and libs), the SYSROOT
+also can be set, pointing on FS of target board:
+export ARCH=arm64
+export CROSS_COMPILE="aarch64-linux-gnu-"
+make samples/bpf/ SYSROOT=~/some_sdk/linux-devkit/sysroots/aarch64-linux-gnu
+Setting LLC and CLANG is not necessarily if it's installed on HOST and have
+in its targets appropriate arch triple (usually it has several arches).

You have very good description about how to build and test in cover
letter. Could you include those instructions here as well? This will
help keep a record so later people can try/test if needed.

I will try.

Ivan Khoronzhuk