From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id AE3DEA04A3; Mon, 15 Jun 2020 23:43:41 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 92C442B94; Mon, 15 Jun 2020 23:43:40 +0200 (CEST) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by dpdk.org (Postfix) with ESMTP id 3FB772B87 for ; Mon, 15 Jun 2020 23:43:39 +0200 (CEST) Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 05FLXb6t008812; Mon, 15 Jun 2020 17:43:38 -0400 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 31pc7ps5kv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Jun 2020 17:43:38 -0400 Received: from m0098409.ppops.net (m0098409.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 05FLY4fg010020; Mon, 15 Jun 2020 17:43:37 -0400 Received: from ppma03wdc.us.ibm.com (ba.79.3fa9.ip4.static.sl-reverse.com [169.63.121.186]) by mx0a-001b2d01.pphosted.com with ESMTP id 31pc7ps5k8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Jun 2020 17:43:37 -0400 Received: from pps.filterd (ppma03wdc.us.ibm.com [127.0.0.1]) by ppma03wdc.us.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 05FLJrrL022657; Mon, 15 Jun 2020 21:43:36 GMT Received: from b03cxnp07028.gho.boulder.ibm.com (b03cxnp07028.gho.boulder.ibm.com [9.17.130.15]) by ppma03wdc.us.ibm.com with ESMTP id 31ngqtyuas-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Jun 2020 21:43:36 +0000 Received: from b03ledav006.gho.boulder.ibm.com (b03ledav006.gho.boulder.ibm.com [9.17.130.237]) by b03cxnp07028.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 05FLhZRi41287950 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 15 Jun 2020 21:43:35 GMT Received: from b03ledav006.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9CB4DC6059; Mon, 15 Jun 2020 21:43:35 +0000 (GMT) Received: from b03ledav006.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3DFFAC6055; Mon, 15 Jun 2020 21:43:35 +0000 (GMT) Received: from Davids-MBP.randomparity.org (unknown [9.211.152.140]) by b03ledav006.gho.boulder.ibm.com (Postfix) with ESMTP; Mon, 15 Jun 2020 21:43:35 +0000 (GMT) To: Thomas Monjalon , dev@dpdk.org Cc: david.marchand@redhat.com, bruce.richardson@intel.com, dmitry.kozliuk@gmail.com References: <20200614225747.3839569-1-thomas@monjalon.net> <20200614225747.3839569-4-thomas@monjalon.net> From: David Christensen Message-ID: <9b811c9b-5b56-57a7-c939-6e5dbf888447@linux.vnet.ibm.com> Date: Mon, 15 Jun 2020 14:43:34 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 In-Reply-To: <20200614225747.3839569-4-thomas@monjalon.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.687 definitions=2020-06-15_03:2020-06-15, 2020-06-15 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 impostorscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 mlxlogscore=999 adultscore=0 spamscore=0 mlxscore=0 clxscore=1015 cotscore=-2147483648 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2006150154 Subject: Re: [dpdk-dev] [PATCH 3/4] devtools: add ppc64 in meson build test X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 6/14/20 3:57 PM, Thomas Monjalon wrote: > diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh > index 1d80a029aa..1cde17a2e5 100755 > --- a/devtools/test-meson-builds.sh > +++ b/devtools/test-meson-builds.sh > @@ -212,6 +212,11 @@ for f in $srcdir/config/arm/arm64_[bdo]*gcc ; do > unset CC > done > > +# ppc configurations > +for f in $srcdir/config/ppc/ppc* ; do > + build build-$(basename $f | cut -d'-' -f-2) $f $use_shared > +done > + The entire script file is poorly structured for multi-architecture builds. The script fails on PPC64LE even before your changes: ------------------------------------ # shared and static linked builds with gcc and clang for c in gcc clang ; do command -v $c >/dev/null 2>&1 || continue for s in static shared ; do export CC="$CCACHE $c" build build-$c-$s $c --default-library=$s unset CC done done ------------------------------------ Compilation on clang is not currently supported due to build failures on Altivec data types for vectorization: In file included from ../lib/librte_eal/common/eal_common_options.c:33: In file included from ../lib/librte_eal/ppc/include/rte_memcpy.h:12: In file included from ../lib/librte_eal/ppc/include/rte_altivec.h:10: /usr/lib64/clang/9.0.1/include/altivec.h:55:19: error: unknown type name 'vector' static __inline__ vector bool char __ATTRS_o_ai ^ /usr/lib64/clang/9.0.1/include/altivec.h:56:10: error: unknown type name 'vector' vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c); and C99 atomics: ../lib/librte_eal/ppc/include/rte_atomic.h:85:9: error: implicit declaration of function '__atomic_exchange_2' is invalid in C99 [-Werror,-Wimplicit-function-declaration] return __atomic_exchange_2(dst, val, __ATOMIC_SEQ_CST); ^ The script then immediately launches into an x86 build no matter what architecture the system is running on: ------------------------------------ default_machine='nehalem' ok=$(cc -march=$default_machine -E - < /dev/null > /dev/null 2>&1 || echo false) if [ "$ok" = "false" ] ; then default_machine='corei7' fi build build-x86-default cc -Dlibdir=lib -Dmachine=$default_machine $use_shared ------------------------------------ Which also fails on a Power system: ninja -v -C ./build-x86-default ninja: Entering directory `./build-x86-default' [1/2265] cc -Ilib/76b5a35@@rte_kvargs@sta -Ilib -I../lib -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/ppc/include -I../lib/librte_eal/ppc/include -Ilib/librte_kvargs -I../lib/librte_kvargs -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -O2 -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-packed-not-aligned -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -mcpu=corei7 -mtune=corei7 -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -MD -MQ 'lib/76b5a35@@rte_kvargs@sta/librte_kvargs_rte_kvargs.c.o' -MF 'lib/76b5a35@@rte_kvargs@sta/librte_kvargs_rte_kvargs.c.o.d' -o 'lib/76b5a35@@rte_kvargs@sta/librte_kvargs_rte_kvargs.c.o' -c ../lib/librte_kvargs/rte_kvargs.c FAILED: lib/76b5a35@@rte_kvargs@sta/librte_kvargs_rte_kvargs.c.o I think the logic of looping through supported configs for test builds is the right one, but more changes are required for multi-architecture support in this script. For now I'd abandon the PPC/ARM support entirely in this script. Dave