diff mbox series

[v3,bpf-next,12/14] samples: bpf: makefile: provide C/CXX/LD flags to libbpf

Message ID 20190916105433.11404-13-ivan.khoronzhuk@linaro.org
State New
Headers show
Series samples: bpf: improve/fix cross-compilation | expand

Commit Message

Ivan Khoronzhuk Sept. 16, 2019, 10:54 a.m. UTC
In order to build libs using C/CXX/LD flags of target arch,
provide them to libbpf make.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>

---
 samples/bpf/Makefile | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

-- 
2.17.1

Comments

Andrii Nakryiko Sept. 18, 2019, 5:20 a.m. UTC | #1
On Mon, Sep 16, 2019 at 3:58 AM Ivan Khoronzhuk
<ivan.khoronzhuk@linaro.org> wrote:
>

> In order to build libs using C/CXX/LD flags of target arch,

> provide them to libbpf make.

>

> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>

> ---

>  samples/bpf/Makefile | 14 +++++++++++---

>  1 file changed, 11 insertions(+), 3 deletions(-)

>

> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile

> index 18ec22e7b444..133123d4c7d7 100644

> --- a/samples/bpf/Makefile

> +++ b/samples/bpf/Makefile

> @@ -182,8 +182,6 @@ ifdef CROSS_COMPILE

>  TPROGS_CFLAGS += -Wall

>  TPROGS_CFLAGS += -O2

>  TPROGS_CFLAGS += -fomit-frame-pointer

> -TPROGS_CFLAGS += -Wmissing-prototypes

> -TPROGS_CFLAGS += -Wstrict-prototypes

>  else

>  TPROGS_LDLIBS := $(KBUILD_HOSTLDLIBS)

>  TPROGS_CFLAGS += $(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS)

> @@ -196,6 +194,14 @@ TPROGS_CFLAGS += -I$(srctree)/tools/lib/

>  TPROGS_CFLAGS += -I$(srctree)/tools/include

>  TPROGS_CFLAGS += -I$(srctree)/tools/perf

>

> +EXTRA_CXXFLAGS := $(TPROGS_CFLAGS)

> +

> +# options not valid for C++

> +ifdef CROSS_COMPILE

> +$(TPROGS_CFLAGS) += -Wmissing-prototypes

> +$(TPROGS_CFLAGS) += -Wstrict-prototypes

> +endif

> +


ugh, let's really get rid of dependency on C++ compiler, as suggested
for previous patch.


>  TPROGCFLAGS_bpf_load.o += -Wno-unused-variable

>

>  TPROGS_LDLIBS                  += $(LIBBPF) -lelf

> @@ -257,7 +263,9 @@ clean:

>

>  $(LIBBPF): FORCE

>  # Fix up variables inherited from Kbuild that tools/ build system won't like

> -       $(MAKE) -C $(dir $@) RM='rm -rf' LDFLAGS= srctree=$(BPF_SAMPLES_PATH)/../../ O=

> +       $(MAKE) -C $(dir $@) RM='rm -rf' EXTRA_CFLAGS="$(TPROGS_CFLAGS)" \

> +               EXTRA_CXXFLAGS="$(EXTRA_CXXFLAGS)" LDFLAGS=$(TPROGS_LDFLAGS) \

> +               srctree=$(BPF_SAMPLES_PATH)/../../ O=

>

>  $(obj)/syscall_nrs.h:  $(obj)/syscall_nrs.s FORCE

>         $(call filechk,offsets,__SYSCALL_NRS_H__)

> --

> 2.17.1

>
diff mbox series

Patch

diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index 18ec22e7b444..133123d4c7d7 100644
--- a/samples/bpf/Makefile
+++ b/samples/bpf/Makefile
@@ -182,8 +182,6 @@  ifdef CROSS_COMPILE
 TPROGS_CFLAGS += -Wall
 TPROGS_CFLAGS += -O2
 TPROGS_CFLAGS += -fomit-frame-pointer
-TPROGS_CFLAGS += -Wmissing-prototypes
-TPROGS_CFLAGS += -Wstrict-prototypes
 else
 TPROGS_LDLIBS := $(KBUILD_HOSTLDLIBS)
 TPROGS_CFLAGS += $(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS)
@@ -196,6 +194,14 @@  TPROGS_CFLAGS += -I$(srctree)/tools/lib/
 TPROGS_CFLAGS += -I$(srctree)/tools/include
 TPROGS_CFLAGS += -I$(srctree)/tools/perf
 
+EXTRA_CXXFLAGS := $(TPROGS_CFLAGS)
+
+# options not valid for C++
+ifdef CROSS_COMPILE
+$(TPROGS_CFLAGS) += -Wmissing-prototypes
+$(TPROGS_CFLAGS) += -Wstrict-prototypes
+endif
+
 TPROGCFLAGS_bpf_load.o += -Wno-unused-variable
 
 TPROGS_LDLIBS			+= $(LIBBPF) -lelf
@@ -257,7 +263,9 @@  clean:
 
 $(LIBBPF): FORCE
 # Fix up variables inherited from Kbuild that tools/ build system won't like
-	$(MAKE) -C $(dir $@) RM='rm -rf' LDFLAGS= srctree=$(BPF_SAMPLES_PATH)/../../ O=
+	$(MAKE) -C $(dir $@) RM='rm -rf' EXTRA_CFLAGS="$(TPROGS_CFLAGS)" \
+		EXTRA_CXXFLAGS="$(EXTRA_CXXFLAGS)" LDFLAGS=$(TPROGS_LDFLAGS) \
+		srctree=$(BPF_SAMPLES_PATH)/../../ O=
 
 $(obj)/syscall_nrs.h:	$(obj)/syscall_nrs.s FORCE
 	$(call filechk,offsets,__SYSCALL_NRS_H__)