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

Thomas Monjalon thomas.monjalon at 6wind.com
Fri Jun 10 12:18:29 CEST 2016


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'



More information about the dev mailing list