From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 551A3A0A02; Wed, 13 Jan 2021 20:05:49 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C4563140D1B; Wed, 13 Jan 2021 20:05:48 +0100 (CET) Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) by mails.dpdk.org (Postfix) with ESMTP id A7CC9140D1A for ; Wed, 13 Jan 2021 20:05:47 +0100 (CET) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 3F7B65C01A0; Wed, 13 Jan 2021 14:05:47 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Wed, 13 Jan 2021 14:05:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=a3Z0p/g3vHT+p jCkSOmEc0n1PWU0ukgVUT7UhrReSbc=; b=pKOTaLlyLWDg70WoY0zhTFTj8+nVV xyNaleveO6PPiGCOVYwBK803sgwZLWTrmPF4Yfcgk5DbeaCEPF4JOwHD2OTQwpBm dwUeqpBzmbD/ACR07vTUj2JadCA+nO/2XNnloUt7rpdTnsmPcGJBhzwQyd6//WrX +tZhFqeawGCjq4QvVpCw3yddQLEpuvwGIA7prcdLstzv0NCWKeV8JEdg2HEc9E2a sTCYaJcf2NLNlYZHjX9Bei1a7UC4lhPJH611BaGXE0kbcYKWlPLFHKfj7JFSgj7M JVmnDN/F928KVmDo/y5fIhFTo85RhGnSf7zHpicRVZ/3BmH1/xiE0zg2w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=a3Z0p/g3vHT+pjCkSOmEc0n1PWU0ukgVUT7UhrReSbc=; b=gC/R3DVZ yGpAldkraPcQlvfOasDfBw1281VBd6y7dpK7GzrR/EFWlr+dtnO5ube/65RgTFKE M/f0qzhRvDMI3DQfnyitOM8zP4Vm3zJRQCC17CiaNYLF+x15h1kfz4xWWcqtUkGf GJSVvqzRScQUGSD6xBdsl2jSqFZAm45IHwGyVcr26ppFIMYtbRwyOP+JqJaMqXot w+T/VHg3G0QRLAuN2FZ2EgXMYpMQ4QUgfuRn5Pt3aKEsbgOnq9jK4D7L/0aIwEUZ 78RqH+RY9wUFR8UWNC1VMqpsMH2A1TWpDhNLOAm3NbTFQyIS/ved9Dpa78Q+5Wmv LiYTcvKKfz+8Lg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedukedrtdefgdduvddtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomhepvfhhohhmrghsucfoohhnjhgrlhhonhcuoehthhhomhgrshes mhhonhhjrghlohhnrdhnvghtqeenucggtffrrghtthgvrhhnpedvhefgiedvjeegtdevhe efhfetleefgfeivefgffevfeejgedtgfeutdehtdegveenucfkphepjeejrddufeegrddv tdefrddukeegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvth X-ME-Proxy: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 3EC6D24005D; Wed, 13 Jan 2021 14:05:46 -0500 (EST) From: Thomas Monjalon To: dev@dpdk.org Cc: david.marchand@redhat.com, bruce.richardson@intel.com Date: Wed, 13 Jan 2021 20:05:42 +0100 Message-Id: <20210113190542.223445-1-thomas@monjalon.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201207173319.1397740-1-thomas@monjalon.net> References: <20201207173319.1397740-1-thomas@monjalon.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v2 1/1] devtools: avoid installing static binaries X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" When testing compilation and checking ABI compatibility, there is no real need of static binaries eating disks. The static linkage of applications was already well tested, though the static examples tested with meson were limited to "l3fwd" only. The static build test with make is limited to "helloworld" example. The ABI compatibility is checked on shared libraries, and there is no need to test again on similar builds. A new parameter is added to the function "build", so the ABI check is enabled only for native gcc and clang shared builds, 32-bit, generic armv8 and ppc cross compilations. In other words, it is disabled for some static builds and some Arm ones. Signed-off-by: Thomas Monjalon --- v2: - separate ABI check enablement from default library - disable ABI check in specific Arm builds --- devtools/test-meson-builds.sh | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index 00e3d0b443..0e79e1b2bd 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -146,13 +146,15 @@ install_target () # DESTDIR=$2 $ninja_cmd -C $1 install >&$veryverbose } -build () # +build () # [meson options] { targetdir=$1 shift crossfile= [ -r $1 ] && crossfile=$1 || targetcc=$1 shift + abicheck=$1 + shift # skip build if compiler not available command -v ${CC##* } >/dev/null 2>&1 || return 0 if [ -n "$crossfile" ] ; then @@ -165,7 +167,7 @@ build () # load_env $targetcc || return 0 config $srcdir $builds_dir/$targetdir $cross --werror $* compile $builds_dir/$targetdir - if [ -n "$DPDK_ABI_REF_VERSION" ]; then + if [ -n "$DPDK_ABI_REF_VERSION" -a "$abicheck" = ABI ] ; then abirefdir=${DPDK_ABI_REF_DIR:-reference}/$DPDK_ABI_REF_VERSION if [ ! -d $abirefdir/$targetdir ]; then # clone current sources @@ -207,8 +209,13 @@ build () # for c in gcc clang ; do command -v $c >/dev/null 2>&1 || continue for s in static shared ; do + if [ $s = shared ] ; then + abicheck=ABI + else + abicheck=skipABI # save time and disk space + fi export CC="$CCACHE $c" - build build-$c-$s $c --default-library=$s + build build-$c-$s $c $abicheck --default-library=$s unset CC done done @@ -220,7 +227,8 @@ default_machine='nehalem' if ! check_cc_flags "-march=$default_machine" ; then default_machine='corei7' fi -build build-x86-default cc -Dlibdir=lib -Dmachine=$default_machine $use_shared +build build-x86-default cc ABI \ + -Dlibdir=lib -Dmachine=$default_machine $use_shared # 32-bit with default compiler if check_cc_flags '-m32' ; then @@ -235,29 +243,32 @@ if check_cc_flags '-m32' ; then export PKG_CONFIG_LIBDIR='/usr/lib/pkgconfig' fi target_override='i386-pc-linux-gnu' - build build-32b cc -Dc_args='-m32' -Dc_link_args='-m32' + build build-32b cc ABI -Dc_args='-m32' -Dc_link_args='-m32' target_override= unset PKG_CONFIG_LIBDIR fi # x86 MinGW -build build-x86-mingw $srcdir/config/x86/cross-mingw -Dexamples=helloworld +build build-x86-mingw $srcdir/config/x86/cross-mingw skipABI \ + -Dexamples=helloworld # generic armv8a with clang as host compiler f=$srcdir/config/arm/arm64_armv8_linux_gcc export CC="clang" -build build-arm64-host-clang $f $use_shared +build build-arm64-host-clang $f ABI $use_shared unset CC # some gcc/arm configurations for f in $srcdir/config/arm/arm64_[bdo]*gcc ; do export CC="$CCACHE gcc" - build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) $f $use_shared + targetdir=build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) + build $targetdir $f skipABI $use_shared unset CC done # ppc configurations for f in $srcdir/config/ppc/ppc* ; do - build build-$(basename $f | cut -d'-' -f-2) $f $use_shared + targetdir=build-$(basename $f | cut -d'-' -f-2) + build $targetdir $f ABI $use_shared done # Test installation of the x86-default target, to be used for checking @@ -279,7 +290,8 @@ if pkg-config --define-prefix libdpdk >/dev/null 2>&1; then export PKGCONF="pkg-config --define-prefix" for example in $examples; do echo "## Building $example" + [ $example = helloworld ] && static=static || static= # save disk space $MAKE -C $DESTDIR/usr/local/share/dpdk/examples/$example \ - clean shared static >&$veryverbose + clean shared $static >&$veryverbose done fi -- 2.29.2