From patchwork Fri Jan 11 12:38:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luca Boccassi X-Patchwork-Id: 49719 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 444BE1BBEA; Fri, 11 Jan 2019 13:38:17 +0100 (CET) Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by dpdk.org (Postfix) with ESMTP id 95E551B60B; Fri, 11 Jan 2019 13:38:15 +0100 (CET) Received: by mail-wm1-f41.google.com with SMTP id p6so2240026wmc.1; Fri, 11 Jan 2019 04:38:15 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=bnaD1GrRY0zwAwgfqNb3mBiQEAPAmICUlyriDbbLCnQ=; b=bDxWDAPdscv4VyK6MEIbm8g4BBYyLyh/dVmkVIpZi6TYYp4soangj+s+Zwh7+/efgi pCrGV/J+NqWPYiZbIurEF1GNfxUDzE4GBxX6TF9IH7/biIURcKcQPn1oHvxzQZqnB+If z+rMIn2wEEbHp/GvC//+6+wbJ0VAtOdd+U6oqQr+jmZjeHVz5DvjDSUG+2/aL25Gw2s4 ySeC6rLou6SmfpwjaH3S9ADmkXdWqOErlYEBMqAyAzavf1YAITYFU2OVotv0x8Sfu2C5 bUpkrzbFC/Zd6auWrwzIsPMVhKelkXrTiPRg2AHfIqVyI4gd90pF5IXlHc/YohiWWN1D 0Ssg== X-Gm-Message-State: AJcUukfGHLxK9wyhzuZyZwS9tAxbSB6g1AzmpAaC4c0akQoVwJVTuZaT Slr2gVHRRLjFs9r9WuXjlVJ+QIldugg= X-Google-Smtp-Source: ALg8bN4Yey9GCv7TlRUNqmxyLzWYEEmbS980KCkEBv8wFHGzHlxjMAOjtxXYeZbPxz4mmHpfWk7WzQ== X-Received: by 2002:a1c:f509:: with SMTP id t9mr2306603wmh.76.1547210294846; Fri, 11 Jan 2019 04:38:14 -0800 (PST) Received: from localhost ([2a01:4b00:f419:6f00:8361:8946:ba2b:d556]) by smtp.gmail.com with ESMTPSA id 60sm86777386wrb.81.2019.01.11.04.38.13 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 11 Jan 2019 04:38:13 -0800 (PST) From: Luca Boccassi To: dev@dpdk.org Cc: bruce.richardson@intel.com, Luca Boccassi , stable@dpdk.org Date: Fri, 11 Jan 2019 12:38:07 +0000 Message-Id: <20190111123809.8789-1-bluca@debian.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190103175725.5836-1-bluca@debian.org> References: <20190103175725.5836-1-bluca@debian.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 1/3] build: use static deps of libs for pkg-config libs.private 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" Dependencies of the RTE libraries were not being added to the Requires.private field of the pc file since the variable used for dynamic linking was passed to the related field of pkg.generate. Use the static one so that dependencies are included. Fixes: 57ae0ec62620 ("build: add dependency on telemetry to apps with meson") Cc: stable@dpdk.org Signed-off-by: Luca Boccassi --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 426e0bf3a..d500507c5 100644 --- a/meson.build +++ b/meson.build @@ -81,7 +81,7 @@ pkg.generate(name: meson.project_name(), filebase: 'lib' + meson.project_name().to_lower(), version: meson.project_version(), libraries: dpdk_libraries, - libraries_private: dpdk_drivers + dpdk_libraries + + libraries_private: dpdk_drivers + dpdk_static_libraries + ['-Wl,-Bdynamic'] + dpdk_extra_ldflags, description: '''The Data Plane Development Kit (DPDK). Note that CFLAGS might contain an -march flag higher than typical baseline. From patchwork Fri Jan 11 12:38:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luca Boccassi X-Patchwork-Id: 49720 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 741D01BBEC; Fri, 11 Jan 2019 13:38:21 +0100 (CET) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by dpdk.org (Postfix) with ESMTP id 1F73C1BBD7 for ; Fri, 11 Jan 2019 13:38:17 +0100 (CET) Received: by mail-wm1-f66.google.com with SMTP id m1so2250296wml.2 for ; Fri, 11 Jan 2019 04:38:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=at/ShoWR4TDQZNWQODkTXeVx8C70rHCKxOBz1+5PHx4=; b=p8yWsrZLx3zbA7k7/8Ogev9S0oTQGX9WhhPzViYa7Aa9TUmx+piqLtbvsIxW5fgxLS CWdlkbHD++SyvxiU2QYlSK2hDUuuZWFhcIgVyygM7FXixEnVJrdWCLB/+75vopXbPAl+ DVFp0XXp+MwDmbNmLUB07PCtctJzHf+1Xd1gX97OgT73yF+/tshKt9UWWrkEWxZ+01rS HyEhu72MhHb8Y4Riqhw5Jp/JdQ85aRjuhj+hME8n+RHroIKVNc2o00A3H114TVW9u2j3 CS5kfv0b4J5CBotegbEkAGhIZOz+35Q2tVhy5di1cOo0pXjz+8VESwCQa+VW7urKUlAL HAUg== X-Gm-Message-State: AJcUukeIXAF5jKGJnr/CsZRgIfxj9Zt9fILTS8w3l7FPZuCZbNaV9UZ9 nNj6+lIBLxZ2HuzhOUTOPlvtDAE3d8w= X-Google-Smtp-Source: ALg8bN5tupA76h+zEUbZ833KCn+KuSmuyDF/Eiqw4pwj441+q+hCEea+DB7foEDX6G4k5yzyo3oq8w== X-Received: by 2002:a1c:cbc7:: with SMTP id b190mr2327590wmg.13.1547210296320; Fri, 11 Jan 2019 04:38:16 -0800 (PST) Received: from localhost ([2a01:4b00:f419:6f00:8361:8946:ba2b:d556]) by smtp.gmail.com with ESMTPSA id q9sm47799288wrv.26.2019.01.11.04.38.15 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 11 Jan 2019 04:38:15 -0800 (PST) From: Luca Boccassi To: dev@dpdk.org Cc: bruce.richardson@intel.com, Luca Boccassi Date: Fri, 11 Jan 2019 12:38:08 +0000 Message-Id: <20190111123809.8789-2-bluca@debian.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190111123809.8789-1-bluca@debian.org> References: <20190103175725.5836-1-bluca@debian.org> <20190111123809.8789-1-bluca@debian.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 2/3] build: use dependency() instead of find_library() 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" Whenever possible (if the library ships a pkg-config file) use meson's dependency() function to look for it, as it will automatically add it to the Requires.private list if needed, to allow for static builds to succeed for reverse dependencies of DPDK. Otherwise the recursive dependencies are not parsed, and users doing static builds have to resolve them manually by themselves. When using this API avoid additional checks that are superfluos and take extra time, and avoid adding the linker flag manually which causes it to be duplicated. An internal checker has been added to Meson 0.42 to detect libpcap, which ships a custom tool rather than a pkg-config file, so bump the minimum Meson version from 0.41 to 0.42. Signed-off-by: Luca Boccassi --- v2: split libbsd change in a separate commit, remove CC to stable as a meson bump will be required drivers/crypto/ccp/meson.build | 1 - drivers/crypto/openssl/meson.build | 1 - drivers/crypto/qat/meson.build | 1 - drivers/meson.build | 2 +- drivers/net/bnx2x/meson.build | 2 +- drivers/net/mlx4/meson.build | 6 +++--- drivers/net/mlx5/meson.build | 6 +++--- drivers/net/pcap/meson.build | 5 ++--- lib/librte_bpf/meson.build | 4 ++-- lib/librte_telemetry/meson.build | 2 +- meson.build | 2 +- 11 files changed, 14 insertions(+), 18 deletions(-) diff --git a/drivers/crypto/ccp/meson.build b/drivers/crypto/ccp/meson.build index e43b00591..915c4c854 100644 --- a/drivers/crypto/ccp/meson.build +++ b/drivers/crypto/ccp/meson.build @@ -18,4 +18,3 @@ sources = files('rte_ccp_pmd.c', 'ccp_pmd_ops.c') ext_deps += dep -pkgconfig_extra_libs += '-lcrypto' diff --git a/drivers/crypto/openssl/meson.build b/drivers/crypto/openssl/meson.build index c2a0dd8ba..80e5e8835 100644 --- a/drivers/crypto/openssl/meson.build +++ b/drivers/crypto/openssl/meson.build @@ -8,4 +8,3 @@ endif deps += 'bus_vdev' sources = files('rte_openssl_pmd.c', 'rte_openssl_pmd_ops.c') ext_deps += dep -pkgconfig_extra_libs += '-lcrypto' diff --git a/drivers/crypto/qat/meson.build b/drivers/crypto/qat/meson.build index 9cc98d2c2..21f969735 100644 --- a/drivers/crypto/qat/meson.build +++ b/drivers/crypto/qat/meson.build @@ -13,6 +13,5 @@ if dep.found() 'qat_sym.c', 'qat_sym_session.c') qat_ext_deps += dep - pkgconfig_extra_libs += '-lcrypto' qat_cflags += '-DBUILD_QAT_SYM' endif diff --git a/drivers/meson.build b/drivers/meson.build index c3c66bbc0..91bc6dc3f 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -46,7 +46,7 @@ foreach class:driver_classes # set up internal deps. Drivers can append/override as necessary deps = std_deps # ext_deps: Stores external library dependency got - # using dependency() or cc.find_library(). For most cases, we + # using dependency() (preferred) or find_library(). For most cases, we # probably also need to specify the "-l" flags in # pkgconfig_extra_libs variable too, so that it can be reflected # in the pkgconfig output for static builds diff --git a/drivers/net/bnx2x/meson.build b/drivers/net/bnx2x/meson.build index e3c688869..dd189ffc4 100644 --- a/drivers/net/bnx2x/meson.build +++ b/drivers/net/bnx2x/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation -dep = cc.find_library('z', required: false) +dep = dependency('zlib', required: false) build = dep.found() ext_deps += dep cflags += '-DZLIB_CONST' diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build index 7de571e2a..4ba4e93b6 100644 --- a/drivers/net/mlx4/meson.build +++ b/drivers/net/mlx4/meson.build @@ -14,9 +14,9 @@ if pmd_dlopen ] endif libs = [ - cc.find_library('mnl', required:false), - cc.find_library('mlx4', required:false), - cc.find_library('ibverbs', required:false), + dependency('libmnl', required:false), + dependency('libmlx4', required:false), + dependency('libibverbs', required:false), ] build = true foreach lib:libs diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build index 8ba19e818..161c5641f 100644 --- a/drivers/net/mlx5/meson.build +++ b/drivers/net/mlx5/meson.build @@ -14,9 +14,9 @@ if pmd_dlopen ] endif libs = [ - cc.find_library('mnl', required:false), - cc.find_library('mlx5', required:false), - cc.find_library('ibverbs', required:false), + dependency('libmnl', required:false), + dependency('libmlx5', required:false), + dependency('libibverbs', required:false), ] build = true foreach lib:libs diff --git a/drivers/net/pcap/meson.build b/drivers/net/pcap/meson.build index 0c4e0201a..89c9d7a74 100644 --- a/drivers/net/pcap/meson.build +++ b/drivers/net/pcap/meson.build @@ -1,12 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation -pcap_dep = cc.find_library('pcap', required: false) -if pcap_dep.found() and cc.has_header('pcap.h', dependencies: pcap_dep) +pcap_dep = dependency('pcap', required: false) +if pcap_dep.found() build = true else build = false endif sources = files('rte_eth_pcap.c') ext_deps += pcap_dep -pkgconfig_extra_libs += '-lpcap' diff --git a/lib/librte_bpf/meson.build b/lib/librte_bpf/meson.build index bc0cd78f9..c3b1f698e 100644 --- a/lib/librte_bpf/meson.build +++ b/lib/librte_bpf/meson.build @@ -18,8 +18,8 @@ install_headers = files('bpf_def.h', deps += ['mbuf', 'net', 'ethdev'] -dep = cc.find_library('elf', required: false) -if dep.found() == true and cc.has_header('libelf.h', dependencies: dep) +dep = dependency('libelf', required: false) +if dep.found() sources += files('bpf_load_elf.c') ext_deps += dep endif diff --git a/lib/librte_telemetry/meson.build b/lib/librte_telemetry/meson.build index 9492f544e..cafb26f08 100644 --- a/lib/librte_telemetry/meson.build +++ b/lib/librte_telemetry/meson.build @@ -6,7 +6,7 @@ headers = files('rte_telemetry.h', 'rte_telemetry_internal.h', 'rte_telemetry_pa deps += ['metrics', 'ethdev'] cflags += '-DALLOW_EXPERIMENTAL_API' -jansson = cc.find_library('jansson', required: false) +jansson = dependency('jansson', required: false) if jansson.found() ext_deps += jansson dpdk_app_link_libraries += ['telemetry'] diff --git a/meson.build b/meson.build index d500507c5..35126106a 100644 --- a/meson.build +++ b/meson.build @@ -5,7 +5,7 @@ project('DPDK', 'C', version: '19.02.0-rc1', license: 'BSD', default_options: ['buildtype=release', 'default_library=static'], - meson_version: '>= 0.41' + meson_version: '>= 0.42' ) # set up some global vars for compiler, platform, configuration, etc. From patchwork Fri Jan 11 12:38:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luca Boccassi X-Patchwork-Id: 49721 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 657971BC0E; Fri, 11 Jan 2019 13:38:23 +0100 (CET) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by dpdk.org (Postfix) with ESMTP id 6EE741BBF0 for ; Fri, 11 Jan 2019 13:38:18 +0100 (CET) Received: by mail-wr1-f66.google.com with SMTP id t27so15013494wra.6 for ; Fri, 11 Jan 2019 04:38:18 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wWc0MqUzicNcz+a8H3pd/JAdnSO+rA/tUz+OUpTqbZQ=; b=Wp2ABxdK63BkBWX84u9Wwzi0vNmQJ33SOFyykAJHqekf+DBtfSYaqWld4oe+H0wF+g xcgshz+pkV5NBcYiszVHuedNz3OsNpXA7AzYt8ggMR8uoiYOjo3lyJlvM/YlFbDzpfQU qEPNmUYQWXc3nXZMq6KX8qCA5DqE3ukHwMRnUaXWr6Om2jGTcSsfNim9dLF5ygg+feHP /lW2zrtW9e2Y71DqWc7LlOXUKzXRIF7m7LI7GLIqg3l9cv8lQOlMvsLFxBwoibEj3uBu zvAeN2due9AD27gnNBz9BtGAZk4+aYKNUefVniIDcYZpQ0qMkgBeT7TIyx8jty+HEXrI q1DQ== X-Gm-Message-State: AJcUukeIpS1MCHm3rkNc+5zcLsDA7/zNkQfLjqGr5DwIVinxzNoD6Dbj zbowcbyNgGg5qwvLyt8Bvsl1ThUkbFA= X-Google-Smtp-Source: ALg8bN6aJ7Mn544SnuEvTCh0GW09/bgrzujqjaYi3F1gLxF8d/enf16y/P2VxbmKg70eBW2DIHVHdg== X-Received: by 2002:a5d:47d1:: with SMTP id l17mr13105062wrs.319.1547210297756; Fri, 11 Jan 2019 04:38:17 -0800 (PST) Received: from localhost ([2a01:4b00:f419:6f00:8361:8946:ba2b:d556]) by smtp.gmail.com with ESMTPSA id b18sm53656482wrr.43.2019.01.11.04.38.16 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 11 Jan 2019 04:38:17 -0800 (PST) From: Luca Boccassi To: dev@dpdk.org Cc: bruce.richardson@intel.com, Luca Boccassi Date: Fri, 11 Jan 2019 12:38:09 +0000 Message-Id: <20190111123809.8789-3-bluca@debian.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190111123809.8789-1-bluca@debian.org> References: <20190103175725.5836-1-bluca@debian.org> <20190111123809.8789-1-bluca@debian.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 3/3] build: bump minimum Meson to 0.47.1 and use dependency() for libbsd 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" Move libbsd inclusion to librte_eal, so that all other libraries and PMDs will inherit it, and librte_cmdline which is built before librte_eal. Bump Meson dependency to 0.47.1, to avoid bug where the linker flag of the dependency gets replicated again and again. Signed-off-by: Luca Boccassi --- v2: bump meson minimum version to 0.47.1 to avoid meson bug, and move libbsd dependency to eal and cmdline config/meson.build | 10 +++++----- lib/librte_cmdline/meson.build | 4 ++++ lib/librte_eal/meson.build | 3 +++ meson.build | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/config/meson.build b/config/meson.build index db32499b3..e1af468ee 100644 --- a/config/meson.build +++ b/config/meson.build @@ -74,11 +74,11 @@ if numa_dep.found() and cc.has_header('numaif.h') endif # check for strlcpy -if host_machine.system() == 'linux' and cc.find_library('bsd', - required: false).found() and cc.has_header('bsd/string.h') - dpdk_conf.set('RTE_USE_LIBBSD', 1) - add_project_link_arguments('-lbsd', language: 'c') - dpdk_extra_ldflags += '-lbsd' +if host_machine.system() == 'linux' + libbsd = dependency('libbsd', required: false) + if libbsd.found() + dpdk_conf.set('RTE_USE_LIBBSD', 1) + endif endif # add -include rte_config to cflags diff --git a/lib/librte_cmdline/meson.build b/lib/librte_cmdline/meson.build index 30498906c..be286d4a2 100644 --- a/lib/librte_cmdline/meson.build +++ b/lib/librte_cmdline/meson.build @@ -5,6 +5,10 @@ includes = [global_inc] includes += include_directories('../librte_eal/common/include') +if dpdk_conf.has('RTE_USE_LIBBSD') + ext_deps += libbsd +endif + version = 2 sources = files('cmdline.c', 'cmdline_cirbuf.c', diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build index a18f3a826..fa60736c9 100644 --- a/lib/librte_eal/meson.build +++ b/lib/librte_eal/meson.build @@ -25,6 +25,9 @@ version = 9 # the version of the EAL API allow_experimental_apis = true deps += 'compat' deps += 'kvargs' +if dpdk_conf.has('RTE_USE_LIBBSD') + ext_deps += libbsd +endif sources = common_sources + env_sources objs = common_objs + env_objs headers = common_headers + env_headers diff --git a/meson.build b/meson.build index 35126106a..4041eccb6 100644 --- a/meson.build +++ b/meson.build @@ -5,7 +5,7 @@ project('DPDK', 'C', version: '19.02.0-rc1', license: 'BSD', default_options: ['buildtype=release', 'default_library=static'], - meson_version: '>= 0.42' + meson_version: '>= 0.47.1' ) # set up some global vars for compiler, platform, configuration, etc.