[dpdk-dev] DPDK 18.02 on ARM64 is broken

Marco Varlese mvarlese at suse.de
Thu Feb 22 21:00:52 CET 2018


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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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,
> > 
> 
> 


More information about the dev mailing list