[dpdk-dev] building shared library

De Lara Guarch, Pablo pablo.de.lara.guarch at intel.com
Tue Nov 11 16:26:04 CET 2014



> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Newman Poborsky
> Sent: Tuesday, November 11, 2014 3:17 PM
> To: Gonzalez Monroy, Sergio
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] building shared library
> 
> Hi,
> 
> after building DPDK libs as shared libraries and linking it, I'm back to my
> first problem: rte_eal_driver_register() never gest called and my app
> crashes since there are no drivers registered.  As previously mentioned, in
> regular DPDK user app this functions is called for every driver before
> main(). How?

If I am not wrong here, you have to use the -d option to specify the driver you want to use.

Btw, the option you were looking for can be found in config/common_linuxapp or config/common_bsdapp.

Pablo
> 
> BR,
> Newman
> 
> On Tue, Nov 11, 2014 at 3:44 PM, Newman Poborsky
> <newman555p at gmail.com>
> wrote:
> 
> > Hi Sergio,
> >
> > no, that sounds good, thank you.  Since I'm not that familiar with DPDK
> > build system, where should this option be set? In 'lib' folder's Makefile?
> >
> > Thank you once again!
> >
> > BR,
> > Newman
> >
> > On Tue, Nov 11, 2014 at 3:18 PM, Sergio Gonzalez Monroy <
> > sergio.gonzalez.monroy at intel.com> wrote:
> >
> >> On Tue, Nov 11, 2014 at 01:10:29PM +0100, Newman Poborsky wrote:
> >> > Hi,
> >> >
> >> > I want to build one .so file with my app (it contains API that I want to
> >> > call through JNI) and all DPDK libs that I use in my app.
> >> >
> >> > As I've already mentioned, when I build and start my dpdk app as a
> >> > standalone application, I can see that before main() is called, there
> >> is a
> >> > call to 'rte_eal_driver_register()' function for every driver. When I
> >> build
> >> > .so file, this does not happen and no driver is registered so everyting
> >> > after rte_eal_init() fails.
> >> >
> >> Hi Newman,
> >>
> >> AFAIK the current build system does not support that.
> >>
> >> You can build DPDK as shared libs by setting the following config option:
> >> CONFIG_RTE_BUILD_SHARED_LIB=y
> >>
> >> Then build your app as an .so that links against DPDK libs, so you have
> >> explicit dependencies (such dependencies should show with ldd).
> >>
> >> Is there any reason why you want everything to be a single .so ?
> >>
> >> I don't know much about how Java loads DSOs but I reckon that it must
> >> resolve
> >> explicit dependencies such as libc.
> >>
> >> Thanks,
> >> Sergio
> >>
> >>
> >> >
> >> > BR,
> >> > Newman
> >> >
> >>
> >
> >


More information about the dev mailing list