Message ID | 20190916105433.11404-13-ivan.khoronzhuk@linaro.org |
---|---|
State | New |
Headers | show |
Series | samples: bpf: improve/fix cross-compilation | expand |
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 --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__)
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