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 1D32DA034F for ; Mon, 22 Mar 2021 12:21:43 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 177B54003D; Mon, 22 Mar 2021 12:21:43 +0100 (CET) Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by mails.dpdk.org (Postfix) with ESMTP id 67FE74003D for ; Mon, 22 Mar 2021 12:21:40 +0100 (CET) Received: from 2.general.paelzer.uk.vpn ([10.172.196.173] helo=localhost.localdomain) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1lOIcu-0001ZP-5z; Mon, 22 Mar 2021 11:21:40 +0000 From: Christian Ehrhardt To: stable@dpdk.org, Thomas Monjalon , Luca Boccassi , Bruce Richardson Cc: Pai Sunil , Ilya Maximets , Stokes Ian , Govindharajan Hariprasad , James Page , Christian Ehrhardt Date: Mon, 22 Mar 2021 12:21:31 +0100 Message-Id: <20210322112135.3420072-4-christian.ehrhardt@canonical.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210322112135.3420072-1-christian.ehrhardt@canonical.com> References: <20210322112135.3420072-1-christian.ehrhardt@canonical.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] [PATCH 3/7] Revert "Revert "Revert "build/pkg-config: output drivers first for static build""" X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" This reverts commit 906e935a1fd1f6cf01ff12d70c2f040aa91984c6. This series changes linking behavior in 19.11.x and thereby should stay out. It breaks - for example - a rebuild of OVS 2.13 or builds of later OVS 2.13.x stable releases. Reverting this drops the two following 19.11.7 changes which need to be re-created in the new (old) place of meson.build --- buildtools/pkg-config/meson.build | 36 ++++--------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/buildtools/pkg-config/meson.build b/buildtools/pkg-config/meson.build index ccb34dcab3..c93711b5e8 100644 --- a/buildtools/pkg-config/meson.build +++ b/buildtools/pkg-config/meson.build @@ -10,41 +10,13 @@ pkg_extra_cflags = ['-include', 'rte_config.h'] + machine_args if is_freebsd pkg_extra_cflags += ['-D__BSD_VISIBLE'] endif - -# When calling pkg-config --static --libs, pkg-config will always output the -# regular libs first, and then the extra libs from Libs.private field, -# since the assumption is that those are additional dependencies for building -# statically that the .a files depend upon. The output order of .pc fields is: -# Libs Libs.private Requires Requires.private -# The fields Requires* are for package names. -# The flags of the DPDK libraries must be defined in Libs* fields. -# However, the DPDK drivers are linked only in static builds (Libs.private), -# and those need to come *before* the regular libraries (Libs field). -# This requirement is satisfied by moving the regular libs in a separate file -# included in the field Requires (after Libs.private). - -pkg.generate(name: 'dpdk-libs', - filebase: 'libdpdk-libs', - description: '''Internal-only DPDK pkgconfig file. Not for direct use. -Use libdpdk.pc instead of this file to query DPDK compile/link arguments''', +pkg.generate(name: meson.project_name(), + filebase: 'lib' + meson.project_name().to_lower(), version: meson.project_version(), - subdirs: [get_option('include_subdir_arch'), '.'], - extra_cflags: pkg_extra_cflags, libraries: dpdk_libraries, - libraries_private: dpdk_extra_ldflags) - -platform_flags = [] -if not is_windows - platform_flags += ['-Wl,--export-dynamic'] # ELF only -endif -pkg.generate(name: 'DPDK', # main DPDK pkgconfig file - filebase: 'libdpdk', - version: meson.project_version(), description: '''The Data Plane Development Kit (DPDK). Note that CFLAGS might contain an -march flag higher than typical baseline. This is required for a number of static inline functions in the public headers.''', - requires: ['libdpdk-libs', libbsd], # may need libbsd for string funcs - # if libbsd is not enabled, then this is blank - libraries_private: dpdk_drivers + dpdk_static_libraries + - ['-Wl,-Bdynamic'] + platform_flags + subdirs: [get_option('include_subdir_arch'), '.'], + extra_cflags: pkg_extra_cflag ) -- 2.30.0