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? Best Regards Lijun Ou
On Tue, Oct 27, 2020 at 8:43 AM oulijun <oulijun@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
在 2020/10/27 16:31, David Marchand 写道: > On Tue, Oct 27, 2020 at 8:43 AM oulijun <oulijun@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? > No. This requires a specific GCC version? I understand whether to add a compilation trigger condition. Otherwise, the entire DPDK directory needs to be compiled. >