From patchwork Wed Feb 6 11:01:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 50143 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 C0E181B3F0; Wed, 6 Feb 2019 12:01:44 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id F1BF41B3B9; Wed, 6 Feb 2019 12:01:41 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Feb 2019 03:01:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,339,1544515200"; d="scan'208";a="131493196" Received: from silpixa00399126.ir.intel.com (HELO silpixa00399126.ger.corp.intel.com) ([10.237.222.236]) by FMSMGA003.fm.intel.com with ESMTP; 06 Feb 2019 03:01:38 -0800 From: Bruce Richardson To: dev@dpdk.org Cc: Bruce Richardson , stable@dpdk.org, Neil Horman , David Marchand , Anatoly Burakov Date: Wed, 6 Feb 2019 11:01:30 +0000 Message-Id: <20190206110130.55135-1-bruce.richardson@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190110111104.56464-1-bruce.richardson@intel.com> References: <20190110111104.56464-1-bruce.richardson@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3] compat: merge compat library into EAL 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" Since compat library is only a single header, we can easily move it into the EAL common headers instead of tracking it separately. The downside of this is that it becomes a little more difficult to have any libs that are built before EAL depend on it. Thankfully, this is not a major problem as the only library which uses rte_compat.h and is built before EAL (kvargs) already has the path to the compat.h header file explicitly called out as an include path. However, to ensure that we don't hit problems later with this, we can add EAL common headers folder to the global include list in the meson build which means that all common headers can be safely used by all libraries, no matter what their build order. As a side-effect, this patch also fixes an issue with building on BSD using meson, due to compat lib no longer needing to be listed as a dependency. Fixes: a8499f65a1d1 ("log: add missing experimental tag") CC: stable@dpdk.org CC: Neil Horman Signed-off-by: Bruce Richardson Reviewed-by: David Marchand Tested-by: David Marchand Tested-by: Anatoly Burakov Acked-by: Neil Horman --- V3: Add stable on CC, and remove extra word in commit log. V2: Clean up a few missed references to the compat library in our documentation and MAINTAINERS file. Added in fixes tag, as this patch should also fix build issues with BSD. --- MAINTAINERS | 1 - doc/api/doxy-api.conf.in | 1 - doc/guides/contributing/documentation.rst | 1 - doc/guides/contributing/versioning.rst | 2 +- lib/Makefile | 2 -- lib/librte_cmdline/meson.build | 1 - lib/librte_compat/Makefile | 13 ------------- lib/librte_compat/meson.build | 8 -------- lib/librte_eal/common/Makefile | 2 +- .../common/include}/rte_compat.h | 0 lib/librte_eal/common/meson.build | 1 + lib/librte_eal/linuxapp/eal/meson.build | 2 +- lib/librte_eal/meson.build | 1 - lib/librte_kvargs/meson.build | 3 --- lib/meson.build | 2 +- meson.build | 2 +- 16 files changed, 6 insertions(+), 36 deletions(-) delete mode 100644 lib/librte_compat/Makefile delete mode 100644 lib/librte_compat/meson.build rename lib/{librte_compat => librte_eal/common/include}/rte_compat.h (100%) diff --git a/MAINTAINERS b/MAINTAINERS index 835d8a201..0707caea5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -121,7 +121,6 @@ F: buildtools/symlink-drivers-solibs.sh ABI versioning M: Neil Horman -F: lib/librte_compat/ F: doc/guides/rel_notes/deprecation.rst F: devtools/validate-abi.sh F: devtools/check-symbol-change.sh diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in index bef9320c0..a365e669b 100644 --- a/doc/api/doxy-api.conf.in +++ b/doc/api/doxy-api.conf.in @@ -23,7 +23,6 @@ INPUT = @TOPDIR@/doc/api/doxy-api-index.md \ @TOPDIR@/lib/librte_bpf \ @TOPDIR@/lib/librte_cfgfile \ @TOPDIR@/lib/librte_cmdline \ - @TOPDIR@/lib/librte_compat \ @TOPDIR@/lib/librte_compressdev \ @TOPDIR@/lib/librte_cryptodev \ @TOPDIR@/lib/librte_distributor \ diff --git a/doc/guides/contributing/documentation.rst b/doc/guides/contributing/documentation.rst index c72280a29..baf0921fb 100644 --- a/doc/guides/contributing/documentation.rst +++ b/doc/guides/contributing/documentation.rst @@ -22,7 +22,6 @@ The main directories that contain files related to documentation are shown below |-- librte_acl |-- librte_cfgfile |-- librte_cmdline - |-- librte_compat |-- librte_eal | |-- ... ... diff --git a/doc/guides/contributing/versioning.rst b/doc/guides/contributing/versioning.rst index 01b36247e..18b031998 100644 --- a/doc/guides/contributing/versioning.rst +++ b/doc/guides/contributing/versioning.rst @@ -167,7 +167,7 @@ functionality or behavior. When that occurs, it is desirable to allow for backward compatibility for a time with older binaries that are dynamically linked to the DPDK. -To support backward compatibility the ``lib/librte_compat/rte_compat.h`` +To support backward compatibility the ``rte_compat.h`` header file provides macros to use when updating exported functions. These macros are used in conjunction with the ``rte__version.map`` file for a given library to allow multiple versions of a symbol to exist in a shared diff --git a/lib/Makefile b/lib/Makefile index d6239d27c..ffbfd0d94 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -3,9 +3,7 @@ include $(RTE_SDK)/mk/rte.vars.mk -DIRS-y += librte_compat DIRS-$(CONFIG_RTE_LIBRTE_KVARGS) += librte_kvargs -DEPDIRS-librte_kvargs := librte_compat DIRS-$(CONFIG_RTE_LIBRTE_EAL) += librte_eal DEPDIRS-librte_eal := librte_kvargs DIRS-$(CONFIG_RTE_LIBRTE_PCI) += librte_pci diff --git a/lib/librte_cmdline/meson.build b/lib/librte_cmdline/meson.build index 30498906c..0fa61385f 100644 --- a/lib/librte_cmdline/meson.build +++ b/lib/librte_cmdline/meson.build @@ -3,7 +3,6 @@ # This library is processed before EAL includes = [global_inc] -includes += include_directories('../librte_eal/common/include') version = 2 sources = files('cmdline.c', diff --git a/lib/librte_compat/Makefile b/lib/librte_compat/Makefile deleted file mode 100644 index 61089fe77..000000000 --- a/lib/librte_compat/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: BSD-3-Clause -# Copyright(c) 2013 Neil Horman -# All rights reserved. - -include $(RTE_SDK)/mk/rte.vars.mk - - -LIBABIVER := 1 - -# install includes -SYMLINK-y-include := rte_compat.h - -include $(RTE_SDK)/mk/rte.install.mk diff --git a/lib/librte_compat/meson.build b/lib/librte_compat/meson.build deleted file mode 100644 index 82c7eea55..000000000 --- a/lib/librte_compat/meson.build +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: BSD-3-Clause -# Copyright(c) 2017 Intel Corporation - - -install_headers('rte_compat.h') - -set_variable('dep_rte_compat', - declare_dependency(include_directories: include_directories('.'))) diff --git a/lib/librte_eal/common/Makefile b/lib/librte_eal/common/Makefile index 87d8c455d..c487201b3 100644 --- a/lib/librte_eal/common/Makefile +++ b/lib/librte_eal/common/Makefile @@ -3,7 +3,7 @@ include $(RTE_SDK)/mk/rte.vars.mk -INC := rte_branch_prediction.h rte_common.h +INC := rte_branch_prediction.h rte_common.h rte_compat.h INC += rte_debug.h rte_eal.h rte_eal_interrupts.h INC += rte_errno.h rte_launch.h rte_lcore.h INC += rte_log.h rte_memory.h rte_memzone.h diff --git a/lib/librte_compat/rte_compat.h b/lib/librte_eal/common/include/rte_compat.h similarity index 100% rename from lib/librte_compat/rte_compat.h rename to lib/librte_eal/common/include/rte_compat.h diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build index 2a10d57d8..5ecae0b1f 100644 --- a/lib/librte_eal/common/meson.build +++ b/lib/librte_eal/common/meson.build @@ -53,6 +53,7 @@ common_headers = files( 'include/rte_bitmap.h', 'include/rte_class.h', 'include/rte_common.h', + 'include/rte_compat.h', 'include/rte_debug.h', 'include/rte_devargs.h', 'include/rte_dev.h', diff --git a/lib/librte_eal/linuxapp/eal/meson.build b/lib/librte_eal/linuxapp/eal/meson.build index 6e31c2aaa..7e68b2c0d 100644 --- a/lib/librte_eal/linuxapp/eal/meson.build +++ b/lib/librte_eal/linuxapp/eal/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation -eal_inc += include_directories('include', '../../../librte_compat') +eal_inc += include_directories('include') install_subdir('include/exec-env', install_dir: get_option('includedir')) env_objs = [] diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build index a18f3a826..64d857a4a 100644 --- a/lib/librte_eal/meson.build +++ b/lib/librte_eal/meson.build @@ -23,7 +23,6 @@ endif version = 9 # the version of the EAL API allow_experimental_apis = true -deps += 'compat' deps += 'kvargs' sources = common_sources + env_sources objs = common_objs + env_objs diff --git a/lib/librte_kvargs/meson.build b/lib/librte_kvargs/meson.build index acd3e5432..ecaedf5a5 100644 --- a/lib/librte_kvargs/meson.build +++ b/lib/librte_kvargs/meson.build @@ -2,10 +2,7 @@ # Copyright(c) 2017 Intel Corporation includes = [global_inc] -includes += include_directories('../librte_eal/common/include') version = 1 sources = files('rte_kvargs.c') headers = files('rte_kvargs.h') - -deps += 'compat' diff --git a/lib/meson.build b/lib/meson.build index e8b40f546..edcccdcb6 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -8,7 +8,7 @@ # sometimes skip deps that would be implied by others, e.g. if mempool is # given as a dep, no need to mention ring. This is especially true for the # core libs which are widely reused, so their deps are kept to a minimum. -libraries = [ 'compat', # just a header, used for versioning +libraries = [ 'cmdline', # ethdev depends on cmdline for parsing functions 'kvargs', # eal depends on kvargs 'eal', 'ring', 'mempool', 'mbuf', 'net', 'meter', 'ethdev', 'pci', # core diff --git a/meson.build b/meson.build index 21d428fa1..2c83a5452 100644 --- a/meson.build +++ b/meson.build @@ -32,7 +32,7 @@ eal_pmd_path = join_paths(get_option('prefix'), driver_install_path) # configure the build, and make sure configs here and in config folder are # able to be included in any file. We also store a global array of include dirs # for passing to pmdinfogen scripts -global_inc = include_directories('.', 'config') +global_inc = include_directories('.', 'config', 'lib/librte_eal/common/include') subdir('config') # build libs and drivers