What is the point of adding librte_node a second time separately? Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- app/test/meson.build | 4 +--- examples/meson.build | 4 +--- lib/meson.build | 3 --- meson.build | 1 - 4 files changed, 2 insertions(+), 10 deletions(-) diff --git a/app/test/meson.build b/app/test/meson.build index b224d6f2bb..da5f39f018 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -415,15 +415,13 @@ endforeach test_dep_objs += cc.find_library('execinfo', required: false) link_libs = [] -link_nodes = [] if get_option('default_library') == 'static' link_libs = dpdk_static_libraries + dpdk_drivers - link_nodes = dpdk_graph_nodes endif dpdk_test = executable('dpdk-test', test_sources, - link_whole: link_libs + link_nodes, + link_whole: link_libs, dependencies: test_dep_objs, c_args: cflags, install_rpath: driver_install_path, diff --git a/examples/meson.build b/examples/meson.build index 120eebf716..eb13e82101 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -2,10 +2,8 @@ # Copyright(c) 2017-2019 Intel Corporation link_whole_libs = [] -node_libs = [] if get_option('default_library') == 'static' link_whole_libs = dpdk_static_libraries + dpdk_drivers - node_libs = dpdk_graph_nodes endif execinfo = cc.find_library('execinfo', required: false) @@ -101,7 +99,7 @@ foreach example: examples endif executable('dpdk-' + name, sources, include_directories: includes, - link_whole: link_whole_libs + node_libs, + link_whole: link_whole_libs, link_args: dpdk_extra_ldflags, c_args: cflags, dependencies: dep_objs) diff --git a/lib/meson.build b/lib/meson.build index c1b9e1633f..8ca25172c3 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -202,9 +202,6 @@ foreach l:libraries dpdk_libraries = [shared_lib] + dpdk_libraries dpdk_static_libraries = [static_lib] + dpdk_static_libraries - if libname == 'rte_node' - dpdk_graph_nodes = [static_lib] - endif endif # sources.length() > 0 set_variable('shared_rte_' + name, shared_dep) diff --git a/meson.build b/meson.build index d21adfd303..e8bb9c4c1e 100644 --- a/meson.build +++ b/meson.build @@ -16,7 +16,6 @@ cc = meson.get_compiler('c') dpdk_conf = configuration_data() dpdk_libraries = [] dpdk_static_libraries = [] -dpdk_graph_nodes = [] dpdk_driver_classes = [] dpdk_drivers = [] dpdk_extra_ldflags = [] -- 2.26.2
On Wed, Jul 01, 2020 at 08:05:06PM +0200, Thomas Monjalon wrote:
> What is the point of adding librte_node a second time separately?
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
I suspect that this is a hangover from when we did not explicitly
link_whole all DPDK libs.
On Thu, Jul 2, 2020 at 2:48 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Wed, Jul 01, 2020 at 08:05:06PM +0200, Thomas Monjalon wrote:
> > What is the point of adding librte_node a second time separately?
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
>
> I suspect that this is a hangover from when we did not explicitly
> link_whole all DPDK libs.
Yes. The constructor functions are not getting linked if there is NO
dependency from this library.
02/07/2020 11:53, Jerin Jacob:
> On Thu, Jul 2, 2020 at 2:48 PM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > On Wed, Jul 01, 2020 at 08:05:06PM +0200, Thomas Monjalon wrote:
> > > What is the point of adding librte_node a second time separately?
> > >
> > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > > ---
> >
> > I suspect that this is a hangover from when we did not explicitly
> > link_whole all DPDK libs.
>
> Yes. The constructor functions are not getting linked if there is NO
> dependency from this library.
OK, so I can change the commit log to explain that it is not needed
anymore because we link whole, including register.
The node library had a need of being linked as a whole to make some constructors effective. Now that all libraries are linked with --whole-archive, there is no need to have this library separate. Fixes: e2db26f76673 ("build: always link whole DPDK static libraries") Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- v2: write real commit log --- app/test/meson.build | 4 +--- examples/meson.build | 4 +--- lib/meson.build | 3 --- meson.build | 1 - 4 files changed, 2 insertions(+), 10 deletions(-) diff --git a/app/test/meson.build b/app/test/meson.build index b224d6f2bb..da5f39f018 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -415,15 +415,13 @@ endforeach test_dep_objs += cc.find_library('execinfo', required: false) link_libs = [] -link_nodes = [] if get_option('default_library') == 'static' link_libs = dpdk_static_libraries + dpdk_drivers - link_nodes = dpdk_graph_nodes endif dpdk_test = executable('dpdk-test', test_sources, - link_whole: link_libs + link_nodes, + link_whole: link_libs, dependencies: test_dep_objs, c_args: cflags, install_rpath: driver_install_path, diff --git a/examples/meson.build b/examples/meson.build index 120eebf716..eb13e82101 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -2,10 +2,8 @@ # Copyright(c) 2017-2019 Intel Corporation link_whole_libs = [] -node_libs = [] if get_option('default_library') == 'static' link_whole_libs = dpdk_static_libraries + dpdk_drivers - node_libs = dpdk_graph_nodes endif execinfo = cc.find_library('execinfo', required: false) @@ -101,7 +99,7 @@ foreach example: examples endif executable('dpdk-' + name, sources, include_directories: includes, - link_whole: link_whole_libs + node_libs, + link_whole: link_whole_libs, link_args: dpdk_extra_ldflags, c_args: cflags, dependencies: dep_objs) diff --git a/lib/meson.build b/lib/meson.build index c1b9e1633f..8ca25172c3 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -202,9 +202,6 @@ foreach l:libraries dpdk_libraries = [shared_lib] + dpdk_libraries dpdk_static_libraries = [static_lib] + dpdk_static_libraries - if libname == 'rte_node' - dpdk_graph_nodes = [static_lib] - endif endif # sources.length() > 0 set_variable('shared_rte_' + name, shared_dep) diff --git a/meson.build b/meson.build index d21adfd303..e8bb9c4c1e 100644 --- a/meson.build +++ b/meson.build @@ -16,7 +16,6 @@ cc = meson.get_compiler('c') dpdk_conf = configuration_data() dpdk_libraries = [] dpdk_static_libraries = [] -dpdk_graph_nodes = [] dpdk_driver_classes = [] dpdk_drivers = [] dpdk_extra_ldflags = [] -- 2.26.2
On Thu, Jul 2, 2020 at 9:39 PM Thomas Monjalon <thomas@monjalon.net> wrote: > > The node library had a need of being linked as a whole > to make some constructors effective. > Now that all libraries are linked with --whole-archive, > there is no need to have this library separate. > > Fixes: e2db26f76673 ("build: always link whole DPDK static libraries") > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Tested the change with: echo "node_list_dump" | sudo ./build/app/test/dpdk-test -c 0x3 Tested-by: Jerin Jacob <jerinj@marvell.com> > --- > v2: write real commit log > --- > app/test/meson.build | 4 +--- > examples/meson.build | 4 +--- > lib/meson.build | 3 --- > meson.build | 1 - > 4 files changed, 2 insertions(+), 10 deletions(-) > > diff --git a/app/test/meson.build b/app/test/meson.build > index b224d6f2bb..da5f39f018 100644 > --- a/app/test/meson.build > +++ b/app/test/meson.build > @@ -415,15 +415,13 @@ endforeach > test_dep_objs += cc.find_library('execinfo', required: false) > > link_libs = [] > -link_nodes = [] > if get_option('default_library') == 'static' > link_libs = dpdk_static_libraries + dpdk_drivers > - link_nodes = dpdk_graph_nodes > endif > > dpdk_test = executable('dpdk-test', > test_sources, > - link_whole: link_libs + link_nodes, > + link_whole: link_libs, > dependencies: test_dep_objs, > c_args: cflags, > install_rpath: driver_install_path, > diff --git a/examples/meson.build b/examples/meson.build > index 120eebf716..eb13e82101 100644 > --- a/examples/meson.build > +++ b/examples/meson.build > @@ -2,10 +2,8 @@ > # Copyright(c) 2017-2019 Intel Corporation > > link_whole_libs = [] > -node_libs = [] > if get_option('default_library') == 'static' > link_whole_libs = dpdk_static_libraries + dpdk_drivers > - node_libs = dpdk_graph_nodes > endif > > execinfo = cc.find_library('execinfo', required: false) > @@ -101,7 +99,7 @@ foreach example: examples > endif > executable('dpdk-' + name, sources, > include_directories: includes, > - link_whole: link_whole_libs + node_libs, > + link_whole: link_whole_libs, > link_args: dpdk_extra_ldflags, > c_args: cflags, > dependencies: dep_objs) > diff --git a/lib/meson.build b/lib/meson.build > index c1b9e1633f..8ca25172c3 100644 > --- a/lib/meson.build > +++ b/lib/meson.build > @@ -202,9 +202,6 @@ foreach l:libraries > > dpdk_libraries = [shared_lib] + dpdk_libraries > dpdk_static_libraries = [static_lib] + dpdk_static_libraries > - if libname == 'rte_node' > - dpdk_graph_nodes = [static_lib] > - endif > endif # sources.length() > 0 > > set_variable('shared_rte_' + name, shared_dep) > diff --git a/meson.build b/meson.build > index d21adfd303..e8bb9c4c1e 100644 > --- a/meson.build > +++ b/meson.build > @@ -16,7 +16,6 @@ cc = meson.get_compiler('c') > dpdk_conf = configuration_data() > dpdk_libraries = [] > dpdk_static_libraries = [] > -dpdk_graph_nodes = [] > dpdk_driver_classes = [] > dpdk_drivers = [] > dpdk_extra_ldflags = [] > -- > 2.26.2 >
04/07/2020 16:22, Jerin Jacob:
> On Thu, Jul 2, 2020 at 9:39 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > The node library had a need of being linked as a whole
> > to make some constructors effective.
> > Now that all libraries are linked with --whole-archive,
> > there is no need to have this library separate.
> >
> > Fixes: e2db26f76673 ("build: always link whole DPDK static libraries")
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>
> Tested the change with: echo "node_list_dump" | sudo
> ./build/app/test/dpdk-test -c 0x3
>
> Tested-by: Jerin Jacob <jerinj@marvell.com>
Applied