From b543d1a71535cb76bd87069b30c3d481ebd8c2a8 Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Wed, 6 Feb 2019 11:01:30 +0000 Subject: [PATCH] compat: merge compat library into EAL 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 Signed-off-by: Bruce Richardson Reviewed-by: David Marchand Tested-by: David Marchand Tested-by: Anatoly Burakov Acked-by: Thomas Monjalon --- 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 fa78023d1b..3b39bc65d7 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 bef9320c07..a365e669ba 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 c72280a297..baf0921fbd 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 01b36247e7..18b031998e 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 d6239d27c3..ffbfd0d945 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 30498906c7..0fa61385fc 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 61089fe77a..0000000000 --- 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 82c7eea551..0000000000 --- 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 87d8c455dd..c487201b3b 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 2a10d57d88..5ecae0b1fa 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 6e31c2aaae..7e68b2c0dd 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 a18f3a826d..64d857a4aa 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 acd3e54326..ecaedf5a59 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 e8b40f5461..edcccdcb62 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 7f5e8674bd..a6a034eb39 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 -- 2.20.1