[dpdk-dev] [PATCH 1/1] eal: Don't fail secondary if primary is missing tailqs

Luca Boccassi bluca at debian.org
Thu Nov 15 19:22:07 CET 2018


On Thu, 2018-11-15 at 17:17 +0000, Bruce Richardson wrote:
> On Thu, Nov 15, 2018 at 05:05:16PM +0000, Luca Boccassi wrote:
> > On Thu, 2018-11-15 at 17:01 +0000, Richardson, Bruce wrote:
> > > > -----Original Message-----
> > > > From: Burdick, Cliff [mailto:Cliff.Burdick at viasat.com]
> > > > Sent: Thursday, November 15, 2018 4:55 PM
> > > > To: Richardson, Bruce <bruce.richardson at intel.com>
> > > > Cc: Luca Boccassi <bluca at debian.org>; Thomas Monjalon
> > > > <thomas at monjalon.net>; Burakov, Anatoly <anatoly.burakov at intel.
> > > > com>
> > > > ;
> > > > dev at dpdk.org
> > > > Subject: RE: [dpdk-dev] [PATCH 1/1] eal: Don't fail secondary
> > > > if
> > > > primary
> > > > is missing tailqs
> > > > 
> > > > 
> > > > 
> > > > -----Original Message-----
> > > > From: Bruce Richardson [mailto:bruce.richardson at intel.com]
> > > > Sent: Thursday, November 15, 2018 8:41 AM
> > > > To: Burdick, Cliff
> > > > Cc: Luca Boccassi; Thomas Monjalon; Burakov, Anatoly; dev at dpdk.
> > > > org
> > > > Subject: Re: [dpdk-dev] [PATCH 1/1] eal: Don't fail secondary
> > > > if
> > > > primary
> > > > is missing tailqs
> > > > 
> > > > > On Thu, Nov 15, 2018 at 04:15:36PM +0000, Burdick, Cliff
> > > > > wrote:
> > > > > > 
> > > > > > 
> > > > > > -----Original Message-----
> > > > > > From: Luca Boccassi [mailto:bluca at debian.org]
> > > > > > Sent: Thursday, November 15, 2018 1:33 AM
> > > > > > To: Burdick, Cliff; Bruce Richardson
> > > > > > Cc: Thomas Monjalon; Burakov, Anatoly; dev at dpdk.org
> > > > > > Subject: Re: [dpdk-dev] [PATCH 1/1] eal: Don't fail
> > > > > > secondary
> > > > > > if
> > > > > > primary is missing tailqs
> > > > > > 
> > > > > > > On Wed, 2018-11-14 at 18:24 +0000, Burdick, Cliff wrote:
> > > > > > > > 
> > > > > > > > -----Original Message-----
> > > > > > > > From: Luca Boccassi [mailto:bluca at debian.org]
> > > > > > > > Sent: Wednesday, November 14, 2018 10:15 AM
> > > > > > > > To: Burdick, Cliff; Bruce Richardson
> > > > > > > > Cc: Thomas Monjalon; Burakov, Anatoly; dev at dpdk.org
> > > > > > > > Subject: Re: [dpdk-dev] [PATCH 1/1] eal: Don't fail
> > > > > > > > secondary if
> > > > > > > > primary is missing tailqs
> > > > > > > > 
> > > > > > > > > On Wed, 2018-11-14 at 17:40 +0000, Burdick, Cliff
> > > > > > > > > wrote:
> > > > > > > > > > 
> > > > > > > > > > -----Original Message-----
> > > > > > > > > > From: Bruce Richardson [mailto:bruce.richardson at int
> > > > > > > > > > el.c
> > > > > > > > > > om]
> > > > > > > > > > Sent: Wednesday, November 14, 2018 3:48 AM
> > > > > > > > > > To: Burdick, Cliff
> > > > > > > > > > Cc: Thomas Monjalon; Burakov, Anatoly; dev at dpdk.org
> > > > > > > > > > Subject: Re: [dpdk-dev] [PATCH 1/1] eal: Don't fail
> > > > > > > > > > secondary
> > > > > > > > > > if primary is missing tailqs
> > > > > > > > > > 
> > > > > > > > > > On Tue, Nov 13, 2018 at 11:42:51PM +0000, Burdick,
> > > > > > > > > > Cliff
> > > > 
> > > > wrote:
> > > > > > > > > > > > 
> > > > > > > > > > > > ________________________________________
> > > > > > > > > > > > From: Thomas Monjalon [thomas at monjalon.net]
> > > > > > > > > > > > Sent: Tuesday, November 13, 2018 2:18 PM
> > > > > > > > > > > > To: Burdick, Cliff
> > > > > > > > > > > > Cc: Burakov, Anatoly; dev at dpdk.org;
> > > > > > > > > > > > bruce.richardson at intel.co m
> > > > > > > > > > > > Subject: Re: [dpdk-dev] [PATCH 1/1] eal: Don't
> > > > > > > > > > > > fail
> > > > > > > > > > > > secondary if primary is missing tailqs
> > > > > > > > > > > > 
> > > > > > > > > > > > 13/11/2018 23:08, Burdick, Cliff:
> > > > > > > > > > > > > From: Thomas Monjalon [mailto:thomas at monjalon
> > > > > > > > > > > > > .net
> > > > > > > > > > > > > ]
> > > > > > > > > > > > > > 13/11/2018 17:38, Burdick, Cliff:
> > > > > > > > > > > > > > > From: Thomas Monjalon [mailto:thomas at monj
> > > > > > > > > > > > > > > alon
> > > > > > > > > > > > > > > .net]
> > > > > > > > > > > > > > > 13/11/2018 16:45, Burdick, Cliff:
> > > > > > > > > > > > > > > > From: Burakov, Anatoly
> > > > 
> > > > [mailto:anatoly.burakov at intel.
> > > > > > > > > > > > > > > > com]
> > > > > > > > > > > > > > > > > On 13-Nov-18 9:21 AM, Thomas Monjalon
> > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > 13/11/2018 00:33, Burdick, Cliff:
> > > > > > > > > > > > > > > > > > > This patch was submitted by Jean
> > > > > > > > > > > > > > > > > > > Tourrilhes
> > > > > > > > > > > > > > > > > > > over two years ago, but didn't
> > > > > > > > > > > > > > > > > > > receive any
> > > > 
> > > > responses.
> > > > > > > > > > > > > > > > > > > I hit the same issue recently
> > > > > > > > > > > > > > > > > > > when
> > > > > > > > > > > > > > > > > > > trying to
> > > > > > > > > > > > > > > > > > > use cgo
> > > > > > > > > > > > > > > > > > > (Golang) as a primary process
> > > > > > > > > > > > > > > > > > > linked
> > > > > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > > > libdpdk.a against a C++
> > > > > > > > > > > > > > > > > > > application
> > > > > > > > > > > > > > > > > > > linked
> > > > > > > > > > > > > > > > > > > against the same library.> > >
> > > > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > > > The question is to know why you
> > > > > > > > > > > > > > > > > > don't
> > > > > > > > > > > > > > > > > > have the
> > > > > > > > > > > > > > > > > > same constructors in primary and
> > > > > > > > > > > > > > > > > > seconday?
> > > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > > I've hit similar things in the past.
> > > > > > > > > > > > > > > > > I
> > > > > > > > > > > > > > > > > believe
> > > > > > > > > > > > > > > > > it was caused by our build system
> > > > > > > > > > > > > > > > > stripping out
> > > > > > > > > > > > > > > > > unused libraries (such as
> > > > > > > > > > > > > > > > > rte_hash) from the binary and thus
> > > > > > > > > > > > > > > > > not
> > > > > > > > > > > > > > > > > calling
> > > > > > > > > > > > > > > > > the constructor in the primary, but
> > > > > > > > > > > > > > > > > doing
> > > > > > > > > > > > > > > > > so in
> > > > > > > > > > > > > > > > > the secondary (or something to that
> > > > > > > > > > > > > > > > > effect). In
> > > > > > > > > > > > > > > > > any case, this is caused by linking
> > > > > > > > > > > > > > > > > different
> > > > > > > > > > > > > > > > > number of libraries to primary and
> > > > > > > > > > > > > > > > > secondary,
> > > > > > > > > > > > > > > > > and should probably be fixed in the
> > > > > > > > > > > > > > > > > build
> > > > > > > > > > > > > > > > > system, not in the tailqs code
> > > > > > > > > > > > > > > > > (unless we
> > > > > > > > > > > > > > > > > specifically support having different
> > > > > > > > > > > > > > > > > linked
> > > > > > > > > > > > > > > > > libraries to primary and
> > > > > > > > > > > > > > > > > secondary?).> >
> > > > > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > Right, I think the original author of
> > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > patch
> > > > > > > > > > > > > > > > stated the reasons in the link I
> > > > > > > > > > > > > > > > provided.
> > > > > > > > > > > > > > > > The
> > > > > > > > > > > > > > > > build system seems like the most
> > > > > > > > > > > > > > > > appropriate place
> > > > > > > > > > > > > > > > to fix it, but the patch got me going
> > > > > > > > > > > > > > > > quickly. I
> > > > > > > > > > > > > > > > think the question is whether you want
> > > > > > > > > > > > > > > > DPDK
> > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > support these other ways of linking.
> > > > > > > > > > > > > > > > I'm
> > > > > > > > > > > > > > > > certainly not the first to use cgo,
> > > > > > > > > > > > > > > > since
> > > > > > > > > > > > > > > > there's
> > > > > > > > > > > > > > > > a virtual switch project doing the
> > > > > > > > > > > > > > > > same:
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > https://urldefense.proofpoint.com/v2/ur
> > > > > > > > > > > > > > > > l?u=
> > > > > > > > > > > > > > > > https-3
> > > > > > > > > > > > > > > > A__
> > > > > > > > > > > > > > > > gith
> > > > > > > > > > > > > > > > ub.co
> > > > > > > > > > > > > > > > m_lago
> > > > > > > > > > > > > > > > pu
> > > > > > > > > > > > > > > > s_vsw&d=DwICAg&c=jcv3orpCsv7C4ly8-
> > > > > > > > > > > > > > > > ubDoUfrxF5xIGWmptxGWP5vi5w&r =m1RLQ OG
> > > > > > > > > > > > > > > > Okz9MauvVLZmiGtyWc5mA7DejbPFNE1IDj-
> > > > > > > > > > > > > > > > 4&m=hQqVCNwW7eoEzB_hLFK97i8 idS8FI qX
> > > > > > > > > > > > > > > > oPeclwsIZq7Y&s=BMoBlwkqljwWIBY3SE3pPMCf
> > > > > > > > > > > > > > > > VnOU
> > > > > > > > > > > > > > > > lDuZLrn
> > > > > > > > > > > > > > > > o4-
> > > > > > > > > > > > > > > > SojKM&e=
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > They don't use primary/secondary
> > > > > > > > > > > > > > > > processes,
> > > > > > > > > > > > > > > > though, so the issue is  never hit. I'm
> > > > > > > > > > > > > > > > in
> > > > > > > > > > > > > > > > a
> > > > > > > > > > > > > > > > situation where using cgo seemed like
> > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > easiest
> > > > > > > > > > > > > > > > path to accomplish what I'm doing since
> > > > > > > > > > > > > > > > I
> > > > > > > > > > > > > > > > needed
> > > > > > > > > > > > > > > > specialized  libraries for it that were
> > > > > > > > > > > > > > > > not
> > > > > > > > > > > > > > > > available in C/C++. At some point
> > > > > > > > > > > > > > > > I  bet
> > > > > > > > > > > > > > > > someone
> > > > > > > > > > > > > > > > would use Cython to start linking
> > > > > > > > > > > > > > > > against
> > > > > > > > > > > > > > > > DPDK as
> > > > > > > > > > > > > > > > well,  and we'd likely run into the
> > > > > > > > > > > > > > > > same
> > > > > > > > > > > > > > > > issue.> >
> > > > > > > > > > > > > > > > > > For sure, we want to support using
> > > > > > > > > > > > > > > > > > DPDK
> > > > > > > > > > > > > > > > > > with
> > > > 
> > > > cgo or cython.
> > > > > > > > > > > > > > > > But it is not clear what is the
> > > > > > > > > > > > > > > > relation
> > > > > > > > > > > > > > > > with not
> > > > > > > > > > > > > > > > having the same compilation for primary
> > > > > > > > > > > > > > > > and
> > > > 
> > > > secondary.
> > > > > > > > > > > > > > > > Please
> > > > > > > > > > > > > > > > could you elaborate?> > >
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > Hi Thomas, I think Jean explained it well
> > > > > > > > > > > > > > > here:
> > > > > > > > > > > > > > > https://urldefense.proofpoint.com/v2/url?
> > > > > > > > > > > > > > > u=ht
> > > > > > > > > > > > > > > tps-3A_
> > > > > > > > > > > > > > > _de
> > > > > > > > > > > > > > > v.dp
> > > > > > > > > > > > > > > dk.narkive.
> > > > > > > > > > > > > > > com_ZM3a7QD1_dpdk-2Ddev-2Dbug-2Dstatic-
> > > > > > > > > > > > > > > 2Dconstructor
> > > > > > > > > > > > > > > s-
> > > > > > > > > > > > > > > 2Dconsider
> > > > > > > > > > > > > > > ed-2De
> > > > > > > > > > > > > > > vil&d=DwICAg&c=jcv3orpCsv7C4ly8-
> > > > > > > > > > > > > > > ubDoUfrxF5xIGWmptxGWP5vi5w&r=m1R LQOGOk
> > > > > > > > > > > > > > > z9MauvVLZmiGtyWc5mA7DejbPFNE1IDj-
> > > > > > > > > > > > > > > 4&m=C69wDgrjDX8_oXp1M_3bnmWOOZd GqwBBG
> > > > > > > > > > > > > > > 9vzkyGDWGQ&s=YYn2N7WrzJpH1ptNrLZad0nPAQdr
> > > > > > > > > > > > > > > UyqB
> > > > > > > > > > > > > > > ckk2uFu
> > > > > > > > > > > > > > > WYP
> > > > > > > > > > > > > > > Q&e=
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > "The build system of the application does
> > > > > > > > > > > > > > > not
> > > > > > > > > > > > > > > have
> > > > > > > > > > > > > > > all the subtelties of the DPDK build
> > > > > > > > > > > > > > > system,
> > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > ends up including
> > > > > > > > > > > > > > > *all*
> > > > > > > > > > > > > > > the constructors, wether they are used or
> > > > > > > > > > > > > > > not
> > > > > > > > > > > > > > > in the
> > > > > > > > > > > > > > > code.
> > > > > > > > > > > > > > > Moreover, they are included in a
> > > > > > > > > > > > > > > different
> > > > > > > > > > > > > > > order.
> > > > > > > > > > > > > > > Actually,
> > > > > > > > > > > > > > > by default the builds include no
> > > > > > > > > > > > > > > constructors
> > > > > > > > > > > > > > > at all
> > > > > > > > > > > > > > > (which is a big fail), so the library
> > > > > > > > > > > > > > > needs
> > > > > > > > > > > > > > > to be
> > > > > > > > > > > > > > > included with --whole-archive (see Snort
> > > > > > > > > > > > > > > DPDK
> > > > > > > > > > > > > > > instructions)."
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > I will get to the bottom of my exact case
> > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > understand what's happening, but my
> > > > > > > > > > > > > > > primary
> > > > > > > > > > > > > > > application is a cgo application that I'm
> > > > > > > > > > > > > > > linking to
> > > > > > > > > > > > > > > by using almost exactly the same flags
> > > > > > > > > > > > > > > that
> > > > > > > > > > > > > > > are used
> > > > > > > > > > > > > > > in the DPDK build system to build
> > > > > > > > > > > > > > > examples.
> > > > > > > > > > > > > > > The DPDK
> > > > > > > > > > > > > > > libraries I'm linking against is a single
> > > > > > > > > > > > > > > location
> > > > > > > > > > > > > > > for both primary and secondary; in other
> > > > > > > > > > > > > > > words, I
> > > > 
> > > > don't build DPDK twice.
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > OK I understand, thanks.
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > You had alluded to a pkg-config for DPDK
> > > > > > > > > > > > > > > in
> > > > > > > > > > > > > > > the 2015
> > > > > > > > > > > > > > > thread, which cgo can use, but I don't
> > > > > > > > > > > > > > > know
> > > > > > > > > > > > > > > if that
> > > > > > > > > > > > > > > ever was implemented. Cgo can use pkg-
> > > > > > > > > > > > > > > config
> > > > > > > > > > > > > > > if it's
> > > > > > > > > > > > > > > available, otherwise the only tools are
> > > > > > > > > > > > > > > specifying
> > > > > > > > > > > > > > > LDFLAGS and CFLAGS into their build
> > > > > > > > > > > > > > > system.
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > Yes, the right answer is still pkg-config
> > > > > > > > > > > > > > :)
> > > > > > > > > > > > > > The good
> > > > > > > > > > > > > > news is that it is now implemented thanks
> > > > > > > > > > > > > > to
> > > > > > > > > > > > > > the meson
> > > > > > > > > > > > > > build
> > > > > > > > > > > > > > system:
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > https://urldefense.proofpoint.com/v2/url?u=
> > > > > > > > > > > > > > http
> > > > > > > > > > > > > > -3A__gi
> > > > > > > > > > > > > > t.d
> > > > > > > > > > > > > > pdk.
> > > > > > > > > > > > > > org_dp
> > > > > > > > > > > > > > dk_tree_doc_build-2Dsdk-2Dmeson.txt-
> > > > > > > > > > > > > > 23n182&d=DwICAg&c=jcv3orpCsv7C4
> > > > > > > > > > > > > > ly8-
> > > > > > > > > > > > > > ubDoUfrxF5xIGWmptxGWP5vi5w&r=m1RLQOGOkz9Mau
> > > > > > > > > > > > > > vVLZ
> > > > > > > > > > > > > > miGtyWc
> > > > > > > > > > > > > > 5mA
> > > > > > > > > > > > > > 7Dej
> > > > > > > > > > > > > > bP
> > > > > > > > > > > > > > FNE1IDj-
> > > > > > > > > > > > > > > 4&m=C69wDgrjDX8_oXp1M_3bnmWOOZdGqwBBG9vzk
> > > > > > > > > > > > > > > yGDW
> > > > > > > > > > > > > > > GQ&s=oC
> > > > > > > > > > > > > > > 86K
> > > > > > > > > > > > > > > D_R
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > J1T6rfzi3x5zFT1Ri13ELpKmsyFqpgDbgFg&e=
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Hi Thomas, are there instructions on how to
> > > > > > > > > > > > > use
> > > > > > > > > > > > > pkg-config to build the mlx4/5 PMD? I noticed
> > > > > > > > > > > > > a
> > > > > > > > > > > > > patch
> > > > > > > > > > > > > was submitted in September to add support for
> > > > > > > > > > > > > it,
> > > > > > > > > > > > > but
> > > > > > > > > > > > > that link you provided on using meson doesn't
> > > > > > > > > > > > > say
> > > > > > > > > > > > > how to
> > > > > > > > > > > > > build specific drivers. It appears to be
> > > > > > > > > > > > > disabled
> > > > > > > > > > > > > by
> > > > 
> > > > default.
> > > > > > > > > > > > > If the dependency is found, meson will enable
> > > > > > > > > > > > > the
> > > > > > > > > > > > > PMD
> > > > > > > > > > > > > when building DPDK.
> > > > > > > > > > > > 
> > > > > > > > > > > > Do you know where exactly that is? I've been
> > > > > > > > > > > > using
> > > > > > > > > > > > mlx5
> > > > > > > > > > > > for a while on this system, and I can see that
> > > > > > > > > > > > 18.11-rc2
> > > > > > > > > > > > meson
> > > > > > > > > > > > build+ninja built the pmd, but it's not on the
> > > > > > > > > > > > --
> > > > > > > > > > > > libs
> > > > > > > > > > > > build+listing
> > > > > > > > > > > > for
> > > > > > > > > > > > pkg-config. Does it tell me what I was missing?
> > > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > For dynamic linking of applications, the drivers
> > > > > > > > > > > are
> > > > > > > > > > > not
> > > > > > > > > > > normally linked in. Instead, they should be
> > > > > > > > > > > loaded
> > > > > > > > > > > from the
> > > > > > > > > > > drivers directory as .so files
> > > > > > > > > > > - normally by default in EAL as the driver .so's
> > > > > > > > > > > should be
> > > > > > > > > > > copied to the EAL_PMD_PATH where EAL finds them
> > > > 
> > > > automatically.
> > > > > > > > > > > [This applies to both meson and make builds,
> > > > > > > > > > > though
> > > > > > > > > > > only
> > > > > > > > > > > meson generates the .pc file for pkg-config]
> > > > > > > > > > > 
> > > > > > > > > > > If you are doing a static build, then you need to
> > > > > > > > > > > explicitly
> > > > > > > > > > > link in the drivers. You can get a list from pkg-
> > > > > > > > > > > config
> > > > > > > > > > > using the "
> > > > > > > > > > > --static" flag in this case. A good example of
> > > > > > > > > > > how to
> > > > > > > > > > > use
> > > > > > > > > > > pkg- config in this way can be found in the
> > > > > > > > > > > Makefiles
> > > > > > > > > > > for
> > > > > > > > > > > most examples, e.g. examples/helloworld/Makefile,
> > > > > > > > > > > reproduced
> > > > 
> > > > below.
> > > > > > > > > > > 
> > > > > > > > > > > Regards,
> > > > > > > > > > > /Bruce
> > > > > > > > > > > 
> > > > > > > > > > > all: shared
> > > > > > > > > > > .PHONY: shared static
> > > > > > > > > > > shared: build/$(APP)-shared
> > > > > > > > > > >         ln -sf $(APP)-shared build/$(APP)
> > > > > > > > > > > static: build/$(APP)-static
> > > > > > > > > > >         ln -sf $(APP)-static build/$(APP)
> > > > > > > > > > > 
> > > > > > > > > > > PC_FILE := $(shell pkg-config --path libdpdk)
> > > > > > > > > > > CFLAGS
> > > > > > > > > > > += -O3
> > > > > > > > > > > $(shell pkg-config --cflags libdpdk)
> > > > > > > > > > > LDFLAGS_SHARED =
> > > > > > > > > > > $(shell
> > > > > > > > > > > pkg- config -- libs libdpdk) LDFLAGS_STATIC =
> > > > > > > > > > > -Wl,-
> > > > > > > > > > > Bstatic
> > > > > > > > > > > $(shell pkg-config
> > > > > > > > > > > --
> > > > > > > > > > > static --libs libdpdk)
> > > > > > > > > > > 
> > > > > > > > > > > build/$(APP)-shared: $(SRCS-y) Makefile
> > > > > > > > > > > $(PC_FILE) |
> > > > > > > > > > > build
> > > > > > > > > > >         $(CC) $(CFLAGS) $(SRCS-y) -o $@
> > > > > > > > > > > $(LDFLAGS)
> > > > > > > > > > > $(LDFLAGS_SHARED)
> > > > > > > > > > > 
> > > > > > > > > > > build/$(APP)-static: $(SRCS-y) Makefile
> > > > > > > > > > > $(PC_FILE) |
> > > > > > > > > > > build
> > > > > > > > > > >         $(CC) $(CFLAGS) $(SRCS-y) -o $@
> > > > > > > > > > > $(LDFLAGS)
> > > > > > > > > > > $(LDFLAGS_STATIC)
> > > > > > > > > > > 
> > > > > > > > > > > build:
> > > > > > > > > > >         @mkdir -p $@
> > > > > > > > > > 
> > > > > > > > > > Thanks Bruce. I tried getting this to compile using
> > > > > > > > > > cgo, and
> > > > > > > > > > it's causing more pain than it's worth. I used the
> > > > > > > > > > --
> > > > > > > > > > static
> > > > > > > > > > --libs options, and there were still numerous
> > > > > > > > > > linker
> > > > > > > > > > errors,
> > > > > > > > > > some specific to mlx, and some not. Specifically
> > > > > > > > > > libmlx5 and
> > > > > > > > > > libmnl are both needed, but they're not part of the
> > > > > > > > > > linker
> > > > > > > > > > line from pkg-config. At this point I'll just break
> > > > > > > > > > the
> > > > > > > > > > Go
> > > > > > > > > > application up into a separate C application that
> > > > > > > > > > handles all
> > > > > > > > > > the DPDK parts, and send messages between them.
> > > > > > > > > 
> > > > > > > > > Hi,
> > > > > > > > > 
> > > > > > > > > As far as I can see, both mnl and mlx5 (and all the
> > > > > > > > > other
> > > > > > > > > reverse
> > > > > > > > > dependencies) are listed correctly in the libdpdk.pc
> > > > > > > > > Libs.private entry, and pkg-config --libs --static
> > > > > > > > > libdpdk.pc
> > > > > > > > > does print them as intended. This is with 18.11-rc3.
> > > > > > > > > Are you sure everything is correct (pkg-config path
> > > > > > > > > is
> > > > > > > > > right, --
> > > > > > > > > static is used, etc)?
> > > > > > > > > 
> > > > > > > > > --
> > > > > > > > > Kind regards,
> > > > > > > > > Luca Boccassi
> > > > > > > > 
> > > > > > > > Hi Luca, here is what pkg-config gives:
> > > > > > > > 
> > > > > > > > PKG_CONFIG_PATH=meson-private/ pkg-config --libs --
> > > > > > > > static
> > > > > > > > libdpdk
> > > > > > > > -L/usr/local/lib/x86_64-linux-gnu -lrte_eventdev
> > > > > > > > -lrte_power
> > > > > > > > -lrte_ip_frag -lrte_hash -lrte_pdump -lrte_eal
> > > > > > > > -lrte_pipeline
> > > > > > > > -lrte_table -lrte_bbdev -lrte_bpf -lrte_vhost
> > > > > > > > -lrte_metrics
> > > > > > > > -lrte_jobstats -lrte_net -lrte_reorder -lrte_ring
> > > > > > > > -lrte_mempool
> > > > > > > > -lrte_security -lrte_compressdev -lrte_rawdev
> > > > > > > > -lrte_mbuf
> > > > > > > > -lrte_kvargs -lrte_port -lrte_pci -lrte_ethdev
> > > > > > > > -lrte_gro
> > > > > > > > -lrte_gso
> > > > > > > > -lrte_cryptodev -lrte_sched -lrte_latencystats
> > > > > > > > -lrte_efd
> > > > > > > > -lrte_distributor -lrte_meter -lrte_acl -lrte_member
> > > > > > > > -lrte_cmdline
> > > > > > > > -lrte_lpm -lrte_kni -lrte_cfgfile -lrte_bitratestats
> > > > > > > > -lrte_timer
> > > > > > > > -lrte_flow_classify -lrte_mempool_bucket
> > > > > > > > -lrte_pmd_null_crypto
> > > > > > > > -lrte_pmd_failsafe -lrte_bus_ifpga -lrte_pmd_atlantic
> > > > > > > > -lrte_pmd_mlx4 -lrte_pmd_vmxnet3 -lrte_pmd_avp
> > > > > > > > -lrte_common_dpaax
> > > > > > > > -lrte_pmd_ena -lcrypto -lrte_bus_fslmc -ldl
> > > > > > > > -lrte_pmd_avf
> > > > > > > > -lrte_pmd_crypto_scheduler -lrte_pmd_netvsc
> > > > > > > > -lrte_pmd_vhost
> > > > > > > > -lrte_bus_dpaa -lrte_mempool_dpaa2
> > > > > > > > -lrte_common_octeontx
> > > > > > > > -lrte_pmd_liquidio -lrte_pmd_ifc -Wl,-Bdynamic -lnuma
> > > > > > > > -lrte_pmd_enic -lrte_common_cpt -pthread
> > > > > > > > -lrte_pmd_octeontx_crypto
> > > > > > > > -lrte_pmd_qat -lrte_bus_vmbus -lrte_pmd_null -lm
> > > > > > > > -lrte_pmd_dpaa
> > > > > > > > -lrte_bus_vdev -lrte_pmd_dpaa2 -lrte_pmd_skeleton_event
> > > > > > > > -lrte_pmd_af_packet -lrte_pmd_octeontx
> > > > > > > > -lrte_pmd_thunderx
> > > > > > > > -lrte_pmd_ring -lrte_pmd_octeontx_event
> > > > > > > > -lrte_pmd_sw_event
> > > > > > > > -lrte_pmd_ark -lrte_mempool_octeontx -lrte_pmd_ixgbe
> > > > > > > > -lrte_pmd_kni
> > > > > > > > -lrte_mempool_ring -lrte_pmd_virtio_crypto
> > > > > > > > -lrte_mempool_dpaa
> > > > > > > > -lrte_pmd_dpaa2_cmdif -lrte_bus_pci
> > > > > > > > -lrte_pmd_opdl_event
> > > > > > > > -lrte_pmd_mlx5 -lrte_pmd_virtio -lrte_pmd_tap
> > > > > > > > -lrte_pmd_caam_jr
> > > > > > > > -lrte_pmd_dpaa2_sec -lrte_pmd_dpaa2_qdma
> > > > > > > > -lrte_pmd_enetc
> > > > > > > > -lrte_pmd_sfc -lrte_pmd_bnxt -lrte_pmd_dpaa2_event
> > > > > > > > -lrte_pmd_cxgbe
> > > > > > > > -Wl,--whole-archive -Wl,--no- as-needed -lrte_pmd_e1000
> > > > > > > > -lrte_pmd_softnic -lrte_pmd_bond -lrte_pmd_fm10k
> > > > > > > > -lrte_pmd_i40e
> > > > > > > > -lrte_pmd_nfp -lrte_pmd_qede -Wl,--no- whole-archive
> > > > > > > > -lrte_pmd_axgbe -lrte_pmd_ccp -lrte_pmd_ifpga_rawdev
> > > > > > > > -lrte_pmd_bbdev_null -lrte_pmd_openssl
> > > > > > > > -lrte_pmd_dsw_event
> > > > > > > > -lrte_pmd_dpaa_event -lrte_mempool_stack
> > > > > > > > -lrte_pmd_vdev_netvsc
> > > > > > > > -lrte_pmd_dpaa_sec -lrte_pmd_skeleton_rawdev
> > > > > > > > -lrte_pmd_octeontx_compress
> > > > > > > > 
> > > > > > > > You'll notice there's no mlx5 or mnl in that list. I
> > > > > > > > was
> > > > > > > > using
> > > > > > > > 18.11-
> > > > > > > > rc2 since I cloned early yesterday. Perhaps meson
> > > > > > > > determined not
> > > > > > > > to put it in there for some reason?
> > > > > > > 
> > > > > > > Were mlx5/mnl found at meson configure time?
> > > > > > > 
> > > > > > > --
> > > > > > > Kind regards,
> > > > > > > Luca Boccassi
> > > > > > 
> > > > > > Hi Luca, yes, it was:
> > > > > > 
> > > > > > Library mnl found: YES
> > > > > > Library mlx4 found: YES
> > > > > > Library ibverbs found: YES
> > > > > > Compiler for C supports argument -Wextra: YES Compiler for
> > > > > > C
> > > > > > supports
> > > > > > argument -std=c11: YES Compiler for C supports argument
> > > > > > -Wno-strict-prototypes: YES Compiler for C supports
> > > > > > argument
> > > > > > -D_BSD_SOURCE: YES Compiler for C supports argument
> > > > > > -D_DEFAULT_SOURCE:
> > > > > > YES Compiler for C supports argument -D_XOPEN_SOURCE=600:
> > > > > > YES
> > > > > > Checking
> > > > > > whether type "struct mlx4_wqe_lso_seg" has member
> > > > > > "mss_hdr_size": YES
> > > > > > Configuring mlx4_autoconf.h using configuration Library mnl
> > > > > > found: YES
> > > > > > Library mlx5 found: YES Library ibverbs found: YES ...
> > > > > > PKG_CONFIG_PATH=meson-private/ pkg-config --libs --static
> > > > > > libdpdk
> > > > > > -L/usr/local/lib/x86_64-linux-gnu -lrte_eventdev
> > > > > > -lrte_power
> > > > > > -lrte_ip_frag -lrte_hash -lrte_pdump -lrte_eal
> > > > > > -lrte_pipeline
> > > > > > -lrte_table -lrte_bbdev -lrte_bpf -lrte_vhost -lrte_metrics
> > > > > > -lrte_jobstats -lrte_net -lrte_reorder -lrte_ring
> > > > > > -lrte_mempool
> > > > > > -lrte_security -lrte_compressdev -lrte_rawdev -lrte_mbuf
> > > > > > -lrte_kvargs
> > > > > > -lrte_port -lrte_pci -lrte_ethdev -lrte_gro -lrte_gso
> > > > > > -lrte_cryptodev
> > > > > > -lrte_sched -lrte_latencystats -lrte_efd -lrte_distributor
> > > > > > -lrte_meter
> > > > > > -lrte_acl -lrte_member -lrte_cmdline -lrte_lpm -lrte_kni
> > > > > > -lrte_cfgfile
> > > > > > -lrte_bitratestats -lrte_timer -lrte_flow_classify
> > > > > > -lrte_pmd_ccp
> > > > > > -lrte_mempool_bucket -lrte_pmd_failsafe -lrte_pmd_netvsc
> > > > > > -lrte_pmd_null_crypto -lrte_bus_ifpga -lrte_pmd_atlantic
> > > > > > -lrte_pmd_octeontx_event -lrte_pmd_avp -lrte_pmd_mlx4
> > > > > > -lrte_common_dpaax -lrte_pmd_skeleton_rawdev -lrte_pmd_ena
> > > > > > -lrte_pmd_opdl_event -lrte_bus_fslmc -lnuma -lrte_pmd_avf
> > > > > > -lrte_pmd_crypto_scheduler -lrte_pmd_vhost -lrte_bus_dpaa
> > > > > > -lrte_mempool_dpaa2 -lrte_common_octeontx -Wl,--no-as-
> > > > > > needed
> > > > > > -lcrypto
> > > > > > -lrte_pmd_ifc -lrte_pmd_liquidio -lrte_pmd_enic
> > > > > > -lrte_common_cpt
> > > > > > -Wl,--no-whole-archive -lrte_bus_vmbus
> > > > > > -lrte_pmd_octeontx_crypto
> > > > > > -lrte_pmd_qat -lrte_pmd_ifpga_rawdev -lrte_pmd_dpaa
> > > > > > -lrte_bus_vdev
> > > > > > -lrte_pmd_bbdev_null -lrte_pmd_dpaa2
> > > > > > -lrte_pmd_skeleton_event
> > > > > > -lrte_pmd_ring -lrte_pmd_af_packet -lrte_pmd_thunderx
> > > > > > -lrte_pmd_dpaa_event -lrte_pmd_octeontx_compress
> > > > > > -lrte_pmd_dpaa_sec
> > > > > > -lrte_pmd_sw_event -Wl,--whole-archive -lrte_pmd_ark
> > > > > > -lrte_mempool_octeontx -lrte_pmd_ixgbe -lrte_mempool_ring
> > > > > > -lrte_pmd_kni -lrte_pmd_vmxnet3 -lrte_mempool_dpaa
> > > > > > -lrte_bus_pci
> > > > > > -lrte_pmd_dpaa2_cmdif -lrte_pmd_mlx5 -lrte_pmd_tap
> > > > > > -lrte_pmd_caam_jr
> > > > > > -lrte_pmd_dpaa2_sec -lm -lrte_pmd_dpaa2_qdma
> > > > > > -lrte_pmd_enetc
> > > > > > -lrte_pmd_virtio -lrte_pmd_bnxt -lrte_pmd_dpaa2_event
> > > > > > -lrte_pmd_sfc
> > > > > > -lrte_pmd_cxgbe -pthread -lrte_pmd_e1000 -lrte_pmd_softnic
> > > > > > -ldl
> > > > > > -lrte_pmd_null -lrte_pmd_bond -lrte_pmd_fm10k
> > > > > > -lrte_pmd_i40e
> > > > > > -lrte_pmd_nfp -lrte_pmd_qede -lrte_pmd_axgbe -Wl,-Bdynamic
> > > > > > -lrte_pmd_openssl -lrte_pmd_octeontx -lrte_pmd_dsw_event
> > > > > > -lrte_mempool_stack -lrte_pmd_virtio_crypto
> > > > > > -lrte_pmd_vdev_netvsc
> > > > > 
> > > > > Is this with latest DPDK from git? because I see the exact
> > > > > same
> > > > > as Luca:
> > > > > 
> > > > > $ PKG_CONFIG_PATH=build/meson-private/ pkg-config --libs --
> > > > > static
> > > > 
> > > > libdpdk | grep mlx
> > > > > -L/usr/local/lib64 -lrte_telemetry -lrte_bpf
> > > > > -lrte_flow_classify
> > > > > -
> > > > 
> > > > lrte_pipeline -lrte_table -lrte_port -lrte_vhost -lrte_security
> > > > -
> > > > lrte_sched -lrte_reorder -lrte_rawdev -lrte_pdump -lrte_power
> > > > -lrte_meter
> > > > -lrte_member -lrte_lpm -lrte_latencystats -lrte_kni
> > > > -lrte_jobstats
> > > > -
> > > > lrte_ip_frag -lrte_gso -lrte_gro -lrte_eventdev -lrte_efd -
> > > > lrte_distributor -lrte_cryptodev -lrte_compressdev
> > > > -lrte_cfgfile -
> > > > lrte_bitratestats -lrte_bbdev -lrte_acl -lrte_timer -lrte_hash
> > > > -
> > > > lrte_metrics -lrte_pci -lrte_ethdev -lrte_net -lrte_mbuf
> > > > -lrte_mempool -
> > > > lrte_ring -lrte_eal -lrte_kvargs -lrte_cmdline
> > > > -L/usr/local/lib64 -
> > > > lrte_kvargs -lrte_eal -lrte_ring -lrte_mempool -lrte_mbuf
> > > > -lrte_pci
> > > > -
> > > > lrte_cryptodev -lrte_net -lrte_cmdline -lrte_ethdev -lrte_hash
> > > > -lrte_timer
> > > > -lrte_common_dpaax -lrte_eventdev -lrte_rawdev -lrte_bus_dpaa -
> > > > lrte_bus_fslmc -lrte_bus_pci -lrte_common_octeontx
> > > > -lrte_bus_vdev -
> > > > lrte_meter -lrte_sched -lrte_ip_frag -lz -lrte_mempool_dpaa -
> > > > lrte_mempool_dpaa2 -lrte_vhost -lrte_security -lrte_kni -lmnl
> > > > -lmlx4 -
> > > > libverbs -lmnl -lmlx5 -libverbs -lrte_bus_vmbus
> > > > -lrte_mempool_octeontx -
> > > > lpcap -lrte_port -lrte_lpm -lrte_acl -lrte_table -lrte_pipeline
> > > > -lsze2 -
> > > > lrte_gso -lIPSec_MB -lIPSec_MB -lrte_common_cpt -lrte_reorder -
> > > > lrte_compressdev -lrte_pmd_dpaa -lrte_pmd_dpaa2
> > > > -lrte_pmd_dpaa2_sec
> > > > -
> > > > lrte_pmd_octeontx -lrte_bbdev -lrte_bus_ifpga -Wl,--whole-
> > > > archive -
> > > > lrte_mempool_bucket -lrte_mempool_ring -lrte_mempool_stack -
> > > > lrte_pmd_af_packet -lrte_pmd_ark -lrte_pmd_atlantic
> > > > -lrte_pmd_avf -
> > > > lrte_pmd_avp -lrte_pmd_axgbe -lrte_pmd_bond -lrte_pmd_bnx2x
> > > > -lrte_pmd_bnxt
> > > > -lrte_pmd_cxgbe -lrte_pmd_e1000 -lrte_pmd_ena -lrte_pmd_enetc -
> > > > lrte_pmd_enic -lrte_pmd_failsafe -lrte_pmd_fm10k -lrte_pmd_i40e
> > > > -
> > > > lrte_pmd_ifc -lrte_pmd_ixgbe -lrte_pmd_kmod -lrte_pmd_kni -
> > > > lrte_pmd_liquidio -lrte_pmd_mlx4 -lrte_pmd_mlx5
> > > > -lrte_pmd_netvsc -
> > > > lrte_pmd_nfp -lrte_pmd_null -lrte_pmd_pcap -lrte_pmd_qede
> > > > -lrte_pmd_ring -
> > > > lrte_pmd_sfc -lrte_pmd_softnic -lrte_pmd_szedata2 -lrte_pmd_tap
> > > > -
> > > > lrte_pmd_thunderx -lrte_pmd_vdev_netvsc -lrte_pmd_vhost
> > > > -lrte_pmd_virtio -
> > > > lrte_pmd_vmxnet3 -lrte_pmd_aesni_gcm -lrte_pmd_aesni_mb
> > > > -lrte_pmd_caam_jr
> > > > -lrte_pmd_ccp -lrte_pmd_dpaa_sec -lrte_pmd_null_crypto -
> > > > lrte_pmd_octeontx_crypto -lrte_pmd_openssl
> > > > -lrte_pmd_crypto_scheduler -
> > > > lrte_pmd_virtio_crypto -lrte_pmd_octeontx_compress
> > > > -lrte_pmd_qat -
> > > > lrte_pmd_zlib -lrte_pmd_dpaa_event -lrte_pmd_dpaa2_event -
> > > > lrte_pmd_octeontx_event -lrte_pmd_opdl_event
> > > > -lrte_pmd_skeleton_event -
> > > > lrte_pmd_sw_event -lrte_pmd_dsw_event -lrte_pmd_bbdev_null -
> > > > lrte_pmd_skeleton_rawdev -lrte_pmd_dpaa2_cmdif
> > > > -lrte_pmd_dpaa2_qdma
> > > > -
> > > > lrte_pmd_ifpga_rawdev -lrte_pmd_ioat_copy -Wl,--no-whole-
> > > > archive
> > > > -Wl,-
> > > > Bdynamic -Wl,--no-as-needed -pthread -lm -ldl -lnuma -lbsd
> > > > -lpcap
> > > > -lcrypto
> > > > -lcrypto -lz -lcrypto -ldl -pthread -lz
> > > > 
> > > > Hi Bruce, I tried with rc3 and a new clone from right now, and
> > > > get
> > > > the
> > > > same results:
> > > > 
> > > > $ meson build
> > > > The Meson build system
> > > > Version: 0.45.1
> > > > Source dir: /home/cburdick/dpdk
> > > > Build dir: /home/cburdick/dpdk/build
> > > > Build type: native build
> > > > Project name: DPDK
> > > > Native C compiler: cc (gcc 7.3.0 "cc (Ubuntu 7.3.0-
> > > > 27ubuntu1~18.04)
> > > > 7.3.0")
> > > > Build machine cpu family: x86_64
> > > > Build machine cpu: x86_64
> > > > Library numa found: YES
> > > > Has header "numaif.h": YES
> > > > Library bsd found: NO
> > > > Checking for size of "void *": 8
> > > > Compiler for C supports argument -Wsign-compare: YES
> > > > Compiler for C supports argument -Wcast-qual: YES
> > > > Compiler for C supports argument -Wno-address-of-packed-member: 
> > > > YES
> > > > Fetching value of define "__SSE4_2__": 1
> > > > Fetching value of define "__AES__": 1
> > > > Fetching value of define "__PCLMUL__": 1
> > > > Fetching value of define "__AVX__": 1
> > > > Fetching value of define "__AVX2__": 1
> > > > Fetching value of define "__AVX512F__":
> > > > Compiler for C supports argument -Wno-format-truncation: YES
> > > > Checking for size of "void *": 8
> > > > Has header "linux/userfaultfd.h": YES
> > > > Checking for size of "void *": 8
> > > > Library elf found: NO
> > > > Library jansson found: NO
> > > > Program gen-pmdinfo-cfile.sh found: YES
> > > > (/home/cburdick/dpdk/buildtools/gen-pmdinfo-cfile.sh)
> > > > Compiler for C supports argument -Wno-format-truncation: YES
> > > > Library libmusdk found: NO
> > > > Compiler for C supports argument -Wno-cast-qual: YES
> > > > Compiler for C supports argument -Wno-pointer-to-int-cast: YES
> > > > Library z found: NO
> > > > Compiler for C supports argument -Wno-uninitialized: YES
> > > > Compiler for C supports argument -Wno-unused-parameter: YES
> > > > Compiler for C supports argument -Wno-unused-variable: YES
> > > > Compiler for C supports argument -Wno-misleading-indentation:
> > > > YES
> > > > Compiler for C supports argument -Wno-implicit-fallthrough: YES
> > > > Checking for size of "void *": 8
> > > > Compiler for C supports argument -Wno-unused-parameter: YES
> > > > Compiler for C supports argument -Wno-unused-value: YES
> > > > Compiler for C supports argument -Wno-strict-aliasing: YES
> > > > Compiler for C supports argument -Wno-format-extra-args: YES
> > > > Compiler for C supports argument -Wno-unused-variable: YES
> > > > Compiler for C supports argument -Wno-missing-field-
> > > > initializers:
> > > > YES
> > > > Compiler for C supports argument -Wno-sign-compare: YES
> > > > Compiler for C supports argument -Wno-unused-value: YES
> > > > Compiler for C supports argument -Wno-format: YES
> > > > Compiler for C supports argument -Wno-error=format-security:
> > > > YES
> > > > Compiler for C supports argument -Wno-strict-aliasing: YES
> > > > Compiler for C supports argument -Wno-unused-but-set-variable:
> > > > YES
> > > > Compiler for C supports argument -Wno-unused-value: YES
> > > > Compiler for C supports argument -Wno-unused-but-set-variable:
> > > > YES
> > > > Library mnl found: YES
> > > > Library mlx4 found: YES
> > > > Library ibverbs found: YES
> > > > Compiler for C supports argument -Wextra: YES
> > > > Compiler for C supports argument -std=c11: YES
> > > > Compiler for C supports argument -Wno-strict-prototypes: YES
> > > > Compiler for C supports argument -D_BSD_SOURCE: YES
> > > > Compiler for C supports argument -D_DEFAULT_SOURCE: YES
> > > > Compiler for C supports argument -D_XOPEN_SOURCE=600: YES
> > > > Checking whether type "struct mlx4_wqe_lso_seg" has member
> > > > "mss_hdr_size":
> > > > YES
> > > > Configuring mlx4_autoconf.h using configuration
> > > > Library mnl found: YES
> > > > Library mlx5 found: YES
> > > > Library ibverbs found: YES
> > > > Compiler for C supports argument -Wextra: YES
> > > > Compiler for C supports argument -std=c11: YES
> > > > Compiler for C supports argument -Wno-strict-prototypes: YES
> > > > Compiler for C supports argument -D_BSD_SOURCE: YES
> > > > Compiler for C supports argument -D_DEFAULT_SOURCE: YES
> > > > Compiler for C supports argument -D_XOPEN_SOURCE=600: YES
> > > > Header <infiniband/mlx5dv.h> has symbol
> > > > "MLX5DV_CQE_RES_FORMAT_CSUM_STRIDX": YES
> > > > Header <infiniband/mlx5dv.h> has symbol
> > > > "MLX5DV_CONTEXT_MASK_TUNNEL_OFFLOADS": YES
> > > > Header <infiniband/mlx5dv.h> has symbol
> > > > "MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED": YES
> > > > Header <infiniband/mlx5dv.h> has symbol
> > > > "MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP": YES
> > > > Header <infiniband/mlx5dv.h> has symbol
> > > > "MLX5DV_CQ_INIT_ATTR_FLAGS_CQE_PAD": YES
> > > > Header <infiniband/mlx5dv.h> has symbol
> > > > "mlx5dv_create_flow_action_packet_reformat": NO
> > > > Header <infiniband/verbs.h> has symbol "IBV_FLOW_SPEC_MPLS":
> > > > YES
> > > > Header <infiniband/verbs.h> has symbol
> > > > "IBV_WQ_FLAG_RX_END_PADDING": NO
> > > > Header <linux/ethtool.h> has symbol
> > > > "SUPPORTED_40000baseKR4_Full":
> > > > YES
> > > > Header <linux/ethtool.h> has symbol
> > > > "SUPPORTED_40000baseCR4_Full":
> > > > YES
> > > > Header <linux/ethtool.h> has symbol
> > > > "SUPPORTED_40000baseSR4_Full":
> > > > YES
> > > > Header <linux/ethtool.h> has symbol
> > > > "SUPPORTED_40000baseLR4_Full":
> > > > YES
> > > > Header <linux/ethtool.h> has symbol
> > > > "SUPPORTED_56000baseKR4_Full":
> > > > YES
> > > > Header <linux/ethtool.h> has symbol
> > > > "SUPPORTED_56000baseCR4_Full":
> > > > YES
> > > > Header <linux/ethtool.h> has symbol
> > > > "SUPPORTED_56000baseSR4_Full":
> > > > YES
> > > > Header <linux/ethtool.h> has symbol
> > > > "SUPPORTED_56000baseLR4_Full":
> > > > YES
> > > > Header <linux/ethtool.h> has symbol
> > > > "ETHTOOL_LINK_MODE_25000baseCR_Full_BIT": YES
> > > > Header <linux/ethtool.h> has symbol
> > > > "ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT": YES
> > > > Header <linux/ethtool.h> has symbol
> > > > "ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT": YES
> > > > Header <linux/if_link.h> has symbol "IFLA_PHYS_SWITCH_ID": YES
> > > > Header <linux/if_link.h> has symbol "IFLA_PHYS_PORT_NAME": YES
> > > > Header <linux/if_link.h> has symbol
> > > > "IFLA_VXLAN_COLLECT_METADATA":
> > > > YES
> > > > Header <linux/rtnetlink.h> has symbol "TCA_CHAIN": YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_ACT": YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_FLAGS": YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_ETH_TYPE":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_ETH_DST":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ETH_DST_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_ETH_SRC":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ETH_SRC_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_IP_PROTO":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_IPV4_SRC":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_IPV4_SRC_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_IPV4_DST":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_IPV4_DST_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_IPV6_SRC":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_IPV6_SRC_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_IPV6_DST":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_IPV6_DST_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_TCP_SRC":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_TCP_SRC_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_TCP_DST":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_TCP_DST_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_UDP_SRC":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_UDP_SRC_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_UDP_DST":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_UDP_DST_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_VLAN_ID":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_VLAN_PRIO":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_VLAN_ETH_TYPE":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_TCP_FLAGS":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_TCP_FLAGS_MASK": YES
> > > > Header <linux/pkt_cls.h> has symbol "TC_ACT_GOTO_CHAIN": YES
> > > > Header <linux/tc_act/tc_vlan.h> has symbol
> > > > "TCA_VLAN_PUSH_VLAN_PRIORITY":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_KEY_ID":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_IPV4_SRC":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_IPV4_DST":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_IPV4_DST_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_IPV6_SRC":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_IPV6_DST":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_IPV6_DST_MASK":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_UDP_SRC_PORT": YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK": YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_UDP_DST_PORT": YES
> > > > Header <linux/pkt_cls.h> has symbol
> > > > "TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK": YES
> > > > Header <linux/tc_act/tc_tunnel_key.h> has symbol
> > > > "TCA_ACT_TUNNEL_KEY": YES
> > > > Header <linux/tc_act/tc_tunnel_key.h> has symbol
> > > > "TCA_TUNNEL_KEY_ENC_DST_PORT": YES
> > > > Header <linux/tc_act/tc_tunnel_key.h> has symbol
> > > > "TCA_TUNNEL_KEY_NO_CSUM":
> > > > YES
> > > > Header <linux/tc_act/tc_pedit.h> has symbol
> > > > "TCA_PEDIT_KEY_EX_HDR_TYPE_UDP": YES
> > > > Header <rdma/rdma_netlink.h> has symbol "RDMA_NL_NLDEV": YES
> > > > Header <rdma/rdma_netlink.h> has symbol "RDMA_NLDEV_CMD_GET":
> > > > YES
> > > > Header <rdma/rdma_netlink.h> has symbol
> > > > "RDMA_NLDEV_CMD_PORT_GET":
> > > > YES
> > > > Header <rdma/rdma_netlink.h> has symbol
> > > > "RDMA_NLDEV_ATTR_DEV_INDEX": YES
> > > > Header <rdma/rdma_netlink.h> has symbol
> > > > "RDMA_NLDEV_ATTR_DEV_NAME":
> > > > YES
> > > > Header <rdma/rdma_netlink.h> has symbol
> > > > "RDMA_NLDEV_ATTR_PORT_INDEX": YES
> > > > Header <rdma/rdma_netlink.h> has symbol
> > > > "RDMA_NLDEV_ATTR_NDEV_INDEX": NO
> > > > Checking whether type "struct mlx5dv_sw_parsing_caps" has
> > > > member
> > > > "sw_parsing_offloads": YES
> > > > Checking whether type "struct ibv_counter_set_init_attr" has
> > > > member
> > > > "counter_set_id": YES
> > > > Checking whether type "struct ibv_counters_init_attr" has
> > > > member
> > > > "comp_mask": NO
> > > > Configuring mlx5_autoconf.h using configuration
> > > > Library libmusdk found: NO
> > > > Library libmusdk found: NO
> > > > Library pcap found: NO
> > > > Compiler for C supports argument -Wno-unused-parameter: YES
> > > > Compiler for C supports argument -Wno-sign-compare: YES
> > > > Compiler for C supports argument -Wno-missing-prototypes: YES
> > > > Compiler for C supports argument -Wno-cast-qual: YES
> > > > Compiler for C supports argument -Wno-unused-function: YES
> > > > Compiler for C supports argument -Wno-unused-variable: YES
> > > > Compiler for C supports argument -Wno-strict-aliasing: YES
> > > > Compiler for C supports argument -Wno-missing-prototypes: YES
> > > > Compiler for C supports argument -Wno-unused-value: YES
> > > > Compiler for C supports argument -Wno-format-nonliteral: YES
> > > > Compiler for C supports argument -Wno-shift-negative-value: YES
> > > > Compiler for C supports argument -Wno-unused-but-set-variable:
> > > > YES
> > > > Compiler for C supports argument -Wno-missing-declarations: YES
> > > > Compiler for C supports argument -Wno-maybe-uninitialized: YES
> > > > Compiler for C supports argument -Wno-strict-prototypes: YES
> > > > Compiler for C supports argument -Wno-shift-negative-value: YES
> > > > Compiler for C supports argument -Wno-implicit-fallthrough: YES
> > > > Compiler for C supports argument -Wno-format-extra-args: YES
> > > > Compiler for C supports argument -Wno-visibility: YES
> > > > Compiler for C supports argument -Wno-empty-body: YES
> > > > Compiler for C supports argument -Wno-invalid-source-encoding:
> > > > YES
> > > > Compiler for C supports argument -Wno-sometimes-uninitialized:
> > > > YES
> > > > Compiler for C supports argument -Wno-pointer-bool-conversion:
> > > > YES
> > > > Checking for size of "void *": 8
> > > > Compiler for C supports argument -Wno-strict-aliasing: YES
> > > > Compiler for C supports argument -Wextra: YES
> > > > Compiler for C supports argument -Wdisabled-optimization: YES
> > > > Compiler for C supports argument -Waggregate-return: YES
> > > > Compiler for C supports argument -Wnested-externs: YES
> > > > Compiler for C supports argument -Wbad-function-cast: YES
> > > > Compiler for C supports argument -Wno-sign-compare: YES
> > > > Compiler for C supports argument -Wno-unused-parameter: YES
> > > > Compiler for C supports argument -Wno-unused-variable: YES
> > > > Compiler for C supports argument -Wno-empty-body: YES
> > > > Compiler for C supports argument -Wno-unused-but-set-variable:
> > > > YES
> > > > Library sze2 found: NO
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_UNSPEC": YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_FLOWER_KEY_VLAN_PRIO":
> > > > YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_BPF_UNSPEC": YES
> > > > Header <linux/pkt_cls.h> has symbol "TCA_BPF_FD": YES
> > > > Header <linux/tc_act/tc_bpf.h> has symbol "TCA_ACT_BPF_UNSPEC":
> > > > YES
> > > > Header <linux/tc_act/tc_bpf.h> has symbol "TCA_ACT_BPF_FD": YES
> > > > Configuring tap_autoconf.h using configuration
> > > > Compiler for C supports argument -fno-prefetch-loop-arrays: YES
> > > > Compiler for C supports argument -Wno-maybe-uninitialized: YES
> > > > Compiler for C supports argument -Wall: YES
> > > > Compiler for C supports argument -Wextra: YES
> > > > Compiler for C supports argument -D_BSD_SOURCE: YES
> > > > Compiler for C supports argument -D_DEFAULT_SOURCE: YES
> > > > Compiler for C supports argument -D_XOPEN_SOURCE=600: YES
> > > > Compiler for C supports argument -Wno-unused-parameter: YES
> > > > Compiler for C supports argument -Wno-unused-value: YES
> > > > Compiler for C supports argument -Wno-strict-aliasing: YES
> > > > Compiler for C supports argument -Wno-format-extra-args: YES
> > > > Library IPSec_MB found: NO
> > > > Library IPSec_MB found: NO
> > > > Found pkg-config: /usr/bin/pkg-config (0.29.1)
> > > > Native dependency libcrypto found: YES 1.1.0g
> > > > Library libsso_kasumi found: NO
> > > > Library libmusdk found: NO
> > > > Dependency libcrypto found: YES (cached)
> > > > Dependency libcrypto found: YES (cached)
> > > > Library libsso_zuc found: NO
> > > > Dependency libisal found: NO
> > > > Dependency zlib found: NO
> > > > Compiler for C supports argument -Wno-sign-compare: YES
> > > > Compiler for C supports argument -Wno-unused-value: YES
> > > > Compiler for C supports argument -Wno-format: YES
> > > > Compiler for C supports argument -Wno-error=format-security:
> > > > YES
> > > > Compiler for C supports argument -Wno-strict-aliasing: YES
> > > > Compiler for C supports argument -Wno-unused-but-set-variable:
> > > > YES
> > > > Library execinfo found: NO
> > > > Compiler for C supports argument -Wno-format-truncation: YES
> > > > Dependency zlib found: NO
> > > > Library execinfo found: NO
> > > > Program doxygen found: NO
> > > > Program sphinx-build found: NO
> > > > kernel/linux/kni/meson.build:16: WARNING: Passed invalid
> > > > keyword
> > > > argument
> > > > "console".
> > > > WARNING: This will become a hard error in the future.
> > > > WARNING: Unknown keyword arguments in target rte_kni: console
> > > > Configuring rte_build_config.h using configuration
> > > > Program buildtools/symlink-drivers-solibs.sh found: YES
> > > > (/bin/sh
> > > > /home/cburdick/dpdk/buildtools/symlink-drivers-solibs.sh)
> > > > Message:
> > > > =================
> > > > Libraries Enabled
> > > > =================
> > > > 
> > > > libs:
> > > > \tcompat, cmdline, kvargs, eal, ring, mempool, mbuf, net,
> > > > \tethdev, pci, metrics, hash, timer, acl, bbdev, bitratestats,
> > > > \tcfgfile, compressdev, cryptodev, distributor, efd, eventdev,
> > > > gro,
> > > > gso,
> > > > \tip_frag, jobstats, kni, latencystats, lpm, member, meter,
> > > > power,
> > > > \tpdump, rawdev, reorder, sched, security, vhost, port, table,
> > > > \tpipeline, flow_classify, bpf,
> > > > 
> > > > Build targets in project: 411
> > > > Found ninja-1.8.2 at /usr/bin/ninja
> > > > [cburdick at dev01 ~/dpdk] (master)
> > > > $ cd build
> > > > [cburdick at dev01 ~/dpdk/build] (master)
> > > > $ ninja
> > > > [1428/1431] Generating igb_uio with a custom command.
> > > > make: Entering directory '/usr/src/linux-headers-4.15.0-20-
> > > > generic'
> > > > Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please
> > > > install
> > > > libelf-dev, libelf-devel or elfutils-libelf-devel"
> > > >   CC
> > > > [M]  /home/cburdick/dpdk/build/kernel/linux/igb_uio/igb_uio.o
> > > >   Building modules, stage 2.
> > > >   MODPOST 1 modules
> > > >  
> > > > CC      /home/cburdick/dpdk/build/kernel/linux/igb_uio/igb_uio.
> > > > mod.
> > > > o
> > > >   LD
> > > > [M]  /home/cburdick/dpdk/build/kernel/linux/igb_uio/igb_uio.ko
> > > > make: Leaving directory '/usr/src/linux-headers-4.15.0-20-
> > > > generic'
> > > > [1431/1431] Generating rte_kni with a custom command.
> > > > make: Entering directory '/usr/src/linux-headers-4.15.0-20-
> > > > generic'
> > > > Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please
> > > > install
> > > > libelf-dev, libelf-devel or elfutils-libelf-devel"
> > > >   CC [M]  /home/cburdick/dpdk/build/kernel/linux/kni/kni_net.o
> > > >   CC [M]  /home/cburdick/dpdk/build/kernel/linux/kni/kni_misc.o
> > > >   CC
> > > > [M]  /home/cburdick/dpdk/build/kernel/linux/kni/kni_ethtool.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/ixgbe/ixgbe_
> > > > etht
> > > > ool.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/ixgbe/ixgbe_
> > > > 8259
> > > > 9.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/ixgbe/ixgbe_
> > > > api.
> > > > o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/ixgbe/ixgbe_
> > > > x540
> > > > .o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/ixgbe/ixgbe_
> > > > comm
> > > > on.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/ixgbe/ixgbe_
> > > > phy.
> > > > o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/ixgbe/ixgbe_
> > > > 8259
> > > > 8.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/ixgbe/ixgbe_
> > > > main
> > > > .o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/ixgbe/kcompa
> > > > t.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/e1000_82
> > > > 575.
> > > > o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/e1000_i2
> > > > 10.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/e1000_mb
> > > > x.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/e1000_ap
> > > > i.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/igb_main
> > > > .o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/igb_vmdq
> > > > .o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/e1000_ma
> > > > nage
> > > > .o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/igb_etht
> > > > ool.
> > > > o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/igb_para
> > > > m.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/e1000_ma
> > > > c.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/e1000_ph
> > > > y.o
> > > >   CC [M]
> > > > /home/cburdick/dpdk/build/kernel/linux/kni/ethtool/igb/e1000_nv
> > > > m.o
> > > >   LD [M]  /home/cburdick/dpdk/build/kernel/linux/kni/rte_kni.o
> > > >   Building modules, stage 2.
> > > >   MODPOST 1 modules
> > > >  
> > > > CC      /home/cburdick/dpdk/build/kernel/linux/kni/rte_kni.mod.
> > > > o
> > > >   LD [M]  /home/cburdick/dpdk/build/kernel/linux/kni/rte_kni.ko
> > > > make: Leaving directory '/usr/src/linux-headers-4.15.0-20-
> > > > generic'
> > > > [cburdick at dev01 ~/dpdk/build] (master)
> > > > $ PKG_CONFIG_PATH=meson-private/ pkg-config --libs --static
> > > > libdpdk|grep
> > > > mlx
> > > > -L/usr/local/lib/x86_64-linux-gnu -lrte_flow_classify
> > > > -lrte_eventdev -
> > > > lrte_ip_frag -lrte_power -lrte_hash -lrte_pdump -lrte_pipeline
> > > > -lrte_table
> > > > -lrte_mbuf -lrte_bbdev -lrte_bpf -lrte_vhost -lrte_metrics
> > > > -lrte_mempool -
> > > > lrte_jobstats -lrte_reorder -lrte_net -lrte_security -lrte_eal
> > > > -lrte_ring
> > > > -lrte_ethdev -lrte_compressdev -lrte_rawdev -lrte_kvargs
> > > > -lrte_pci
> > > > -
> > > > lrte_cfgfile -lrte_gro -lrte_gso -lrte_cryptodev
> > > > -lrte_latencystats
> > > > -
> > > > lrte_sched -lrte_efd -lrte_distributor -lrte_acl -lrte_member -
> > > > lrte_cmdline -lrte_lpm -lrte_meter -lrte_kni -lrte_bitratestats
> > > > -
> > > > lrte_timer -lrte_port -lrte_mempool_bucket
> > > > -lrte_pmd_vdev_netvsc -
> > > > lrte_pmd_ark -lrte_pmd_failsafe -lrte_pmd_netvsc
> > > > -lrte_pmd_null_crypto -
> > > > lrte_bus_ifpga -lrte_common_dpaax -lrte_pmd_ixgbe
> > > > -lrte_mempool_ring -
> > > > lrte_pmd_kni -lrte_pmd_vmxnet3 -lrte_pmd_mlx4 -lrte_pmd_virtio
> > > > -Wl,--no-
> > > > as-needed -lrte_mempool_dpaa -lrte_pmd_ena -lrte_bus_fslmc
> > > > -lrte_pmd_avf -
> > > > lrte_pmd_dpaa2_sec -lrte_common_octeontx
> > > > -lrte_pmd_skeleton_rawdev
> > > > -
> > > > lrte_pmd_crypto_scheduler -lrte_pmd_dpaa2_qdma -lrte_pmd_vhost
> > > > -ldl
> > > > -
> > > > lrte_bus_dpaa -lrte_pmd_fm10k -lrte_pmd_bnxt -lrte_pmd_qat
> > > > -lrte_pmd_bond
> > > > -lrte_pmd_axgbe -lrte_pmd_dpaa2 -lrte_pmd_skeleton_event -
> > > > lrte_pmd_dpaa_event -lrte_mempool_stack -pthread -lrte_pmd_ccp
> > > > -
> > > > lrte_pmd_octeontx_compress -lrte_pmd_sw_event
> > > > -lrte_mempool_octeontx -Wl,-
> > > > Bdynamic -lrte_pmd_dpaa_sec -lrte_pmd_atlantic
> > > > -lrte_pmd_octeontx_event -
> > > > lrte_pmd_avp -lrte_bus_pci -lrte_pmd_dpaa2_cmdif -lrte_pmd_mlx5
> > > > -
> > > > lrte_pmd_opdl_event -lrte_pmd_tap -lrte_pmd_caam_jr
> > > > -lrte_pmd_sfc
> > > > -lcrypto
> > > > -lrte_pmd_enetc -lrte_mempool_dpaa2 -lrte_pmd_dpaa2_event
> > > > -lrte_pmd_ifc -
> > > > lrte_pmd_liquidio -lrte_pmd_cxgbe -lm -lrte_pmd_enic
> > > > -lrte_bus_vdev
> > > > -
> > > > lrte_pmd_e1000 -lrte_pmd_softnic -lrte_pmd_ifpga_rawdev
> > > > -lrte_bus_vmbus -
> > > > lrte_pmd_octeontx_crypto -lrte_pmd_null -lnuma -lrte_common_cpt
> > > > -
> > > > lrte_pmd_nfp -lrte_pmd_qede -lrte_pmd_i40e -lrte_pmd_dpaa -Wl,
> > > > --whole-
> > > > archive -lrte_pmd_bbdev_null -lrte_pmd_af_packet
> > > > -lrte_pmd_thunderx
> > > > -
> > > > lrte_pmd_openssl -lrte_pmd_octeontx -lrte_pmd_dsw_event -Wl,
> > > > --no-
> > > > whole-
> > > > archive -lrte_pmd_ring -lrte_pmd_virtio_crypto
> > > 
> > > That is strange. Can you try one last thing - can you update
> > > meson
> > > with "pip3 install --upgrade meson" and see if that makes any
> > > difference? [If you are using your distro's meson from /usr/bin
> > > right
> > > now, you'll probably also need to run "hash meson" afterwards
> > > too].
> > > Perhaps we have a hidden dependency on later meson versions or
> > > something like that.
> > > 
> > > /Bruce
> > 
> > We do - I can reproduce the same issue with 0.45.1, while normally
> > I
> > run 0.47.2. Should we bump the minimum version? Or simply document
> > it?
> > 
> 
> Bumping the minimum version would be really nice generally for DPDK,
> but I
> don't think this is the point in the release cycle to do so. I need
> to try
> and track down why this is broken with older mesons - most version
> specific
> things are harmless, and I'd like to keep it that way! 
> 
> If we can't fix this in rc4, then document, I suggest. That way we
> don't
> require absolutely everyone to use bleeding-edge meson.
> 
> /Bruce

I don't think it's anything we do, it's a feature Meson gained in 0.45:

"libraries: a list of built libraries (usually results of
shared_library) that the user needs to link against. Arbitrary strings
can also be provided and they will be added into the Libs field. Since
0.45.0 dependencies of built libraries will be automatically added to
Libs.private field. If a dependency is provided by pkg-config then it
will be added in Requires.private instead. Other type of dependency
objects can also be passed and will result in their link_args and
compile_args to be added to Libs and Cflags fields.

libraries_private: list of built libraries or strings to put in the
Libs.private field. Since 0.45.0 it can also contain dependency
objects, their link_args will be added to Libs.private."

https://mesonbuild.com/Pkgconfig-module.html

We could do all of that manually, but IMHO it's fine to document and
then bump the minimum version for 19.02. I'll send a patch to update
the doc, let me know if you prefer another solution.

-- 
Kind regards,
Luca Boccassi


More information about the dev mailing list