From patchwork Fri Nov 29 21:08:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Laatz X-Patchwork-Id: 63400 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 139B9A04E0; Fri, 29 Nov 2019 22:09:34 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3659E2B9C; Fri, 29 Nov 2019 22:09:25 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id F2A839E4 for ; Fri, 29 Nov 2019 22:09:21 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2019 13:09:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,258,1571727600"; d="scan'208";a="203832622" Received: from silpixa00399838.ir.intel.com (HELO silpixa00399838.ger.corp.intel.com) ([10.237.222.120]) by orsmga008.jf.intel.com with ESMTP; 29 Nov 2019 13:09:19 -0800 From: Kevin Laatz To: dev@dpdk.org Cc: david.marchand@redhat.com, thomas@monjalon.net, bruce.richardson@intel.com, ray.kinsella@intel.com Date: Fri, 29 Nov 2019 21:08:59 +0000 Message-Id: <20191129210905.1865-2-kevin.laatz@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191129210905.1865-1-kevin.laatz@intel.com> References: <20191129171024.56165-1-kevin.laatz@intel.com> <20191129210905.1865-1-kevin.laatz@intel.com> Subject: [dpdk-dev] [PATCH v3 1/7] build: enable debug info by default in meson builds 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" From: Bruce Richardson We can turn on debug info by default in meson builds, since it has no performance penalty. This is done by changing the default build type from "release" to "debugoptimized". Since the latter using O2, we can using extra cflags to override that back to O3, which will make little real difference for actual debugging. For real debug builds, the user can still do "meson --buildtype=debug ..." and to remove the debug info "meson --buildtype=release ..." can be used. These are all standard meson options. The advantage of having debug builds by default using meson settings is that we can then add checks for ABI compatibility into each build, and disable them if we detect that the user has turned off the debug info. Signed-off-by: Bruce Richardson --- meson.build | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index b7ae9c8d9..3b7a2e7de 100644 --- a/meson.build +++ b/meson.build @@ -7,10 +7,16 @@ project('DPDK', 'C', version: run_command(find_program('cat', 'more'), files('VERSION')).stdout().strip(), license: 'BSD', - default_options: ['buildtype=release', 'default_library=static'], + default_options: ['buildtype=debugoptimized', + 'default_library=static'], meson_version: '>= 0.47.1' ) +# for default "debugoptimized" builds override optimization level 2 with 3 +if get_option('buildtype') == 'debugoptimized' + add_project_arguments('-O3', language: 'c') +endif + # set up some global vars for compiler, platform, configuration, etc. cc = meson.get_compiler('c') dpdk_conf = configuration_data() From patchwork Fri Nov 29 21:09:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Laatz X-Patchwork-Id: 63401 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6A379A04E0; Fri, 29 Nov 2019 22:09:40 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 047C74C99; Fri, 29 Nov 2019 22:09:27 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 77944293C for ; Fri, 29 Nov 2019 22:09:23 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2019 13:09:22 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,258,1571727600"; d="scan'208";a="203832626" Received: from silpixa00399838.ir.intel.com (HELO silpixa00399838.ger.corp.intel.com) ([10.237.222.120]) by orsmga008.jf.intel.com with ESMTP; 29 Nov 2019 13:09:21 -0800 From: Kevin Laatz To: dev@dpdk.org Cc: david.marchand@redhat.com, thomas@monjalon.net, bruce.richardson@intel.com, ray.kinsella@intel.com Date: Fri, 29 Nov 2019 21:09:00 +0000 Message-Id: <20191129210905.1865-3-kevin.laatz@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191129210905.1865-1-kevin.laatz@intel.com> References: <20191129171024.56165-1-kevin.laatz@intel.com> <20191129210905.1865-1-kevin.laatz@intel.com> Subject: [dpdk-dev] [PATCH v3 2/7] build: use meson warning levels 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" From: Bruce Richardson Rather than trying to manage all the cflags ourselves, we can use meson warning levels to give the user more control. We remove the Wextra flag and rely on meson to add it, by bumping up our default warning level. Signed-off-by: Bruce Richardson --- config/meson.build | 40 +++++++++++++++++++++------------------- meson.build | 3 ++- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/config/meson.build b/config/meson.build index 364a8d739..36a594970 100644 --- a/config/meson.build +++ b/config/meson.build @@ -158,31 +158,33 @@ endif # add -include rte_config to cflags add_project_arguments('-include', 'rte_config.h', language: 'c') -# enable extra warnings and disable any unwanted warnings +# enable extra warnings and disable any unwanted warnings. "-Wall" is added +# by meson at warning level 1, and "-Wextra" at level 2, so we can omit +# those. Add extra warnings at level 2 or above. (2 is default level). warning_flags = [ - # -Wall is added by meson by default, so add -Wextra only - '-Wextra', - - # additional warnings in alphabetical order - '-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', - # globally disabled warnings '-Wno-address-of-packed-member', '-Wno-packed-not-aligned', '-Wno-missing-field-initializers' ] +if get_option('warning_level').to_int() >= 2 + warning_flags += [ + # additional warnings in alphabetical order + '-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', + ] +endif if not dpdk_conf.get('RTE_ARCH_64') # for 32-bit, don't warn about casting a 32-bit pointer to 64-bit int - it's fine!! warning_flags += '-Wno-pointer-to-int-cast' diff --git a/meson.build b/meson.build index 3b7a2e7de..7a8f97ad6 100644 --- a/meson.build +++ b/meson.build @@ -8,7 +8,8 @@ project('DPDK', 'C', files('VERSION')).stdout().strip(), license: 'BSD', default_options: ['buildtype=debugoptimized', - 'default_library=static'], + 'default_library=static', + 'warning_level=2'], meson_version: '>= 0.47.1' ) From patchwork Fri Nov 29 21:09:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Laatz X-Patchwork-Id: 63402 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9A614A04E0; Fri, 29 Nov 2019 22:09:48 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5BBB258C4; Fri, 29 Nov 2019 22:09:29 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id BE49F2B88 for ; Fri, 29 Nov 2019 22:09:24 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2019 13:09:24 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,258,1571727600"; d="scan'208";a="203832631" Received: from silpixa00399838.ir.intel.com (HELO silpixa00399838.ger.corp.intel.com) ([10.237.222.120]) by orsmga008.jf.intel.com with ESMTP; 29 Nov 2019 13:09:22 -0800 From: Kevin Laatz To: dev@dpdk.org Cc: david.marchand@redhat.com, thomas@monjalon.net, bruce.richardson@intel.com, ray.kinsella@intel.com, Kevin Laatz Date: Fri, 29 Nov 2019 21:09:01 +0000 Message-Id: <20191129210905.1865-4-kevin.laatz@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191129210905.1865-1-kevin.laatz@intel.com> References: <20191129171024.56165-1-kevin.laatz@intel.com> <20191129210905.1865-1-kevin.laatz@intel.com> Subject: [dpdk-dev] [PATCH v3 3/7] devtools: add abi dump generation script 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" This patch adds a script to generate ABI dump files. These files will be required to perform ABI compatibility checks during the build later in the patchset. This script should be run on a DPDK version with a stable ABI. Since this is a tool designed for human use, we simplify it to just work off a whole build directory, taking the parameter of the builddir and generating the lib|drivers/abi dir. This is hardcoded into the script since the meson build expects the .dump files in these directories. Signed-off-by: Kevin Laatz Signed-off-by: Bruce Richardson --- devtools/gen-abi-dump.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 devtools/gen-abi-dump.sh diff --git a/devtools/gen-abi-dump.sh b/devtools/gen-abi-dump.sh new file mode 100755 index 000000000..ffedef10c --- /dev/null +++ b/devtools/gen-abi-dump.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +builddir=$1 + +if [ -z "$builddir" ] ; then + echo "Usage: $(basename $0) build_dir" + exit 1 +fi + +if [ ! -d "$builddir" ] ; then + echo "Error: build directory, '$builddir', doesn't exist" + exit 1 +fi + +for d in lib drivers ; do + mkdir -p $d/abi + + for f in $builddir/$d/*.so* ; do + test -L "$f" && continue + + libname=$(basename $f) + abidw --out-file $d/abi/${libname%.so*}.dump $f || exit 1 + done +done From patchwork Fri Nov 29 21:09:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Laatz X-Patchwork-Id: 63403 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3BE7AA04E0; Fri, 29 Nov 2019 22:09:55 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 499F21BE82; Fri, 29 Nov 2019 22:09:31 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 8CE15378B for ; Fri, 29 Nov 2019 22:09:26 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2019 13:09:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,258,1571727600"; d="scan'208";a="203832636" Received: from silpixa00399838.ir.intel.com (HELO silpixa00399838.ger.corp.intel.com) ([10.237.222.120]) by orsmga008.jf.intel.com with ESMTP; 29 Nov 2019 13:09:24 -0800 From: Kevin Laatz To: dev@dpdk.org Cc: david.marchand@redhat.com, thomas@monjalon.net, bruce.richardson@intel.com, ray.kinsella@intel.com, Kevin Laatz Date: Fri, 29 Nov 2019 21:09:02 +0000 Message-Id: <20191129210905.1865-5-kevin.laatz@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191129210905.1865-1-kevin.laatz@intel.com> References: <20191129171024.56165-1-kevin.laatz@intel.com> <20191129210905.1865-1-kevin.laatz@intel.com> Subject: [dpdk-dev] [PATCH v3 4/7] build: add meson option for abi related checks 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" This patch adds a new meson option for running ABI compatibility checks during the build. If enabled, the lib and drivers .so files will be compared against any existing ABI dump files in lib|drivers/abi of the source directory. If there are any incompatibilities, the build will fail and display the incompatibility. Signed-off-by: Kevin Laatz --- meson_options.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meson_options.txt b/meson_options.txt index bc369d06c..5f42def1d 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,5 +1,7 @@ # Please keep these options sorted alphabetically. +option('compat_checks', type: 'boolean', value: true, + description: 'enable abi compatibility checks and experimental syms checks to run during the build') option('disable_drivers', type: 'string', value: '', description: 'Comma-separated list of drivers to explicitly disable.') option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-', From patchwork Fri Nov 29 21:09:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Laatz X-Patchwork-Id: 63404 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5C41CA04E0; Fri, 29 Nov 2019 22:10:02 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EDF6C1BF71; Fri, 29 Nov 2019 22:09:32 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 373404CA7 for ; Fri, 29 Nov 2019 22:09:28 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2019 13:09:27 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,258,1571727600"; d="scan'208";a="203832654" Received: from silpixa00399838.ir.intel.com (HELO silpixa00399838.ger.corp.intel.com) ([10.237.222.120]) by orsmga008.jf.intel.com with ESMTP; 29 Nov 2019 13:09:26 -0800 From: Kevin Laatz To: dev@dpdk.org Cc: david.marchand@redhat.com, thomas@monjalon.net, bruce.richardson@intel.com, ray.kinsella@intel.com, Kevin Laatz Date: Fri, 29 Nov 2019 21:09:03 +0000 Message-Id: <20191129210905.1865-6-kevin.laatz@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191129210905.1865-1-kevin.laatz@intel.com> References: <20191129171024.56165-1-kevin.laatz@intel.com> <20191129210905.1865-1-kevin.laatz@intel.com> Subject: [dpdk-dev] [PATCH v3 5/7] build: add lib abi checks to meson 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" This patch adds the ABI compatibility check for the lib directory to the meson build. If enabled, the ABI compatibility checks will run for all .so's in the lib directory (provided a matching dump file exists). The build will fail if an ABI incompatibility is detected. Signed-off-by: Kevin Laatz Signed-off-by: Bruce Richardson --- v2: - fixed conditional around abi check custom target v3: - fix typo in meson option name --- buildtools/meson.build | 4 ++++ lib/meson.build | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/buildtools/meson.build b/buildtools/meson.build index 6ef2c5721..1d6915708 100644 --- a/buildtools/meson.build +++ b/buildtools/meson.build @@ -7,6 +7,10 @@ pmdinfo = find_program('gen-pmdinfo-cfile.sh') check_experimental_syms = find_program('check-experimental-syms.sh') +if get_option('compat_checks') + abidiff = find_program('abidiff') +endif + # set up map-to-def script using python, either built-in or external python3 = import('python').find_installation(required: false) if python3.found() diff --git a/lib/meson.build b/lib/meson.build index 6ceb5e756..69ea3a2b0 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -180,6 +180,19 @@ foreach l:libraries include_directories: includes, dependencies: shared_deps) + if not is_windows and get_option('compat_checks') + custom_target(dir_name + '.abi_chk', + command: [abidiff, + meson.source_root() + '/lib/abi/' + + dir_name + '.dump', + '@INPUT@'], + input: shared_lib, + output: dir_name + '.abi_chk', + capture: true, + install: false, + build_by_default: is_experimental == 0) + endif + dpdk_libraries = [shared_lib] + dpdk_libraries dpdk_static_libraries = [static_lib] + dpdk_static_libraries endif # sources.length() > 0 From patchwork Fri Nov 29 21:09:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Laatz X-Patchwork-Id: 63405 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E9B55A04E0; Fri, 29 Nov 2019 22:10:08 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 729DE1BF78; Fri, 29 Nov 2019 22:09:34 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 17CDC8F96 for ; Fri, 29 Nov 2019 22:09:29 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2019 13:09:29 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,258,1571727600"; d="scan'208";a="203832658" Received: from silpixa00399838.ir.intel.com (HELO silpixa00399838.ger.corp.intel.com) ([10.237.222.120]) by orsmga008.jf.intel.com with ESMTP; 29 Nov 2019 13:09:28 -0800 From: Kevin Laatz To: dev@dpdk.org Cc: david.marchand@redhat.com, thomas@monjalon.net, bruce.richardson@intel.com, ray.kinsella@intel.com, Kevin Laatz Date: Fri, 29 Nov 2019 21:09:04 +0000 Message-Id: <20191129210905.1865-7-kevin.laatz@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191129210905.1865-1-kevin.laatz@intel.com> References: <20191129171024.56165-1-kevin.laatz@intel.com> <20191129210905.1865-1-kevin.laatz@intel.com> Subject: [dpdk-dev] [PATCH v3 6/7] build: add drivers abi checks to meson 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" This patch adds the ABI compatibility check for the drivers directory to the meson build. If enabled, the ABI compatibility checks will run for all .so's in the lib directory (provided a matching dump file exists). The build will fail if an ABI incompatibility is detected. Signed-off-by: Kevin Laatz --- v2: - fixed conditional around abi check custom target --- drivers/meson.build | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/meson.build b/drivers/meson.build index 72eec4608..e19eed419 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -196,6 +196,19 @@ foreach class:dpdk_driver_classes include_directories: includes, dependencies: static_deps) + if not is_windows and get_option('compat_checks') + custom_target('lib' + lib_name + '.abi_chk', + command: [abidiff, + meson.source_root() + '/drivers/abi/lib' + + lib_name + '.dump', + '@INPUT@'], + input: shared_lib, + output: 'lib' + lib_name + '.abi_chk', + capture: true, + install: false, + build_by_default: is_experimental == 0) + endif + dpdk_drivers += static_lib set_variable('shared_@0@'.format(lib_name), shared_dep) From patchwork Fri Nov 29 21:09:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Laatz X-Patchwork-Id: 63406 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 03C1EA04E0; Fri, 29 Nov 2019 22:10:15 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 177E61BF80; Fri, 29 Nov 2019 22:09:36 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id ED0511E2B for ; Fri, 29 Nov 2019 22:09:31 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2019 13:09:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,258,1571727600"; d="scan'208";a="203832661" Received: from silpixa00399838.ir.intel.com (HELO silpixa00399838.ger.corp.intel.com) ([10.237.222.120]) by orsmga008.jf.intel.com with ESMTP; 29 Nov 2019 13:09:29 -0800 From: Kevin Laatz To: dev@dpdk.org Cc: david.marchand@redhat.com, thomas@monjalon.net, bruce.richardson@intel.com, ray.kinsella@intel.com, Kevin Laatz Date: Fri, 29 Nov 2019 21:09:05 +0000 Message-Id: <20191129210905.1865-8-kevin.laatz@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191129210905.1865-1-kevin.laatz@intel.com> References: <20191129171024.56165-1-kevin.laatz@intel.com> <20191129210905.1865-1-kevin.laatz@intel.com> Subject: [dpdk-dev] [PATCH v3 7/7] build: clean up experimental syms check 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" This patch cleans up the meson build files in lib and drivers by moving the custom target for checking the experimental syms next to the abi compat checks. This also removes the dependency on the check for the shared build, which was not required by anything, but was only added to force the experimental syms check run. Signed-off-by: Kevin Laatz --- drivers/meson.build | 21 +++++++++++---------- lib/meson.build | 21 +++++++++++---------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/drivers/meson.build b/drivers/meson.build index e19eed419..9b0955722 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -163,15 +163,6 @@ foreach class:dpdk_driver_classes '-Wl,/implib:lib\\' + implib] else lk_args = ['-Wl,--version-script=' + version_map] - # on unix systems check the output of the - # experimental syms script, using it as a - # dependency of the .so build - lk_deps += custom_target(lib_name + '.exp_chk', - command: [check_experimental_syms, - version_map, '@INPUT@'], - capture: true, - input: static_lib, - output: lib_name + '.exp_chk') endif shared_lib = shared_library(lib_name, @@ -181,7 +172,6 @@ foreach class:dpdk_driver_classes dependencies: shared_deps, c_args: cflags, link_args: lk_args, - link_depends: lk_deps, version: lib_version, soversion: so_version, install: true, @@ -197,6 +187,17 @@ foreach class:dpdk_driver_classes dependencies: static_deps) if not is_windows and get_option('compat_checks') + # on unix systems check the output of the + # experimental syms script + custom_target(lib_name + '.exp_chk', + command: [check_experimental_syms, + version_map, '@INPUT@'], + capture: true, + input: static_lib, + output: lib_name + '.exp_chk', + install: false, + build_by_default: true) + custom_target('lib' + lib_name + '.abi_chk', command: [abidiff, meson.source_root() + '/drivers/abi/lib' diff --git a/lib/meson.build b/lib/meson.build index 69ea3a2b0..c448d9dff 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -154,15 +154,6 @@ foreach l:libraries '-Wl,/implib:lib\\' + implib] else lk_args = ['-Wl,--version-script=' + version_map] - # on unix systems check the output of the - # experimental syms script, using it as a - # dependency of the .so build - lk_deps += custom_target(name + '.exp_chk', - command: [check_experimental_syms, - version_map, '@INPUT@'], - capture: true, - input: static_lib, - output: name + '.exp_chk') endif shared_lib = shared_library(libname, @@ -172,7 +163,6 @@ foreach l:libraries dependencies: shared_deps, include_directories: includes, link_args: lk_args, - link_depends: lk_deps, version: lib_version, soversion: so_version, install: true) @@ -181,6 +171,17 @@ foreach l:libraries dependencies: shared_deps) if not is_windows and get_option('compat_checks') + # on unix systems check the output of the + # experimental syms script + custom_target(name + '.exp_chk', + command: [check_experimental_syms, + version_map, '@INPUT@'], + capture: true, + input: static_lib, + output: name + '.exp_chk', + install: false, + build_by_default: true) + custom_target(dir_name + '.abi_chk', command: [abidiff, meson.source_root() + '/lib/abi/'