rte_bus_pci: remove unneeded library dependency.

Message ID 20191011205607.1743460-1-seth.howell@intel.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series rte_bus_pci: remove unneeded library dependency. |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-compilation success Compile Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Seth Howell Oct. 11, 2019, 8:56 p.m. UTC
  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(-)
  

Comments

David Marchand Oct. 14, 2019, 2:32 p.m. UTC | #1
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
  
Gaëtan Rivet Oct. 14, 2019, 3:16 p.m. UTC | #2
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>
  
David Marchand Oct. 25, 2019, 8:43 a.m. UTC | #3
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
  

Patch

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))