From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id ABBEEA0553;
	Mon, 17 Feb 2020 14:59:57 +0100 (CET)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 0D6771DA9F;
	Mon, 17 Feb 2020 14:59:57 +0100 (CET)
Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com
 [205.139.110.120]) by dpdk.org (Postfix) with ESMTP id 8E8CE1D6F5
 for <dev@dpdk.org>; Mon, 17 Feb 2020 14:59:55 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
 s=mimecast20190719; t=1581947994;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding;
 bh=v0y9+3tcDfROOARyKtJQndlgHPuX7MznLZ4tKXsNKLw=;
 b=TVU2pSeV2kKyZn0aYYDuKq8szMCozpPpTeSs5Stdj/Zgyleg4uqBgQo6Dhueon+BnSvHNh
 lT9nJmCEQ059KOJ8Ii1XpuHJ6SsxrQtEXVcIooffS541BemugR318ks93ybtWmPJrZ0bBl
 QvuMpf3s3wtXufBAG59ZV6USvTJE6WQ=
Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com
 [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-388-FCba1eryN4SeuZKFPwNOMg-1; Mon, 17 Feb 2020 08:59:47 -0500
Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com
 [10.5.11.23])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BBAD6477;
 Mon, 17 Feb 2020 13:59:43 +0000 (UTC)
Received: from dmarchan.remote.csb (ovpn-204-34.brq.redhat.com [10.40.204.34])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 5A53B26E73;
 Mon, 17 Feb 2020 13:59:37 +0000 (UTC)
From: David Marchand <david.marchand@redhat.com>
To: thomas@monjalon.net
Cc: dev@dpdk.org, christian.ehrhardt@canonical.com, dodji@redhat.com,
 Aaron Conole <aconole@redhat.com>,
 Michael Santana <maicolgabriel@hotmail.com>
Date: Mon, 17 Feb 2020 14:59:29 +0100
Message-Id: <20200217135929.30987-1-david.marchand@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23
X-MC-Unique: FCba1eryN4SeuZKFPwNOMg-1
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable
Subject: [dpdk-dev] [PATCH] ci: build and use libabigail 1.6
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

libabigail 1.2 (at least) reports changes in 'const' property as an ABI
breakage [1].
This was fixed upstream in libabigail 1.4 [2], and a bug has been opened
in launchpad [3].

But for now, build and use the last version 1.6 so that the ABI checks
can be kept.

1: https://travis-ci.com/DPDK/dpdk/jobs/287872118#L2242
2: https://sourceware.org/git/gitweb.cgi?p=3Dlibabigail.git;a=3Dcommitdiff;=
h=3D215b7eb4fe8b986fe1cc87d9d8e7412998038392
3: https://bugs.launchpad.net/ubuntu/+source/libabigail/+bug/1863607

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 .ci/linux-build.sh | 22 ++++++++++++++++++++++
 .travis.yml        | 15 ++++++++++-----
 2 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index c7c3840fc..0d4bc9a62 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -38,6 +38,28 @@ if [ "$AARCH64" !=3D "1" ]; then
 fi
=20
 if [ "$ABI_CHECKS" =3D "1" ]; then
+    LIBABIGAIL_REPO=3D${LIBABIGAIL_REPO:-https://sourceware.org/git/libabi=
gail.git}
+    LIBABIGAIL_VERSION=3D${LIBABIGAIL_VERSION:-libabigail-1.6}
+
+    if [ "$(cat libabigail/VERSION 2>/dev/null)" !=3D "$LIBABIGAIL_VERSION=
" ]; then
+        rm -rf libabigail
+        # if we change libabigail, invalidate existing abi cache
+        rm -rf reference
+    fi
+
+    if [ ! -d libabigail ]; then
+        git clone --single-branch -b $LIBABIGAIL_VERSION $LIBABIGAIL_REPO =
libabigail/src
+        cd libabigail/src && autoconf -vfi && cd -
+        mkdir libabigail/src/build
+        cd libabigail/src/build && ../configure --prefix=3D$(pwd)/libabiga=
il && cd -
+        make -C libabigail/src/build all install
+
+        rm -rf libabigail/src
+        echo $LIBABIGAIL_VERSION > libabigail/VERSION
+    fi
+
+    export PATH=3D$(pwd)/libabigail/bin:$PATH
+
     REF_GIT_REPO=3D${REF_GIT_REPO:-https://dpdk.org/git/dpdk}
     REF_GIT_TAG=3D${REF_GIT_TAG:-v19.11}
=20
diff --git a/.travis.yml b/.travis.yml
index 22539d823..d8253fdd4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,6 +2,7 @@ language: c
 cache:
   ccache: true
   directories:
+    - libabigail
     - reference
 compiler:
   - gcc
@@ -24,7 +25,11 @@ aarch64_packages: &aarch64_packages
=20
 extra_packages: &extra_packages
   - *required_packages
-  - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4, abigail-tools]
+  - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4]
+
+libabigail_build_packages: &libabigail_build_packages
+  - *required_packages
+  - [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
=20
 build_32b_packages: &build_32b_packages
   - *required_packages
@@ -154,18 +159,18 @@ matrix:
         packages:
           - *required_packages
           - *doc_packages
-  - env: DEF_LIB=3D"shared" EXTRA_PACKAGES=3D1 ABI_CHECKS=3D1
+  - env: DEF_LIB=3D"shared" ABI_CHECKS=3D1
     compiler: gcc
     addons:
       apt:
         packages:
-          - *extra_packages
-  - env: DEF_LIB=3D"shared" EXTRA_PACKAGES=3D1 ABI_CHECKS=3D1
+          - *libabigail_build_packages
+  - env: DEF_LIB=3D"shared" ABI_CHECKS=3D1
     arch: arm64
     compiler: gcc
     addons:
       apt:
         packages:
-          - *extra_packages
+          - *libabigail_build_packages
=20
 script: ./.ci/${TRAVIS_OS_NAME}-build.sh
--=20
2.23.0