compat: merge compat library into EAL
Checks
Commit Message
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 the case, so there
are no big complications to the move.
However, to ensure that we don't later 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.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
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 +-
12 files changed, 5 insertions(+), 32 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%)
Comments
On 10-Jan-19 11:11 AM, Bruce Richardson wrote:
> 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 the case, so there
> are no big complications to the move.
>
> However, to ensure that we don't later 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.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
Presumably this makes my patch obsolete?
On Thu, Jan 10, 2019 at 12:12 PM Bruce Richardson <
bruce.richardson@intel.com> wrote:
> 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 the case, so there
> are no big complications to the move.
>
> However, to ensure that we don't later 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.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
>
Currently testing this patch, I just noticed some remaining traces of
librte_compat:
[dmarchan@dmarchan dpdk]$ git grep librte_compat
MAINTAINERS:F: lib/librte_compat/
doc/api/doxy-api.conf.in: @TOPDIR@/lib/librte_compat
\
doc/guides/contributing/documentation.rst: |-- librte_compat
doc/guides/contributing/versioning.rst:To support backward compatibility
the ``lib/librte_compat/rte_compat.h``
and librte_compat_netmap does not exist:
examples/netmap_compat/bridge/bridge.c: "Couldn't
initialize librte_compat_netmap\n");
examples/netmap_compat/bridge/bridge.c:
printf("librte_compat_netmap initialized\n");
On Thu, Jan 10, 2019 at 1:28 PM David Marchand <david.marchand@redhat.com>
wrote:
>
>
> On Thu, Jan 10, 2019 at 12:12 PM Bruce Richardson <
> bruce.richardson@intel.com> wrote:
>
>> 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 the case, so there
>> are no big complications to the move.
>>
>> However, to ensure that we don't later 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.
>>
>> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
>>
>
> Currently testing this patch, I just noticed some remaining traces of
> librte_compat:
>
Checked build with make and meson on rhel7.
On Thu, Jan 10, 2019 at 01:53:20PM +0100, David Marchand wrote:
> On Thu, Jan 10, 2019 at 1:28 PM David Marchand
> <[1]david.marchand@redhat.com> wrote:
>
> On Thu, Jan 10, 2019 at 12:12 PM Bruce Richardson
> <[2]bruce.richardson@intel.com> wrote:
>
> 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 the case, so
> there
> are no big complications to the move.
> However, to ensure that we don't later 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.
> Signed-off-by: Bruce Richardson <[3]bruce.richardson@intel.com>
>
> Currently testing this patch, I just noticed some remaining traces of
> librte_compat:
>
> Checked build with make and meson on rhel7.
> --
> David Marchand
>
Thanks, I'll check those out and do a V2.
/Bruce
On Thu, Jan 10, 2019 at 11:31:31AM +0000, Burakov, Anatoly wrote:
> On 10-Jan-19 11:11 AM, Bruce Richardson wrote:
> > 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 the case, so there
> > are no big complications to the move.
> >
> > However, to ensure that we don't later 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.
> >
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
>
> Presumably this makes my patch obsolete?
>
If it also fixes the issue, yes. I suppose I'll need to pull in the fixes
tag from your patch too, in that case.
/Bruce
@@ -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
@@ -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',
deleted file mode 100644
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2013 Neil Horman <nhorman@tuxdriver.com>
-# 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
deleted file mode 100644
@@ -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('.')))
@@ -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
similarity index 100%
rename from lib/librte_compat/rte_compat.h
rename to lib/librte_eal/common/include/rte_compat.h
@@ -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',
@@ -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 = []
@@ -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
@@ -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'
@@ -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
@@ -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