The code didn't compile when using exported mempool functions under windows. compilation error logs: rte_mempool_exports.def : error LNK2001: unresolved external symbol rte_mempool_cache_flush rte_mempool_exports.def : error LNK2001: unresolved external symbol rte_mempool_default_cache rte_mempool_exports.def : error LNK2001: unresolved external symbol rte_mempool_generic_get rte_mempool_exports.def : error LNK2001: unresolved external symbol rte_mempool_generic_put lib\librte_mempool.dll.a : fatal error LNK1120: 4 unresolved externals clang: error: linker command failed with exit code 1120 (use -v to see invocation) [77/77] Linking target drivers/librte_bus_pci-0.200.2.dll. ninja: build stopped: subcommand failed. The cause was that there were some inline functions that were included in the export list. To solve this the functions were removed from rte_mempool_version.map export list which are implemented in the header and shouldn't be exported. Fixes: 4b5062755aa74517ed1d7bd ("mempool: allow user-owned cache") Fixes: 656f2d3ede96902202a1a5f ("mempool: deprecate specific get and put functions") Cc: stable@dpdk.org Signed-off-by: Fady Bader <fady@mellanox.com> --- lib/librte_mempool/rte_mempool_version.map | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map index d002dfc46..d67ed2e2b 100644 --- a/lib/librte_mempool/rte_mempool_version.map +++ b/lib/librte_mempool/rte_mempool_version.map @@ -4,18 +4,14 @@ DPDK_20.0 { rte_mempool_audit; rte_mempool_avail_count; rte_mempool_cache_create; - rte_mempool_cache_flush; rte_mempool_cache_free; rte_mempool_calc_obj_size; rte_mempool_check_cookies; rte_mempool_contig_blocks_check_cookies; rte_mempool_create; rte_mempool_create_empty; - rte_mempool_default_cache; rte_mempool_dump; rte_mempool_free; - rte_mempool_generic_get; - rte_mempool_generic_put; rte_mempool_in_use_count; rte_mempool_list_dump; rte_mempool_lookup; -- 2.16.1.windows.4
On 4/22/20 10:37 AM, Fady Bader wrote:
> The code didn't compile when using exported mempool functions under windows.
>
> compilation error logs:
> rte_mempool_exports.def : error LNK2001:
> unresolved external symbol rte_mempool_cache_flush
> rte_mempool_exports.def : error LNK2001:
> unresolved external symbol rte_mempool_default_cache
> rte_mempool_exports.def : error LNK2001:
> unresolved external symbol rte_mempool_generic_get
> rte_mempool_exports.def : error LNK2001:
> unresolved external symbol rte_mempool_generic_put
> lib\librte_mempool.dll.a : fatal error LNK1120: 4 unresolved externals
> clang: error: linker command failed with exit code 1120 (use -v to see invocation)
> [77/77] Linking target drivers/librte_bus_pci-0.200.2.dll.
> ninja: build stopped: subcommand failed.
>
> The cause was that there were some inline functions that were included
> in the export list.
> To solve this the functions were removed from rte_mempool_version.map
> export list which are implemented in the header and shouldn't be exported.
>
> Fixes: 4b5062755aa74517ed1d7bd ("mempool: allow user-owned cache")
> Fixes: 656f2d3ede96902202a1a5f ("mempool: deprecate specific get and put functions")
> Cc: stable@dpdk.org
>
> Signed-off-by: Fady Bader <fady@mellanox.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
23/04/2020 14:53, Andrew Rybchenko:
> On 4/22/20 10:37 AM, Fady Bader wrote:
> > The code didn't compile when using exported mempool functions under windows.
> >
> > compilation error logs:
> > rte_mempool_exports.def : error LNK2001:
> > unresolved external symbol rte_mempool_cache_flush
> > rte_mempool_exports.def : error LNK2001:
> > unresolved external symbol rte_mempool_default_cache
> > rte_mempool_exports.def : error LNK2001:
> > unresolved external symbol rte_mempool_generic_get
> > rte_mempool_exports.def : error LNK2001:
> > unresolved external symbol rte_mempool_generic_put
> > lib\librte_mempool.dll.a : fatal error LNK1120: 4 unresolved externals
> > clang: error: linker command failed with exit code 1120 (use -v to see invocation)
> > [77/77] Linking target drivers/librte_bus_pci-0.200.2.dll.
> > ninja: build stopped: subcommand failed.
> >
> > The cause was that there were some inline functions that were included
> > in the export list.
> > To solve this the functions were removed from rte_mempool_version.map
> > export list which are implemented in the header and shouldn't be exported.
> >
> > Fixes: 4b5062755aa74517ed1d7bd ("mempool: allow user-owned cache")
> > Fixes: 656f2d3ede96902202a1a5f ("mempool: deprecate specific get and put functions")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Fady Bader <fady@mellanox.com>
>
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Applied, thanks