All of lore.kernel.org
 help / color / mirror / Atom feed
* DPDK 18.02 on ARM64 is broken
@ 2018-02-22 14:23 Marco Varlese
  2018-02-22 14:33 ` Gaëtan Rivet
  2018-02-22 17:28 ` Hemant Agrawal
  0 siblings, 2 replies; 13+ messages in thread
From: Marco Varlese @ 2018-02-22 14:23 UTC (permalink / raw)
  To: dev

Hi,

I am trying to build the latest DPDK (18.02) but facing some issues on ARM64
platform.

I'm using the option CONFIG_RTE_MAJOR_ABI to set the SONAME to 18.02.

===== START ===== 
The error is connected to building the librte_pmd_dpaa.so. Please, see below:
[  405s] /usr/lib64/gcc/aarch64-suse-linux/7/../../../../aarch64-suse-
linux/bin/ld: warning: librte_bus_dpaa.so.18.02, needed by
/home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so, not found (try using -rpath or -rpath-link)
[  405s] /usr/lib64/gcc/aarch64-suse-linux/7/../../../../aarch64-suse-
linux/bin/ld: warning: librte_mempool_dpaa.so.18.02, needed by
/home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so, not found (try using -rpath or -rpath-link)
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_reset_mcast_filt
er_table@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_alloc_pool_range@DP
DK_18.02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `rte_dpaa_portal_init@DPD
K_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_add_mac_addr@DPD
K_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_disable_rx@DPDK_
17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_fc_threshold
@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_delete_cgr@DPDK_18.
02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_create_cgr@DPDK_18.
02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_dqrr_consume@DPDK_1
7.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_global_init@DPDK_17
.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_promiscuous_disa
ble@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `per_lcore_dpaa_io@DPDK_1
8.02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `dpaa_svr_family@DPDK_18.
02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_clear_mac_addr@D
PDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_enable_rx@DPDK_1
7.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_init_fq@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `per_lcore_held_bufs@DPDK
_18.02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `dpaa_logtype_pmd@DPDK_17
.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_maxfrm@DPDK_
17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_stats_get@DPDK_1
7.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_dealloc_bufs_mask_h
i@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_get_fc_threshold
@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_loopback_disable
@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_dequeue@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `dpaa_netcfg@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_promiscuous_enab
le@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `bman_acquire@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_mcast_filter
_table@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_discard_rx_error
s@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_set_vdq@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `rte_dpaa_portal_fq_init@
DPDK_18.02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_portal_poll_rx@DPDK
_18.02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_modify_cgr@DPDK_18.
02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_create_fq@DPDK_17.1
1'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_query_fq_frm_cnt@DP
DK_18.02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `rte_dpaa_driver_register
@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_ip_rev@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_get_fc_quanta@DP
DK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_stats_get_all@DP
DK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_enqueue_multi@DPDK_
17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_fdoff@DPDK_1
7.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_ic_params@DP
DK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_get_fdoff@DPDK_1
7.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `bman_global_init@DPDK_17
.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_alloc_cgrid_range@D
PDK_18.02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_loopback_enable@
DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_stats_reset@DPDK
_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_bp@DPDK_17.1
1'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_reserve_fqid_range@
DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `qman_release_cgrid_range
@DPDK_18.02'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_fc_quanta@DP
DK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `fman_dealloc_bufs_mask_l
o@DPDK_17.11'
[  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_pmd_dpaa.so: undefined reference to `rte_dpaa_bpid_info@DPDK_
17.11'
[  405s] collect2: error: ld returned 1 exit status
===== END ===== 

Despite the error saying that the librte_mempool_dpaa.so.18.02 cannot be found,
I can see it being built somewhere earlier in the compilation process. Please,
see below:
===== START ===== 
[  216s] gcc  -DVERSION="18.02" -L/home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-
armv8a-linuxapp-gcc-default/lib -Wl,--version-
script=/home/abuild/rpmbuild/BUILD/dpdk-
18.02/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map  -shared
dpaa2_hw_mempool.o -z defs -lrte_bus_fslmc -lrte_eal -lrte_mempool -lrte_ring
-Wl,-soname,librte_mempool_dpaa2.so.18.02 -o librte_mempool_dpaa2.so.18.02 
[  216s] gcc  -DVERSION="18.02" -L/home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-
armv8a-linuxapp-gcc-default/lib -Wl,--version-
script=/home/abuild/rpmbuild/BUILD/dpdk-
18.02/drivers/mempool/dpaa/rte_mempool_dpaa_version.map  -shared dpaa_mempool.o
-z defs -lrte_bus_dpaa -lrte_eal -lrte_mempool -lrte_ring -Wl,-
soname,librte_mempool_dpaa.so.18.02 -o librte_mempool_dpaa.so.18.02 
[  216s]   INSTALL-LIB librte_mempool_dpaa2.so.18.02
[  216s] cp -f librte_mempool_dpaa2.so.18.02 /home/abuild/rpmbuild/BUILD/dpdk-
18.02/arm64-armv8a-linuxapp-gcc-default/lib
[  216s] ln -s -f librte_mempool_dpaa2.so.18.02
/home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
default/lib/librte_mempool_dpaa2.so
[  217s]   INSTALL-LIB librte_mempool_dpaa.so.18.02
[  217s] cp -f librte_mempool_dpaa.so.18.02 /home/abuild/rpmbuild/BUILD/dpdk-
18.02/arm64-armv8a-linuxapp-gcc-default/lib
[  217s] ln -s -f librte_mempool_dpaa.so.18.02 /home/abuild/rpmbuild/BUILD/dpdk-
18.02/arm64-armv8a-linuxapp-gcc-default/lib/librte_mempool_dpaa.so
===== END ===== 


Cheers,
-- 
Marco V

SUSE LINUX GmbH | GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg) Maxfeldstr. 5, D-90409, Nürnberg

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: DPDK 18.02 on ARM64 is broken
  2018-02-22 14:23 DPDK 18.02 on ARM64 is broken Marco Varlese
@ 2018-02-22 14:33 ` Gaëtan Rivet
  2018-02-22 17:28 ` Hemant Agrawal
  1 sibling, 0 replies; 13+ messages in thread
From: Gaëtan Rivet @ 2018-02-22 14:33 UTC (permalink / raw)
  To: Marco Varlese; +Cc: dev

Hi Marco,

On Thu, Feb 22, 2018 at 03:23:47PM +0100, Marco Varlese wrote:
> Hi,
> 
> I am trying to build the latest DPDK (18.02) but facing some issues on ARM64
> platform.
> 
> I'm using the option CONFIG_RTE_MAJOR_ABI to set the SONAME to 18.02.
> 

Just to put things in their context for the DPAA maintainers (who may
have missed the IRC conversation): the error occurs with SHARED=y.
Some symbols are not properly exported it seems.

<snip>

> 
> 
> Cheers,
> -- 
> Marco V
> 
> SUSE LINUX GmbH | GF: Felix Imendörffer, Jane Smithard, Graham Norton
> HRB 21284 (AG Nürnberg) Maxfeldstr. 5, D-90409, Nürnberg

Regards,
-- 
Gaëtan Rivet
6WIND

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: DPDK 18.02 on ARM64 is broken
  2018-02-22 14:23 DPDK 18.02 on ARM64 is broken Marco Varlese
  2018-02-22 14:33 ` Gaëtan Rivet
@ 2018-02-22 17:28 ` Hemant Agrawal
  2018-02-22 20:00   ` Marco Varlese
  1 sibling, 1 reply; 13+ messages in thread
From: Hemant Agrawal @ 2018-02-22 17:28 UTC (permalink / raw)
  To: Marco Varlese, dev

Hi Marco/Gaetan,

On 2/22/2018 7:53 PM, Marco Varlese wrote:
> Hi,
> 
> I am trying to build the latest DPDK (18.02) but facing some issues on ARM64
> platform.
> 
> I'm using the option CONFIG_RTE_MAJOR_ABI to set the SONAME to 18.02.
> 
you mean you configured CONFIG_RTE_MAJOR_ABI=18.02, And did a SHARED build.
I am not seeing any error on my ubuntu m/c while doing shared build. May 
be I am missing something or it is different on suse.

> ===== START =====
> The error is connected to building the librte_pmd_dpaa.so. Please, see below:
> [  405s] /usr/lib64/gcc/aarch64-suse-linux/7/../../../../aarch64-suse-
> linux/bin/ld: warning: librte_bus_dpaa.so.18.02, needed by
> /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so, not found (try using -rpath or -rpath-link)

can  you check if "librte_bus_dpaa.so.18.02" is present in your build?

This is similar to rte_pmd_ixgbe.so.18.02 having dependency on 
librte_bus_pci.so.18.02

Are you using some rpm build script?

> [  405s] /usr/lib64/gcc/aarch64-suse-linux/7/../../../../aarch64-suse-
> linux/bin/ld: warning: librte_mempool_dpaa.so.18.02, needed by
> /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so, not found (try using -rpath or -rpath-link)

This is similar to previous, can you check the presence of 
librte_mempool_dpaa.so.18.02


regards,
Hemant
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_reset_mcast_filt
> er_table@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_alloc_pool_range@DP
> DK_18.02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `rte_dpaa_portal_init@DPD
> K_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_add_mac_addr@DPD
> K_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_disable_rx@DPDK_
> 17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_fc_threshold
> @DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_delete_cgr@DPDK_18.
> 02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_create_cgr@DPDK_18.
> 02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_dqrr_consume@DPDK_1
> 7.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_global_init@DPDK_17
> .11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_promiscuous_disa
> ble@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `per_lcore_dpaa_io@DPDK_1
> 8.02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `dpaa_svr_family@DPDK_18.
> 02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_clear_mac_addr@D
> PDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_enable_rx@DPDK_1
> 7.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_init_fq@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `per_lcore_held_bufs@DPDK
> _18.02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `dpaa_logtype_pmd@DPDK_17
> .11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_maxfrm@DPDK_
> 17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_stats_get@DPDK_1
> 7.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_dealloc_bufs_mask_h
> i@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_get_fc_threshold
> @DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_loopback_disable
> @DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_dequeue@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `dpaa_netcfg@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_promiscuous_enab
> le@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `bman_acquire@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_mcast_filter
> _table@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_discard_rx_error
> s@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_set_vdq@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `rte_dpaa_portal_fq_init@
> DPDK_18.02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_portal_poll_rx@DPDK
> _18.02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_modify_cgr@DPDK_18.
> 02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_create_fq@DPDK_17.1
> 1'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_query_fq_frm_cnt@DP
> DK_18.02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `rte_dpaa_driver_register
> @DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_ip_rev@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_get_fc_quanta@DP
> DK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_stats_get_all@DP
> DK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_enqueue_multi@DPDK_
> 17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_fdoff@DPDK_1
> 7.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_ic_params@DP
> DK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_get_fdoff@DPDK_1
> 7.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `bman_global_init@DPDK_17
> .11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_alloc_cgrid_range@D
> PDK_18.02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_loopback_enable@
> DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_stats_reset@DPDK
> _17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_bp@DPDK_17.1
> 1'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_reserve_fqid_range@
> DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `qman_release_cgrid_range
> @DPDK_18.02'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set_fc_quanta@DP
> DK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `fman_dealloc_bufs_mask_l
> o@DPDK_17.11'
> [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_pmd_dpaa.so: undefined reference to `rte_dpaa_bpid_info@DPDK_
> 17.11'
> [  405s] collect2: error: ld returned 1 exit status
> ===== END =====
> 
> Despite the error saying that the librte_mempool_dpaa.so.18.02 cannot be found,
> I can see it being built somewhere earlier in the compilation process. Please,
> see below:
> ===== START =====
> [  216s] gcc  -DVERSION="18.02" -L/home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-
> armv8a-linuxapp-gcc-default/lib -Wl,--version-
> script=/home/abuild/rpmbuild/BUILD/dpdk-
> 18.02/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map  -shared
> dpaa2_hw_mempool.o -z defs -lrte_bus_fslmc -lrte_eal -lrte_mempool -lrte_ring
> -Wl,-soname,librte_mempool_dpaa2.so.18.02 -o librte_mempool_dpaa2.so.18.02
> [  216s] gcc  -DVERSION="18.02" -L/home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-
> armv8a-linuxapp-gcc-default/lib -Wl,--version-
> script=/home/abuild/rpmbuild/BUILD/dpdk-
> 18.02/drivers/mempool/dpaa/rte_mempool_dpaa_version.map  -shared dpaa_mempool.o
> -z defs -lrte_bus_dpaa -lrte_eal -lrte_mempool -lrte_ring -Wl,-
> soname,librte_mempool_dpaa.so.18.02 -o librte_mempool_dpaa.so.18.02
> [  216s]   INSTALL-LIB librte_mempool_dpaa2.so.18.02
> [  216s] cp -f librte_mempool_dpaa2.so.18.02 /home/abuild/rpmbuild/BUILD/dpdk-
> 18.02/arm64-armv8a-linuxapp-gcc-default/lib
> [  216s] ln -s -f librte_mempool_dpaa2.so.18.02
> /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> default/lib/librte_mempool_dpaa2.so
> [  217s]   INSTALL-LIB librte_mempool_dpaa.so.18.02
> [  217s] cp -f librte_mempool_dpaa.so.18.02 /home/abuild/rpmbuild/BUILD/dpdk-
> 18.02/arm64-armv8a-linuxapp-gcc-default/lib
> [  217s] ln -s -f librte_mempool_dpaa.so.18.02 /home/abuild/rpmbuild/BUILD/dpdk-
> 18.02/arm64-armv8a-linuxapp-gcc-default/lib/librte_mempool_dpaa.so
> ===== END =====
> 
> 
> Cheers,
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: DPDK 18.02 on ARM64 is broken
  2018-02-22 17:28 ` Hemant Agrawal
@ 2018-02-22 20:00   ` Marco Varlese
  2018-02-22 22:53     ` [PATCH 1/2] app/testpmd: fix DPAA shared library dependency Thomas Monjalon
  0 siblings, 1 reply; 13+ messages in thread
From: Marco Varlese @ 2018-02-22 20:00 UTC (permalink / raw)
  To: Hemant Agrawal, dev

Dear Hemant,

On Thu, 2018-02-22 at 22:58 +0530, Hemant Agrawal wrote:
> Hi Marco/Gaetan,
> 
> On 2/22/2018 7:53 PM, Marco Varlese wrote:
> > Hi,
> > 
> > I am trying to build the latest DPDK (18.02) but facing some issues
> > on ARM64
> > platform.
> > 
> > I'm using the option CONFIG_RTE_MAJOR_ABI to set the SONAME to
> > 18.02.
> > 
> 
> you mean you configured CONFIG_RTE_MAJOR_ABI=18.02, And did a SHARED
> build.
Right; however, the issue happens even by just using the SHARED
option... no need to have the RTE_MAJOR_ABI to reproduce.

> I am not seeing any error on my ubuntu m/c while doing shared build.
> May 
> be I am missing something or it is different on suse.
The exact same issue was reproduced by Thomas Monjalon who very kindly
assisted me over #dpdk channel on IRC. 
I don't think he runs openSUSE distribution; howevere, he could confirm
it just to be sure...
> 
> > ===== START =====
> > The error is connected to building the librte_pmd_dpaa.so. Please,
> > see below:
> > [  405s] /usr/lib64/gcc/aarch64-suse-linux/7/../../../../aarch64-
> > suse-
> > linux/bin/ld: warning: librte_bus_dpaa.so.18.02, needed by
> > /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so, not found (try using -rpath or
> > -rpath-link)
> 
> can  you check if "librte_bus_dpaa.so.18.02" is present in your
> build?
> 
> This is similar to rte_pmd_ixgbe.so.18.02 having dependency on 
> librte_bus_pci.so.18.02
> 
> Are you using some rpm build script?
> 
> > [  405s] /usr/lib64/gcc/aarch64-suse-linux/7/../../../../aarch64-
> > suse-
> > linux/bin/ld: warning: librte_mempool_dpaa.so.18.02, needed by
> > /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so, not found (try using -rpath or
> > -rpath-link)
> 
> This is similar to previous, can you check the presence of 
> librte_mempool_dpaa.so.18.02
If you read my email fully, you'll see that I point out the fact that
the .so are built... just go down at the bottom of my previous email.

> 
> regards,
> Hemant
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_if_reset_mcast_filt
> > er_table@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_alloc_
> > pool_range@DP
> > DK_18.02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `rte_dpaa_po
> > rtal_init@DPD
> > K_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_add
> > _mac_addr@DPD
> > K_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_dis
> > able_rx@DPDK_
> > 17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_if_set_fc_threshold
> > @DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_delete
> > _cgr@DPDK_18.
> > 02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_create
> > _cgr@DPDK_18.
> > 02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_dqrr_c
> > onsume@DPDK_1
> > 7.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_global
> > _init@DPDK_17
> > .11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_if_promiscuous_disa
> > ble@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `per_lcore_d
> > paa_io@DPDK_1
> > 8.02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `dpaa_svr_fa
> > mily@DPDK_18.
> > 02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_cle
> > ar_mac_addr@D
> > PDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_ena
> > ble_rx@DPDK_1
> > 7.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_init_f
> > q@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `per_lcore_h
> > eld_bufs@DPDK
> > _18.02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `dpaa_logtyp
> > e_pmd@DPDK_17
> > .11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set
> > _maxfrm@DPDK_
> > 17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_sta
> > ts_get@DPDK_1
> > 7.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_dealloc_bufs_mask_h
> > i@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_if_get_fc_threshold
> > @DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_if_loopback_disable
> > @DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_dequeu
> > e@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `dpaa_netcfg
> > @DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_if_promiscuous_enab
> > le@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `bman_acquir
> > e@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_if_set_mcast_filter
> > _table@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_if_discard_rx_error
> > s@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_set_vd
> > q@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `rte_dpaa_portal_fq_init@
> > DPDK_18.02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_portal
> > _poll_rx@DPDK
> > _18.02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_modify
> > _cgr@DPDK_18.
> > 02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_create
> > _fq@DPDK_17.1
> > 1'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_query_
> > fq_frm_cnt@DP
> > DK_18.02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `rte_dpaa_driver_register
> > @DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_ip_rev
> > @DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_get
> > _fc_quanta@DP
> > DK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_sta
> > ts_get_all@DP
> > DK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_enqueu
> > e_multi@DPDK_
> > 17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set
> > _fdoff@DPDK_1
> > 7.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set
> > _ic_params@DP
> > DK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_get
> > _fdoff@DPDK_1
> > 7.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `bman_global
> > _init@DPDK_17
> > .11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `qman_alloc_
> > cgrid_range@D
> > PDK_18.02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_if_loopback_enable@
> > DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_sta
> > ts_reset@DPDK
> > _17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set
> > _bp@DPDK_17.1
> > 1'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `qman_reserve_fqid_range@
> > DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `qman_release_cgrid_range
> > @DPDK_18.02'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `fman_if_set
> > _fc_quanta@DP
> > DK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to
> > `fman_dealloc_bufs_mask_l
> > o@DPDK_17.11'
> > [  405s] /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-
> > linuxapp-gcc-
> > default/lib/librte_pmd_dpaa.so: undefined reference to `rte_dpaa_bp
> > id_info@DPDK_
> > 17.11'
> > [  405s] collect2: error: ld returned 1 exit status
> > ===== END =====
> > 
> > Despite the error saying that the librte_mempool_dpaa.so.18.02
> > cannot be found,
> > I can see it being built somewhere earlier in the compilation
> > process. Please,
> > see below:
> > ===== START =====
> > [  216s] gcc  -DVERSION="18.02" -L/home/abuild/rpmbuild/BUILD/dpdk-
> > 18.02/arm64-
> > armv8a-linuxapp-gcc-default/lib -Wl,--version-
> > script=/home/abuild/rpmbuild/BUILD/dpdk-
> > 18.02/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map  -shared
> > dpaa2_hw_mempool.o -z defs -lrte_bus_fslmc -lrte_eal -lrte_mempool
> > -lrte_ring
> > -Wl,-soname,librte_mempool_dpaa2.so.18.02 -o
> > librte_mempool_dpaa2.so.18.02
> > [  216s] gcc  -DVERSION="18.02" -L/home/abuild/rpmbuild/BUILD/dpdk-
> > 18.02/arm64-
> > armv8a-linuxapp-gcc-default/lib -Wl,--version-
> > script=/home/abuild/rpmbuild/BUILD/dpdk-
> > 18.02/drivers/mempool/dpaa/rte_mempool_dpaa_version.map  -shared
> > dpaa_mempool.o
> > -z defs -lrte_bus_dpaa -lrte_eal -lrte_mempool -lrte_ring -Wl,-
> > soname,librte_mempool_dpaa.so.18.02 -o librte_mempool_dpaa.so.18.02
> > [  216s]   INSTALL-LIB librte_mempool_dpaa2.so.18.02
> > [  216s] cp -f librte_mempool_dpaa2.so.18.02
> > /home/abuild/rpmbuild/BUILD/dpdk-
> > 18.02/arm64-armv8a-linuxapp-gcc-default/lib
> > [  216s] ln -s -f librte_mempool_dpaa2.so.18.02
> > /home/abuild/rpmbuild/BUILD/dpdk-18.02/arm64-armv8a-linuxapp-gcc-
> > default/lib/librte_mempool_dpaa2.so
> > [  217s]   INSTALL-LIB librte_mempool_dpaa.so.18.02
> > [  217s] cp -f librte_mempool_dpaa.so.18.02
> > /home/abuild/rpmbuild/BUILD/dpdk-
> > 18.02/arm64-armv8a-linuxapp-gcc-default/lib
> > [  217s] ln -s -f librte_mempool_dpaa.so.18.02
> > /home/abuild/rpmbuild/BUILD/dpdk-
> > 18.02/arm64-armv8a-linuxapp-gcc-default/lib/librte_mempool_dpaa.so
> > ===== END =====
> > 
> > 
> > Cheers,
> > 
> 
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/2] app/testpmd: fix DPAA shared library dependency
  2018-02-22 20:00   ` Marco Varlese
@ 2018-02-22 22:53     ` Thomas Monjalon
  2018-02-22 22:53       ` [PATCH 2/2] mk: clean up static link with DPAA libraries Thomas Monjalon
                         ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Thomas Monjalon @ 2018-02-22 22:53 UTC (permalink / raw)
  To: hemant.agrawal, mvarlese; +Cc: dev, stable

The dynamic link is broken for ARM platform because the dependencies
of the DPAA PMD are not declared.

Fixes: 83c82e15e1c0 ("app/testpmd: support loopback config for DPAA")
Cc: stable@dpdk.org

Reported-by: Marco Varlese <mvarlese@suse.de>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 app/test-pmd/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile
index ed588ab6d..31646c113 100644
--- a/app/test-pmd/Makefile
+++ b/app/test-pmd/Makefile
@@ -46,6 +46,8 @@ endif
 
 ifeq ($(CONFIG_RTE_LIBRTE_DPAA_PMD),y)
 LDLIBS += -lrte_pmd_dpaa
+LDLIBS += -lrte_bus_dpaa
+LDLIBS += -lrte_mempool_dpaa
 endif
 
 ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y)
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/2] mk: clean up static link with DPAA libraries
  2018-02-22 22:53     ` [PATCH 1/2] app/testpmd: fix DPAA shared library dependency Thomas Monjalon
@ 2018-02-22 22:53       ` Thomas Monjalon
  2018-02-23  6:25         ` Hemant Agrawal
  2018-02-23  5:15       ` [PATCH 1/2] app/testpmd: fix DPAA shared library dependency Hemant Agrawal
  2018-02-23  9:58       ` [PATCH v2 " Hemant Agrawal
  2 siblings, 1 reply; 13+ messages in thread
From: Thomas Monjalon @ 2018-02-22 22:53 UTC (permalink / raw)
  To: hemant.agrawal, mvarlese; +Cc: dev

The bus and mempool dependencies should be declared after the PMD
libraries needing them.

Moreover there is no need to disable the PMDs at the Makefile level,
in case the dependencies are not met.
Such dependencies should be handled at configuration time.

The other side effect of this clean-up is to take into account
the mempool option CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 mk/rte.app.mk | 20 ++++----------------
 1 file changed, 4 insertions(+), 16 deletions(-)

diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 3eb41d176..b71a71663 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -127,11 +127,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD)      += -lrte_pmd_bnx2x -lz
 _LDLIBS-$(CONFIG_RTE_LIBRTE_BNXT_PMD)       += -lrte_pmd_bnxt
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BOND)       += -lrte_pmd_bond
 _LDLIBS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD)      += -lrte_pmd_cxgbe
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_BUS)       += -lrte_bus_dpaa
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL)   += -lrte_mempool_dpaa
 _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_PMD)       += -lrte_pmd_dpaa
-endif
 _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)      += -lrte_pmd_dpaa2
 _LDLIBS-$(CONFIG_RTE_LIBRTE_E1000_PMD)      += -lrte_pmd_e1000
 _LDLIBS-$(CONFIG_RTE_LIBRTE_ENA_PMD)        += -lrte_pmd_ena
@@ -204,16 +200,8 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO)    += -lrte_pmd_armv8
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO)    += -L$(ARMV8_CRYPTO_LIB_PATH) -larmv8_crypto
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO) += -L$(LIBMUSDK_PATH)/lib -lrte_pmd_mrvl_crypto -lmusdk
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += -lrte_pmd_crypto_scheduler
-ifeq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y)
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_pmd_dpaa2_sec
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_mempool_dpaa2
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_bus_fslmc
-endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
-
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC)   += -lrte_bus_dpaa
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC)   += -lrte_pmd_dpaa_sec
-endif # CONFIG_RTE_LIBRTE_DPAA_BUS
 
 endif # CONFIG_RTE_LIBRTE_CRYPTODEV
 
@@ -232,10 +220,10 @@ ifeq ($(CONFIG_RTE_LIBRTE_RAWDEV),y)
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += -lrte_pmd_skeleton_rawdev
 endif # CONFIG_RTE_LIBRTE_RAWDEV
 
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_PMD),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)      += -lrte_bus_fslmc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)      += -lrte_mempool_dpaa2
-endif # CONFIG_RTE_LIBRTE_DPAA2_PMD
+_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_BUS)       += -lrte_bus_dpaa
+_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL)   += -lrte_mempool_dpaa
+_LDLIBS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS)      += -lrte_bus_fslmc
+_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL)  += -lrte_mempool_dpaa2
 
 endif # !CONFIG_RTE_BUILD_SHARED_LIBS
 
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] app/testpmd: fix DPAA shared library dependency
  2018-02-22 22:53     ` [PATCH 1/2] app/testpmd: fix DPAA shared library dependency Thomas Monjalon
  2018-02-22 22:53       ` [PATCH 2/2] mk: clean up static link with DPAA libraries Thomas Monjalon
@ 2018-02-23  5:15       ` Hemant Agrawal
  2018-02-23  9:58       ` [PATCH v2 " Hemant Agrawal
  2 siblings, 0 replies; 13+ messages in thread
From: Hemant Agrawal @ 2018-02-23  5:15 UTC (permalink / raw)
  To: Thomas Monjalon, mvarlese; +Cc: dev, stable

On 2/23/2018 4:23 AM, Thomas Monjalon wrote:
> The dynamic link is broken for ARM platform because the dependencies
> of the DPAA PMD are not declared.
> 
> Fixes: 83c82e15e1c0 ("app/testpmd: support loopback config for DPAA")
> Cc: stable@dpdk.org
> 
> Reported-by: Marco Varlese <mvarlese@suse.de>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/2] mk: clean up static link with DPAA libraries
  2018-02-22 22:53       ` [PATCH 2/2] mk: clean up static link with DPAA libraries Thomas Monjalon
@ 2018-02-23  6:25         ` Hemant Agrawal
  2018-02-23  9:25           ` Thomas Monjalon
  0 siblings, 1 reply; 13+ messages in thread
From: Hemant Agrawal @ 2018-02-23  6:25 UTC (permalink / raw)
  To: Thomas Monjalon, mvarlese; +Cc: dev

Hi Thomas,
On 2/23/2018 4:23 AM, Thomas Monjalon wrote:
> The bus and mempool dependencies should be declared after the PMD
> libraries needing them.
> 
> Moreover there is no need to disable the PMDs at the Makefile level,
> in case the dependencies are not met.
> Such dependencies should be handled at configuration time.
> 
> The other side effect of this clean-up is to take into account
> the mempool option CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL.
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
>   mk/rte.app.mk | 20 ++++----------------
>   1 file changed, 4 insertions(+), 16 deletions(-)

This patch looks good, however I think we (NXP) need to also set some 
dependency check in makefile to avoid dpaaX PMD compilations, if bus is 
not available. I am working on a patch for the same.

Regards,
Hemant

> 
> diff --git a/mk/rte.app.mk b/mk/rte.app.mk
> index 3eb41d176..b71a71663 100644
> --- a/mk/rte.app.mk
> +++ b/mk/rte.app.mk
> @@ -127,11 +127,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD)      += -lrte_pmd_bnx2x -lz
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_BNXT_PMD)       += -lrte_pmd_bnxt
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BOND)       += -lrte_pmd_bond
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD)      += -lrte_pmd_cxgbe
> -ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
> -_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_BUS)       += -lrte_bus_dpaa
> -_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL)   += -lrte_mempool_dpaa
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_PMD)       += -lrte_pmd_dpaa
> -endif
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)      += -lrte_pmd_dpaa2
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_E1000_PMD)      += -lrte_pmd_e1000
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_ENA_PMD)        += -lrte_pmd_ena
> @@ -204,16 +200,8 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO)    += -lrte_pmd_armv8
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO)    += -L$(ARMV8_CRYPTO_LIB_PATH) -larmv8_crypto
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO) += -L$(LIBMUSDK_PATH)/lib -lrte_pmd_mrvl_crypto -lmusdk
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += -lrte_pmd_crypto_scheduler
> -ifeq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y)
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_pmd_dpaa2_sec
> -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_mempool_dpaa2
> -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_bus_fslmc
> -endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
> -
> -ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
> -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC)   += -lrte_bus_dpaa
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC)   += -lrte_pmd_dpaa_sec
> -endif # CONFIG_RTE_LIBRTE_DPAA_BUS
>   
>   endif # CONFIG_RTE_LIBRTE_CRYPTODEV
>   
> @@ -232,10 +220,10 @@ ifeq ($(CONFIG_RTE_LIBRTE_RAWDEV),y)
>   _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += -lrte_pmd_skeleton_rawdev
>   endif # CONFIG_RTE_LIBRTE_RAWDEV
>   
> -ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_PMD),y)
> -_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)      += -lrte_bus_fslmc
> -_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)      += -lrte_mempool_dpaa2
> -endif # CONFIG_RTE_LIBRTE_DPAA2_PMD
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_BUS)       += -lrte_bus_dpaa
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL)   += -lrte_mempool_dpaa
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS)      += -lrte_bus_fslmc
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL)  += -lrte_mempool_dpaa2
>   
>   endif # !CONFIG_RTE_BUILD_SHARED_LIBS
>   
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/2] mk: clean up static link with DPAA libraries
  2018-02-23  6:25         ` Hemant Agrawal
@ 2018-02-23  9:25           ` Thomas Monjalon
  2018-02-23 10:02             ` Hemant Agrawal
  0 siblings, 1 reply; 13+ messages in thread
From: Thomas Monjalon @ 2018-02-23  9:25 UTC (permalink / raw)
  To: Hemant Agrawal; +Cc: dev, mvarlese

23/02/2018 07:25, Hemant Agrawal:
> Hi Thomas,
> On 2/23/2018 4:23 AM, Thomas Monjalon wrote:
> > The bus and mempool dependencies should be declared after the PMD
> > libraries needing them.
> > 
> > Moreover there is no need to disable the PMDs at the Makefile level,
> > in case the dependencies are not met.
> > Such dependencies should be handled at configuration time.
> > 
> > The other side effect of this clean-up is to take into account
> > the mempool option CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL.
> > 
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
> >   mk/rte.app.mk | 20 ++++----------------
> >   1 file changed, 4 insertions(+), 16 deletions(-)
> 
> This patch looks good, however I think we (NXP) need to also set some 
> dependency check in makefile to avoid dpaaX PMD compilations, if bus is 
> not available. I am working on a patch for the same.

Why do you think such check is necessary?
If the PMD is enable but not the bus, it is a configuration error.
A good configuration system would resolve it automatically,
but currently we do the configuration manually, so the user must fix
its configuration file.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH v2 1/2] app/testpmd: fix DPAA shared library dependency
  2018-02-22 22:53     ` [PATCH 1/2] app/testpmd: fix DPAA shared library dependency Thomas Monjalon
  2018-02-22 22:53       ` [PATCH 2/2] mk: clean up static link with DPAA libraries Thomas Monjalon
  2018-02-23  5:15       ` [PATCH 1/2] app/testpmd: fix DPAA shared library dependency Hemant Agrawal
@ 2018-02-23  9:58       ` Hemant Agrawal
  2018-02-23  9:58         ` [PATCH v2 2/2] mk: fix the build dependency structure for dpaaX Hemant Agrawal
  2 siblings, 1 reply; 13+ messages in thread
From: Hemant Agrawal @ 2018-02-23  9:58 UTC (permalink / raw)
  To: dev; +Cc: thomas, mvarlese, yskoh, stable

The dynamic link is broken for ARM platform because the dependencies
of the DPAA PMD are not declared.

Fixes: 83c82e15e1c0 ("app/testpmd: support loopback config for DPAA")
Cc: stable@dpdk.org

Reported-by: Marco Varlese <mvarlese@suse.de>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 app/test-pmd/Makefile  | 4 +++-
 app/test-pmd/cmdline.c | 4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile
index ed588ab..60ae9b9 100644
--- a/app/test-pmd/Makefile
+++ b/app/test-pmd/Makefile
@@ -44,8 +44,10 @@ ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y)
 LDLIBS += -lrte_pmd_bond
 endif
 
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_PMD),y)
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS)$(CONFIG_RTE_LIBRTE_DPAA_PMD),yy)
 LDLIBS += -lrte_pmd_dpaa
+LDLIBS += -lrte_bus_dpaa
+LDLIBS += -lrte_mempool_dpaa
 endif
 
 ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index d1dc1de..40b31ad 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -60,7 +60,7 @@
 #include <rte_eth_bond.h>
 #include <rte_eth_bond_8023ad.h>
 #endif
-#ifdef RTE_LIBRTE_DPAA_PMD
+#if defined RTE_LIBRTE_DPAA_BUS && defined RTE_LIBRTE_DPAA_PMD
 #include <rte_pmd_dpaa.h>
 #endif
 #ifdef RTE_LIBRTE_IXGBE_PMD
@@ -12861,7 +12861,7 @@ cmd_set_tx_loopback_parsed(
 	if (ret == -ENOTSUP)
 		ret = rte_pmd_bnxt_set_tx_loopback(res->port_id, is_on);
 #endif
-#ifdef RTE_LIBRTE_DPAA_PMD
+#if defined RTE_LIBRTE_DPAA_BUS && defined RTE_LIBRTE_DPAA_PMD
 	if (ret == -ENOTSUP)
 		ret = rte_pmd_dpaa_set_tx_loopback(res->port_id, is_on);
 #endif
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v2 2/2] mk: fix the build dependency structure for dpaaX
  2018-02-23  9:58       ` [PATCH v2 " Hemant Agrawal
@ 2018-02-23  9:58         ` Hemant Agrawal
  2018-03-13 23:36           ` [dpdk-stable] " Thomas Monjalon
  0 siblings, 1 reply; 13+ messages in thread
From: Hemant Agrawal @ 2018-02-23  9:58 UTC (permalink / raw)
  To: dev; +Cc: thomas, mvarlese, yskoh, stable

This  patch fixes the build dependency of various
dpaaX components, when the dpaa or fslmc bus is disabled,
or VFIO is disabled.

Fixes: 1ee9569576f6 ("config: enable dpaaX drivers for generic ARMv8")
Cc: stable@dpdk.org

Reported-by: Yongseok Koh <yskoh@mellanox.com>
Suggested-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/Makefile       |  2 ++
 drivers/bus/fslmc/Makefile |  4 ----
 drivers/crypto/Makefile    |  4 ++++
 drivers/event/Makefile     |  4 ++++
 drivers/mempool/Makefile   |  4 ++++
 drivers/net/Makefile       |  4 ++++
 mk/rte.app.mk              | 29 ++++++++++++++++++-----------
 7 files changed, 36 insertions(+), 15 deletions(-)

diff --git a/drivers/bus/Makefile b/drivers/bus/Makefile
index 7ef2593..c251b65 100644
--- a/drivers/bus/Makefile
+++ b/drivers/bus/Makefile
@@ -4,7 +4,9 @@
 include $(RTE_SDK)/mk/rte.vars.mk
 
 DIRS-$(CONFIG_RTE_LIBRTE_DPAA_BUS) += dpaa
+ifeq ($(CONFIG_RTE_EAL_VFIO),y)
 DIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc
+endif
 DIRS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += pci
 DIRS-$(CONFIG_RTE_LIBRTE_VDEV_BUS) += vdev
 
diff --git a/drivers/bus/fslmc/Makefile b/drivers/bus/fslmc/Makefile
index de237f0..952b4c0 100644
--- a/drivers/bus/fslmc/Makefile
+++ b/drivers/bus/fslmc/Makefile
@@ -9,10 +9,6 @@ include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_bus_fslmc.a
 
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_PMD),y)
-CONFIG_RTE_LIBRTE_FSLMC_BUS = $(CONFIG_RTE_LIBRTE_DPAA2_PMD)
-endif
-
 CFLAGS += -DALLOW_EXPERIMENTAL_API
 ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_DEBUG_INIT),y)
 CFLAGS += -O0 -g
diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
index 628bd14..26e503e 100644
--- a/drivers/crypto/Makefile
+++ b/drivers/crypto/Makefile
@@ -14,7 +14,11 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += kasumi
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += zuc
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO) += mrvl
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += null
+ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += dpaa2_sec
+endif
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC) += dpaa_sec
+endif
 
 include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/event/Makefile b/drivers/event/Makefile
index c3d89a1..f301d8d 100644
--- a/drivers/event/Makefile
+++ b/drivers/event/Makefile
@@ -7,8 +7,12 @@ include $(RTE_SDK)/mk/rte.vars.mk
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += skeleton
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += octeontx
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += dpaa
+endif
+ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2
+endif
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl
 
 include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/mempool/Makefile b/drivers/mempool/Makefile
index aae2cb1..fc8b73b 100644
--- a/drivers/mempool/Makefile
+++ b/drivers/mempool/Makefile
@@ -3,8 +3,12 @@
 
 include $(RTE_SDK)/mk/rte.vars.mk
 
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
 DIRS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL) += dpaa
+endif
+ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
 DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL) += dpaa2
+endif
 DIRS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += ring
 DIRS-$(CONFIG_RTE_DRIVER_MEMPOOL_STACK) += stack
 DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += octeontx
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index e112732..39eb550 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -15,8 +15,12 @@ DIRS-$(CONFIG_RTE_LIBRTE_AVP_PMD) += avp
 DIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bonding
 DIRS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
 DIRS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa
+endif
+ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
 DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2
+endif
 DIRS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000
 DIRS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena
 DIRS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 3eb41d1..94525dc 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -113,11 +113,21 @@ endif
 
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PCI_BUS)        += -lrte_bus_pci
 _LDLIBS-$(CONFIG_RTE_LIBRTE_VDEV_BUS)       += -lrte_bus_vdev
+_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_BUS)       += -lrte_bus_dpaa
+ifeq ($(CONFIG_RTE_EAL_VFIO),y)
+_LDLIBS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS)      += -lrte_bus_fslmc
+endif
 
 ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),n)
 # plugins (link only if static libraries)
 
 _LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_STACK)  += -lrte_mempool_stack
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
+_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL)   += -lrte_mempool_dpaa
+endif
+ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
+_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL)  += -lrte_mempool_dpaa2
+endif
 
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET)  += -lrte_pmd_af_packet
 _LDLIBS-$(CONFIG_RTE_LIBRTE_ARK_PMD)        += -lrte_pmd_ark
@@ -128,11 +138,11 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_BNXT_PMD)       += -lrte_pmd_bnxt
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BOND)       += -lrte_pmd_bond
 _LDLIBS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD)      += -lrte_pmd_cxgbe
 ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_BUS)       += -lrte_bus_dpaa
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL)   += -lrte_mempool_dpaa
 _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_PMD)       += -lrte_pmd_dpaa
 endif
+ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
 _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)      += -lrte_pmd_dpaa2
+endif
 _LDLIBS-$(CONFIG_RTE_LIBRTE_E1000_PMD)      += -lrte_pmd_e1000
 _LDLIBS-$(CONFIG_RTE_LIBRTE_ENA_PMD)        += -lrte_pmd_ena
 _LDLIBS-$(CONFIG_RTE_LIBRTE_ENIC_PMD)       += -lrte_pmd_enic
@@ -204,14 +214,10 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO)    += -lrte_pmd_armv8
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO)    += -L$(ARMV8_CRYPTO_LIB_PATH) -larmv8_crypto
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO) += -L$(LIBMUSDK_PATH)/lib -lrte_pmd_mrvl_crypto -lmusdk
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += -lrte_pmd_crypto_scheduler
-ifeq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y)
+ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_pmd_dpaa2_sec
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_mempool_dpaa2
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_bus_fslmc
 endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
-
 ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC)   += -lrte_bus_dpaa
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC)   += -lrte_pmd_dpaa_sec
 endif # CONFIG_RTE_LIBRTE_DPAA_BUS
 
@@ -221,8 +227,13 @@ ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y)
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += -lrte_pmd_skeleton_event
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += -lrte_pmd_sw_event
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += -lrte_pmd_octeontx_ssovf
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += -lrte_pmd_dpaa_event
+endif # CONFIG_RTE_LIBRTE_DPAA_BUS
+ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += -lrte_pmd_dpaa2_event
+endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
+
 _LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += -lrte_mempool_octeontx
 _LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += -lrte_pmd_octeontx
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += -lrte_pmd_opdl_event
@@ -232,10 +243,6 @@ ifeq ($(CONFIG_RTE_LIBRTE_RAWDEV),y)
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += -lrte_pmd_skeleton_rawdev
 endif # CONFIG_RTE_LIBRTE_RAWDEV
 
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_PMD),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)      += -lrte_bus_fslmc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)      += -lrte_mempool_dpaa2
-endif # CONFIG_RTE_LIBRTE_DPAA2_PMD
 
 endif # !CONFIG_RTE_BUILD_SHARED_LIBS
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/2] mk: clean up static link with DPAA libraries
  2018-02-23  9:25           ` Thomas Monjalon
@ 2018-02-23 10:02             ` Hemant Agrawal
  0 siblings, 0 replies; 13+ messages in thread
From: Hemant Agrawal @ 2018-02-23 10:02 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, mvarlese

On 2/23/2018 2:55 PM, Thomas Monjalon wrote:
> 23/02/2018 07:25, Hemant Agrawal:
>> Hi Thomas,
>> On 2/23/2018 4:23 AM, Thomas Monjalon wrote:
>>> The bus and mempool dependencies should be declared after the PMD
>>> libraries needing them.
>>>
>>> Moreover there is no need to disable the PMDs at the Makefile level,
>>> in case the dependencies are not met.
>>> Such dependencies should be handled at configuration time.
>>>
>>> The other side effect of this clean-up is to take into account
>>> the mempool option CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL.
>>>
>>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>>> ---
>>>    mk/rte.app.mk | 20 ++++----------------
>>>    1 file changed, 4 insertions(+), 16 deletions(-)
>>
>> This patch looks good, however I think we (NXP) need to also set some
>> dependency check in makefile to avoid dpaaX PMD compilations, if bus is
>> not available. I am working on a patch for the same.
> 
> Why do you think such check is necessary?
> If the PMD is enable but not the bus, it is a configuration error.
> A good configuration system would resolve it automatically,
> but currently we do the configuration manually, so the user must fix
> its configuration file.
> 
I agree with your comment. That is the ideal approach.

However, just to make it convenient and to support cases like VFIO 
disable, I have added few checks in my v2.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-stable] [PATCH v2 2/2] mk: fix the build dependency structure for dpaaX
  2018-02-23  9:58         ` [PATCH v2 2/2] mk: fix the build dependency structure for dpaaX Hemant Agrawal
@ 2018-03-13 23:36           ` Thomas Monjalon
  0 siblings, 0 replies; 13+ messages in thread
From: Thomas Monjalon @ 2018-03-13 23:36 UTC (permalink / raw)
  To: Hemant Agrawal; +Cc: stable, dev, mvarlese, yskoh

23/02/2018 10:58, Hemant Agrawal:
> This  patch fixes the build dependency of various
> dpaaX components, when the dpaa or fslmc bus is disabled,
> or VFIO is disabled.
> 
> Fixes: 1ee9569576f6 ("config: enable dpaaX drivers for generic ARMv8")
> Cc: stable@dpdk.org
> 
> Reported-by: Yongseok Koh <yskoh@mellanox.com>
> Suggested-by: Thomas Monjalon <thomas@monjalon.net>
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

I am not satisfied by handling the bus dependencies all over the place,
but I understand it is convenient.
Considering that this build system is dying (in favor of meson's one),

Series applied, thanks.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2018-03-13 23:36 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-22 14:23 DPDK 18.02 on ARM64 is broken Marco Varlese
2018-02-22 14:33 ` Gaëtan Rivet
2018-02-22 17:28 ` Hemant Agrawal
2018-02-22 20:00   ` Marco Varlese
2018-02-22 22:53     ` [PATCH 1/2] app/testpmd: fix DPAA shared library dependency Thomas Monjalon
2018-02-22 22:53       ` [PATCH 2/2] mk: clean up static link with DPAA libraries Thomas Monjalon
2018-02-23  6:25         ` Hemant Agrawal
2018-02-23  9:25           ` Thomas Monjalon
2018-02-23 10:02             ` Hemant Agrawal
2018-02-23  5:15       ` [PATCH 1/2] app/testpmd: fix DPAA shared library dependency Hemant Agrawal
2018-02-23  9:58       ` [PATCH v2 " Hemant Agrawal
2018-02-23  9:58         ` [PATCH v2 2/2] mk: fix the build dependency structure for dpaaX Hemant Agrawal
2018-03-13 23:36           ` [dpdk-stable] " Thomas Monjalon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.