[dpdk-dev] [PATCH 2/2] mk: reduce scope of whole-archive to pmd libraries

Thomas Monjalon thomas.monjalon at 6wind.com
Fri Jun 10 14:21:01 CEST 2016


2016-06-10 12:06, Ferruh Yigit:
> On 6/10/2016 11:18 AM, Thomas Monjalon wrote:
> > 2016-06-10 10:57, Ferruh Yigit:
> >> On 6/10/2016 10:03 AM, Thomas Monjalon wrote:
> >>> 2016-05-27 17:48, Ferruh Yigit:
> >>>> --whole-archive argument only required for pmd libraries, and currently
> >>>> it covers more libraries. Reducing scope of the argument to pmd
> >>>> libraries slightly reduce final application size.
> >>>
> >>> In my understanding, --whole-archive is required for static libraries used
> >>> by plugins:
> >>> 	http://dpdk.org/commit/20afd76a
> >> Right, required for static libraries. But more than used by plugins,
> >> required for plugin to work.
> >>
> >>> If we want to restrict it, I would say it must be around EAL, ring,
> >>> mbuf, mempool, ethdev, cryptodev, etc.
> >>>
> >>
> >> We should restrict to plugins. What happens is, since there is no direct
> >> call to PMDs from application, PMD code is not included into final
> >> application. To force PMDs to be included into final binary,
> >> --whole-archive is required.
> >>
> >> But --whole-archive is not required for other libraries, and just cause
> >> unnecessary increase in binary size.
> > 
> > Yes it is necessary for other libraries, otherwise some symbols needed by
> > plugins won't be available.
> > Example:
> > In function `rte_pmd_af_packet_devuninit':
> > rte_eth_af_packet.c:(.text+0x8bf): undefined reference to `rte_eth_dev_allocated'
> > rte_eth_af_packet.c:(.text+0x930): undefined reference to `rte_eth_dev_release_port'
> > 
> If there is a direct call to that API, linker should include required
> object file into final binary, --whole-archive shouldn't be required for
> this.
> 
> What is special for PMD's is there are not directly called, but
> initialized using constructors.
> 
> How are you getting above compilation error?

The error was generated with your patch on top of others I'm going to send.
I suggest to continue the discussion/review based on the v2 coming soon.


More information about the dev mailing list