The makefile in drivers/bus/pci specified rte_ethdev as a dependency for the library. However there are no actual symbols from librte_ethdev used in librte_bus_pci. Including librte_ethdev as a dependency only becomes a problem in some niche cases like when attempting to build the rte_bus_pci library as a shared object without building the rte_ethdev library. I specifically ran into this when trying to build the DPDK included as an SPDK submodule on a FreeBSD machine. I figure that since there are no real dependencies between the two, we should enable building librte_bus_pci without librte_ethdev. Signed-off-by: Seth Howell <seth.howell@intel.com> --- drivers/bus/pci/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/bus/pci/Makefile b/drivers/bus/pci/Makefile index 68c1f3fde..45d12427a 100644 --- a/drivers/bus/pci/Makefile +++ b/drivers/bus/pci/Makefile @@ -25,7 +25,7 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common CFLAGS += -DALLOW_EXPERIMENTAL_API LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -LDLIBS += -lrte_ethdev -lrte_pci -lrte_kvargs +LDLIBS += -lrte_pci -lrte_kvargs include $(RTE_SDK)/drivers/bus/pci/$(SYSTEM)/Makefile SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) := $(addprefix $(SYSTEM)/,$(SRCS)) -- 2.17.2
On Fri, Oct 11, 2019 at 10:56 PM Seth Howell <seth.howell@intel.com> wrote:
>
> The makefile in drivers/bus/pci specified rte_ethdev as a dependency for
> the library. However there are no actual symbols from librte_ethdev used
> in librte_bus_pci.
>
> Including librte_ethdev as a dependency only becomes a problem in some
> niche cases like when attempting to build the rte_bus_pci library as a
> shared object without building the rte_ethdev library.
>
> I specifically ran into this when trying to build the DPDK included as
> an SPDK submodule on a FreeBSD machine. I figure that since there are no
> real dependencies between the two, we should enable building
> librte_bus_pci without librte_ethdev.
>
> Signed-off-by: Seth Howell <seth.howell@intel.com>
> ---
> drivers/bus/pci/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/bus/pci/Makefile b/drivers/bus/pci/Makefile
> index 68c1f3fde..45d12427a 100644
> --- a/drivers/bus/pci/Makefile
> +++ b/drivers/bus/pci/Makefile
> @@ -25,7 +25,7 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
> CFLAGS += -DALLOW_EXPERIMENTAL_API
>
> LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
> -LDLIBS += -lrte_ethdev -lrte_pci -lrte_kvargs
> +LDLIBS += -lrte_pci -lrte_kvargs
>
> include $(RTE_SDK)/drivers/bus/pci/$(SYSTEM)/Makefile
> SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) := $(addprefix $(SYSTEM)/,$(SRCS))
> --
> 2.17.2
>
At a first glance, this patch seems valid, Gaëtan, could you have a look ?
Could be worth a Fixes:.
Thanks.
--
David Marchand
On Mon, Oct 14, 2019 at 04:32:54PM +0200, David Marchand wrote:
> On Fri, Oct 11, 2019 at 10:56 PM Seth Howell <seth.howell@intel.com> wrote:
> >
> > The makefile in drivers/bus/pci specified rte_ethdev as a dependency for
> > the library. However there are no actual symbols from librte_ethdev used
> > in librte_bus_pci.
> >
> > Including librte_ethdev as a dependency only becomes a problem in some
> > niche cases like when attempting to build the rte_bus_pci library as a
> > shared object without building the rte_ethdev library.
> >
> > I specifically ran into this when trying to build the DPDK included as
> > an SPDK submodule on a FreeBSD machine. I figure that since there are no
> > real dependencies between the two, we should enable building
> > librte_bus_pci without librte_ethdev.
> >
> > Signed-off-by: Seth Howell <seth.howell@intel.com>
> > ---
> > drivers/bus/pci/Makefile | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/bus/pci/Makefile b/drivers/bus/pci/Makefile
> > index 68c1f3fde..45d12427a 100644
> > --- a/drivers/bus/pci/Makefile
> > +++ b/drivers/bus/pci/Makefile
> > @@ -25,7 +25,7 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
> > CFLAGS += -DALLOW_EXPERIMENTAL_API
> >
> > LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
> > -LDLIBS += -lrte_ethdev -lrte_pci -lrte_kvargs
> > +LDLIBS += -lrte_pci -lrte_kvargs
> >
> > include $(RTE_SDK)/drivers/bus/pci/$(SYSTEM)/Makefile
> > SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) := $(addprefix $(SYSTEM)/,$(SRCS))
> > --
> > 2.17.2
> >
>
> At a first glance, this patch seems valid, Gaëtan, could you have a look ?
> Could be worth a Fixes:.
>
> Thanks.
>
>
> --
> David Marchand
>
Hi,
Yes this is fine.
I've checked, when this Makefile was introduced first in v17.11, this
dependency was not needed either. This means the Fixes: can go back to c752998b5.
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
--
Gaëtan Rivet
6WIND
On Mon, Oct 14, 2019 at 5:16 PM Gaëtan Rivet <gaetan.rivet@6wind.com> wrote: > On Mon, Oct 14, 2019 at 04:32:54PM +0200, David Marchand wrote: > > On Fri, Oct 11, 2019 at 10:56 PM Seth Howell <seth.howell@intel.com> wrote: > > > > > > The makefile in drivers/bus/pci specified rte_ethdev as a dependency for > > > the library. However there are no actual symbols from librte_ethdev used > > > in librte_bus_pci. > > > > > > Including librte_ethdev as a dependency only becomes a problem in some > > > niche cases like when attempting to build the rte_bus_pci library as a > > > shared object without building the rte_ethdev library. > > > > > > I specifically ran into this when trying to build the DPDK included as > > > an SPDK submodule on a FreeBSD machine. I figure that since there are no > > > real dependencies between the two, we should enable building > > > librte_bus_pci without librte_ethdev. Fixes: c752998b5e2e ("pci: introduce library and driver") Cc: stable@dpdk.org > > > > > > Signed-off-by: Seth Howell <seth.howell@intel.com> > Yes this is fine. > I've checked, when this Makefile was introduced first in v17.11, this > dependency was not needed either. This means the Fixes: can go back to c752998b5. > > Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com> Applied, thanks. -- David Marchand