mempool: remove inline functions from export list

Message ID 20200422073744.21804-1-fady@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series mempool: remove inline functions from export list |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/travis-robot success Travis build: passed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing fail Testing issues

Commit Message

Fady Bader April 22, 2020, 7:37 a.m. UTC
  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(-)
  

Comments

Andrew Rybchenko April 23, 2020, 12:53 p.m. UTC | #1
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>
  
Thomas Monjalon April 24, 2020, 4:13 p.m. UTC | #2
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
  

Patch

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;