DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [Bug 572] [aarch64] build failures in event/octeontx2 and mempool/octeontx2 with old gcc
@ 2020-11-09  7:45 bugzilla
  0 siblings, 0 replies; only message in thread
From: bugzilla @ 2020-11-09  7:45 UTC (permalink / raw)
  To: dev

https://bugs.dpdk.org/show_bug.cgi?id=572

            Bug ID: 572
           Summary: [aarch64] build failures in event/octeontx2 and
                    mempool/octeontx2 with old gcc
           Product: DPDK
           Version: 20.11
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: other
          Assignee: dev@dpdk.org
          Reporter: alialnu@mellanox.com
  Target Milestone: ---

On CentOS 7 (aarch64) with gcc 4.8.5 20150623, I can reproduce the following
build error in event/octeontx2 with buildtype set to release (default):

"""
[2231/2485] 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
ccache 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_rcu -I../lib/librte_rcu
-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 -Werror -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 -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.17049 ] [230])
                (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.17051 ] [229]) [-1  S8
A64]))
            (set (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.17051 ] [229]) [-1  S8
A64])
                (unspec_volatile:DI [
                        (plus:DI (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.17051 ]
[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/ccPcVz1F.out file, please attach this to
your bugreport.
"""

With buildtype set to debug, the following error reproduces in
mempool/octeontx2:

"""
[868/2485] Compiling C object
drivers/libtmp_rte_mempool_octeontx2.a.p/mempool_octeontx2_otx2_mempool_ops.c.o
FAILED:
drivers/libtmp_rte_mempool_octeontx2.a.p/mempool_octeontx2_otx2_mempool_ops.c.o
ccache cc -Idrivers/libtmp_rte_mempool_octeontx2.a.p -Idrivers -I../drivers
-Idrivers/mempool/octeontx2 -I../drivers/mempool/octeontx2 -Ilib/librte_mempool
-I../lib/librte_mempool -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_mbuf -I../lib/librte_mbuf
-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 -Ilib/librte_ethdev -I../lib/librte_ethdev
-Ilib/librte_net -I../lib/librte_net -Ilib/librte_meter -I../lib/librte_meter
-pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -g -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
-DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -MD -MQ
drivers/libtmp_rte_mempool_octeontx2.a.p/mempool_octeontx2_otx2_mempool_ops.c.o
-MF
drivers/libtmp_rte_mempool_octeontx2.a.p/mempool_octeontx2_otx2_mempool_ops.c.o.d
-o
drivers/libtmp_rte_mempool_octeontx2.a.p/mempool_octeontx2_otx2_mempool_ops.c.o
-c ../drivers/mempool/octeontx2/otx2_mempool_ops.c
In file included from ../lib/librte_eal/arm/include/rte_spinlock.h:16:0,
                 from ../lib/librte_mempool/rte_mempool.h:44,
                 from ../drivers/mempool/octeontx2/otx2_mempool_ops.c:5:
../drivers/mempool/octeontx2/otx2_mempool_ops.c: In function
‘npa_lf_aura_op_alloc_bulk’:
../lib/librte_eal/include/rte_common.h:35:13: error: can’t find a register in
class ‘GENERAL_REGS’ while reloading ‘asm’
 #define asm __asm__
             ^
../drivers/mempool/octeontx2/otx2_mempool_ops.c:72:3: note: in expansion of
macro ‘asm’
   asm volatile (
   ^
In file included from ../lib/librte_eal/arm/include/rte_vect.h:11:0,
                 from ../drivers/mempool/octeontx2/otx2_mempool_ops.c:6:
/usr/lib/gcc/aarch64-redhat-linux/4.8.5/include/arm_neon.h:7457:3: error: ‘asm’
operand has impossible constraints
   __asm__ ("dup %0.2d,%x1"
   ^
In file included from ../lib/librte_eal/arm/include/rte_spinlock.h:16:0,
                 from ../lib/librte_mempool/rte_mempool.h:44,
                 from ../drivers/mempool/octeontx2/otx2_mempool_ops.c:5:
../lib/librte_eal/include/rte_common.h:35:13: error: ‘asm’ operand has
impossible constraints
 #define asm __asm__
             ^
../drivers/mempool/octeontx2/otx2_mempool_ops.c:72:3: note: in expansion of
macro ‘asm’
   asm volatile (
   ^
../lib/librte_eal/include/rte_common.h:35:13: error: ‘asm’ operand has
impossible constraints
 #define asm __asm__
             ^
../drivers/mempool/octeontx2/otx2_mempool_ops.c:154:3: note: in expansion of
macro ‘asm’
   asm volatile (
   ^
../lib/librte_eal/include/rte_common.h:35:13: error: ‘asm’ operand has
impossible constraints
 #define asm __asm__
             ^
../drivers/mempool/octeontx2/otx2_mempool_ops.c:201:3: note: in expansion of
macro ‘asm’
   asm volatile (
   ^
../lib/librte_eal/include/rte_common.h:35:13: error: ‘asm’ operand has
impossible constraints
 #define asm __asm__
             ^
../drivers/mempool/octeontx2/otx2_mempool_ops.c:230:3: note: in expansion of
macro ‘asm’
   asm volatile (
   ^
../lib/librte_eal/include/rte_common.h:35:13: error: ‘asm’ operand has
impossible constraints
 #define asm __asm__
             ^
../drivers/mempool/octeontx2/otx2_mempool_ops.c:250:3: note: in expansion of
macro ‘asm’
   asm volatile (
   ^
[877/2485] Generating rte_common_sfc_efx.sym_chk with a custom command (wrapped
by meson to capture output)
"""

This was fixed in makefiles some time ago. Related:
http://inbox.dpdk.org/dev/20180507054943.GA23226@jerin/
http://inbox.dpdk.org/dev/20191104133009.7763-1-alialnu@mellanox.com/

Need to do a similar fix in the meson build files.

-- 
You are receiving this mail because:
You are the assignee for the bug.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-11-09  7:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-09  7:45 [dpdk-dev] [Bug 572] [aarch64] build failures in event/octeontx2 and mempool/octeontx2 with old gcc bugzilla

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git