On Tue, 2019-04-02 at 23:46 +0800, Xiaolong Ye wrote: > diff --git a/drivers/net/af_xdp/Makefile > b/drivers/net/af_xdp/Makefile > new file mode 100644 > index 000000000..8343e3016 > --- /dev/null > +++ b/drivers/net/af_xdp/Makefile > @@ -0,0 +1,32 @@ > +# SPDX-License-Identifier: BSD-3-Clause > +# Copyright(c) 2019 Intel Corporation > + > +include $(RTE_SDK)/mk/rte.vars.mk > + > +# > +# library name > +# > +LIB = librte_pmd_af_xdp.a > + > +EXPORT_MAP := rte_pmd_af_xdp_version.map > + > +LIBABIVER := 1 > + > +CFLAGS += -O3 > + > +# require kernel version >= v5.1-rc1 > +CFLAGS += -I$(RTE_KERNELDIR)/tools/include > +CFLAGS += -I$(RTE_KERNELDIR)/tools/lib/bpf
Sorry for not noticing this before, but doesn't this require the full kernel tree rather than just the typical headers package? Requiring the full kernel tree to be available at build time will make this unbuildable on distros that still use makefiles, like RHEL and SUSE. At least on Debian and Ubuntu, the kernel headers packages distributed do not include the full kernel tree, only the headers, so there's no tools/lib or tools/include. Like other dependencies, this should assume they are installed as regular libraries, eg: CFLAGS += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --cflags libbpf || echo "-I/usr/include/bpf") > +CFLAGS += $(WERROR_FLAGS) > +LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring > +LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs > +LDLIBS += -lrte_bus_vdev > +LDLIBS += -lbpf LDLIBS += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --libs libbpf || echo "-lbpf") -- Kind regards, Luca Boccassi