On Tue, Oct 27, 2020 at 8:43 AM oulijun <ouli...@huawei.com> wrote: > > Hi > I am trying to build dpdk-next-net code based Kunpeng920(ARM64) platform > used meson build. However, it is build fail. > The libtmp_rte_event_octeontx2 build error happened. The output as follows: > > [1986/2298] Compiling C object > drivers/libtmp_rte_event_octeontx2.a.p/event_octeontx2_otx2_tim_worker.c.o > FAILED: > drivers/libtmp_rte_event_octeontx2.a.p/event_octeontx2_otx2_tim_worker.c.o > cc -Idrivers/libtmp_rte_event_octeontx2.a.p -Idrivers -I../drivers > -Idrivers/event/octeontx2 -I../drivers/event/octeontx2 > -Idrivers/crypto/octeontx2 -I../drivers/crypto/octeontx2 -Idrivers/common/cpt > -I../drivers/common/cpt -Ilib/librte_eventdev -I../lib/librte_eventdev -I. > -I.. -Iconfig -I../config -Ilib/librte_eal/include > -I../lib/librte_eal/include -Ilib/librte_eal/linux/include > -I../lib/librte_eal/linux/include -Ilib/librte_eal/arm/include > -I../lib/librte_eal/arm/include -Ilib/librte_eal/common > -I../lib/librte_eal/common -Ilib/librte_eal -I../lib/librte_eal > -Ilib/librte_kvargs -I../lib/librte_kvargs -Ilib/librte_metrics > -I../lib/librte_metrics -Ilib/librte_telemetry -I../lib/librte_telemetry > -Ilib/librte_ring -I../lib/librte_ring -Ilib/librte_ethdev > -I../lib/librte_ethdev -Ilib/librte_net -I../lib/librte_net -Ilib/librte_mbuf > -I../lib/librte_mbuf -Ilib/librte_mempool -I../lib/librte_mempool > -Ilib/librte_meter -I../lib/librte_meter -Ilib/librte_hash > -I../lib/librte_hash -Ilib/librte_timer -I../lib/librte_timer > -Ilib/librte_cryptodev -I../lib/librte_cryptodev -Idrivers/bus/pci > -I../drivers/bus/pci -I../drivers/bus/pci/linux -Ilib/librte_pci > -I../lib/librte_pci -Idrivers/common/octeontx2 -I../drivers/common/octeontx2 > -Idrivers/mempool/octeontx2 -I../drivers/mempool/octeontx2 > -Idrivers/net/octeontx2 -I../drivers/net/octeontx2 -Idrivers/crypto/octeontx > -I../drivers/crypto/octeontx -Ilib/librte_security -I../lib/librte_security > -Idrivers/bus/vdev -I../drivers/bus/vdev -pipe -D_FILE_OFFSET_BITS=64 -Wall > -Winvalid-pch -O3 -include rte_config.h -Wextra -Wcast-qual -Wdeprecated > -Wformat-nonliteral -Wformat-security -Wmissing-declarations > -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith > -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings > -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=armv8-a+crc > -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -MD -MQ > drivers/libtmp_rte_event_octeontx2.a.p/event_octeontx2_otx2_tim_worker.c.o > -MF > drivers/libtmp_rte_event_octeontx2.a.p/event_octeontx2_otx2_tim_worker.c.o.d > -o drivers/libtmp_rte_event_octeontx2.a.p/event_octeontx2_otx2_tim_worker.c.o > -c ../drivers/event/octeontx2/otx2_tim_worker.c > ../drivers/event/octeontx2/otx2_tim_worker.c: In function > ‘otx2_tim_arm_tmo_tick_burst_mod’: > ../drivers/event/octeontx2/otx2_tim_worker.c:154:18: error: could not split > insn > struct rte_event_timer **tim, \ > ^ > ../drivers/event/octeontx2/otx2_tim_evdev.h:208:1: note: in expansion of > macro ‘FP’ > FP(mod, 0, 0, 0, OTX2_TIM_BKT_MOD | OTX2_TIM_ENA_DFB) \ > ^ > ../drivers/event/octeontx2/otx2_tim_worker.c:161:1: note: in expansion of > macro ‘TIM_ARM_TMO_FASTPATH_MODES’ > TIM_ARM_TMO_FASTPATH_MODES > ^ > (insn 252 250 255 (parallel [ > (set (reg:DI 1 x1 [orig:230 D.16918 ] [230]) > (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.16920 ] [229]) [-1 S8 > A64])) > (set (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.16920 ] [229]) [-1 > S8 A64]) > (unspec_volatile:DI [ > (plus:DI (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.16920 > ] [229]) [-1 S8 A64]) > (const_int 1099511627776 [0x10000000000])) > (const_int 2 [0x2]) > ] UNSPECV_ATOMIC_OP)) > (clobber (reg:CC 66 cc)) > (clobber (reg:DI 4 x4)) > (clobber (reg:SI 3 x3)) > ]) ../drivers/event/octeontx2/otx2_tim_worker.h:81 1832 > {atomic_fetch_adddi} > (expr_list:REG_UNUSED (reg:CC 66 cc) > (expr_list:REG_UNUSED (reg:DI 4 x4) > (expr_list:REG_UNUSED (reg:SI 3 x3) > (nil))))) > ../drivers/event/octeontx2/otx2_tim_worker.c:154:18: internal compiler error: > in final_scan_insn, at final.c:2897 > struct rte_event_timer **tim, \ > ^ > ../drivers/event/octeontx2/otx2_tim_evdev.h:208:1: note: in expansion of > macro ‘FP’ > FP(mod, 0, 0, 0, OTX2_TIM_BKT_MOD | OTX2_TIM_ENA_DFB) \ > ^ > ../drivers/event/octeontx2/otx2_tim_worker.c:161:1: note: in expansion of > macro ‘TIM_ARM_TMO_FASTPATH_MODES’ > TIM_ARM_TMO_FASTPATH_MODES > ^ > Please submit a full bug report, > with preprocessed source if appropriate. > See <http://bugzilla.redhat.com/bugzilla> for instructions. > {standard input}: Assembler messages: > {standard input}: Error: open CFI at the end of file; missing .cfi_endproc > directive > Preprocessed source stored into /tmp/cchw0Ftu.out file, please attach this to > your bugreport. > [2056/2298] Compiling C object > drivers/libtmp_rte_event_octeontx2.a.p/event_octeontx2_otx2_worker_dual.c.o > ninja: build stopped: subcommand failed. > > The gcc version is: > [root@centos-C3 dpdk-next-net]# gcc -v > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/aarch64-unknown-linux-gnu/10.1.0/lto-wrapper > Target: aarch64-unknown-linux-gnu > Configured with: ./configure --disable-multilib --enable-languages=c,c++ > --with-gmp=/usr/local/gmp-5.1.3 --with-mpfr=/usr/local/mpfr-4.0.2 > --with-mpc=/usr/local/mpc-1.1.0 > Thread model: posix > Supported LTO compression algorithms: zlib > gcc version 10.1.0 (GCC) > > the OS types is centos > Linux centos-C3 5.6.0-rc5+ #1 SMP PREEMPT Wed Oct 21 16:32:46 HKT 2020 > aarch64 aarch64 aarch64 GNU/Linux > > Do you have any idea about above?
This is a compiler bug. Do you reproduce this with different versions of gcc? Like the one coming with the Centos distribution? -- David Marchand