net/af_xdp: add libelf for pmd_af_xdp.

Message ID 1557951879-123265-1-git-send-email-u9012063@gmail.com (mailing list archive)
State Rejected, archived
Delegated to: Ferruh Yigit
Headers
Series net/af_xdp: add libelf for pmd_af_xdp. |

Checks

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

Commit Message

William Tu May 15, 2019, 8:24 p.m. UTC
  The libbpf requires linking elf library. Fix it by
adding -lelf.

Fixes: f1debd77efaf ("net/af_xdp: introduce AF_XDP PMD")
Signed-off-by: William Tu <u9012063@gmail.com>
---
 mk/rte.app.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Luca Boccassi May 16, 2019, 8:59 a.m. UTC | #1
On Wed, 2019-05-15 at 13:24 -0700, William Tu wrote:
> The libbpf requires linking elf library. Fix it by
> adding -lelf.
> 
> Fixes: f1debd77efaf ("net/af_xdp: introduce AF_XDP PMD")
> Signed-off-by: William Tu <
> u9012063@gmail.com
> >
> ---
>  mk/rte.app.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mk/rte.app.mk b/mk/rte.app.mk
> index 7c9b4b538e52..e5d15218618a 100644
> --- a/mk/rte.app.mk
> +++ b/mk/rte.app.mk
> @@ -145,7 +145,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL)  +=
> -lrte_mempool_dpaa2
>  endif
>  
>  _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET)  += -lrte_pmd_af_packet
> -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP)     += -lrte_pmd_af_xdp
> -lbpf
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP)     += -lrte_pmd_af_xdp
> -lbpf -lelf
>  _LDLIBS-$(CONFIG_RTE_LIBRTE_ARK_PMD)        += -lrte_pmd_ark
>  _LDLIBS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD)   += -lrte_pmd_atlantic
>  _LDLIBS-$(CONFIG_RTE_LIBRTE_AVP_PMD)        += -lrte_pmd_avp

Hi,

This was already discussed, and libbpf needs to link with libelf itself
as it's an internal dependency. It was already fixed in the kernel tree
some time ago, so it should be correct with a recent version. If you
are using an old version you can either update or fix it in your
application. So I don't think we should carry this work-around
ourselves in DPDK, as we'll end up overlinking when using fixed libbpf
versions.
  
William Tu May 16, 2019, 4:28 p.m. UTC | #2
On Thu, May 16, 2019 at 1:59 AM Luca Boccassi <bluca@debian.org> wrote:
>
> On Wed, 2019-05-15 at 13:24 -0700, William Tu wrote:
> > The libbpf requires linking elf library. Fix it by
> > adding -lelf.
> >
> > Fixes: f1debd77efaf ("net/af_xdp: introduce AF_XDP PMD")
> > Signed-off-by: William Tu <
> > u9012063@gmail.com
> > >
> > ---
> >  mk/rte.app.mk | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/mk/rte.app.mk b/mk/rte.app.mk
> > index 7c9b4b538e52..e5d15218618a 100644
> > --- a/mk/rte.app.mk
> > +++ b/mk/rte.app.mk
> > @@ -145,7 +145,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL)  +=
> > -lrte_mempool_dpaa2
> >  endif
> >
> >  _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET)  += -lrte_pmd_af_packet
> > -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP)     += -lrte_pmd_af_xdp
> > -lbpf
> > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP)     += -lrte_pmd_af_xdp
> > -lbpf -lelf
> >  _LDLIBS-$(CONFIG_RTE_LIBRTE_ARK_PMD)        += -lrte_pmd_ark
> >  _LDLIBS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD)   += -lrte_pmd_atlantic
> >  _LDLIBS-$(CONFIG_RTE_LIBRTE_AVP_PMD)        += -lrte_pmd_avp
>
> Hi,
>
> This was already discussed, and libbpf needs to link with libelf itself
> as it's an internal dependency. It was already fixed in the kernel tree
> some time ago, so it should be correct with a recent version. If you
> are using an old version you can either update or fix it in your
> application. So I don't think we should carry this work-around
> ourselves in DPDK, as we'll end up overlinking when using fixed libbpf
> versions.

OK. Thank you!
  

Patch

diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 7c9b4b538e52..e5d15218618a 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -145,7 +145,7 @@  _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL)  += -lrte_mempool_dpaa2
 endif
 
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET)  += -lrte_pmd_af_packet
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP)     += -lrte_pmd_af_xdp -lbpf
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP)     += -lrte_pmd_af_xdp -lbpf -lelf
 _LDLIBS-$(CONFIG_RTE_LIBRTE_ARK_PMD)        += -lrte_pmd_ark
 _LDLIBS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD)   += -lrte_pmd_atlantic
 _LDLIBS-$(CONFIG_RTE_LIBRTE_AVP_PMD)        += -lrte_pmd_avp