@@ -0,0 +1,41 @@+# SPDX-License-Identifier: BSD-3-Clause+# Copyright 2018 Luca Boccassi <bluca@debian.org>++sources=files(+'rte_eth_tap.c',+'tap_bpf_api.c',+'tap_flow.c',+'tap_intr.c',+'tap_netlink.c',+'tap_tcmsgs.c',+)++deps=['bus_vdev','gso','hash']++cflags+='-DTAP_MAX_QUEUES=16'++# To maintain the compatibility with the make build system+# tap_autoconf.h file is still generated.+# input array for meson symbol search:+# [ "MACRO to define if found", "header for the search",+# "enum/define", "symbol to search" ]+#+args=[+['HAVE_TC_FLOWER','linux/pkt_cls.h',+'enum','TCA_FLOWER_UNSPEC'],+['HAVE_TC_VLAN_ID','linux/pkt_cls.h',+'enum','TCA_FLOWER_KEY_VLAN_PRIO'],+['HAVE_TC_BPF','linux/pkt_cls.h',+'enum','TCA_BPF_UNSPEC'],+['HAVE_TC_BPF_FD','linux/pkt_cls.h',+'enum','TCA_BPF_FD'],+['HAVE_TC_ACT_BPF','linux/tc_act/tc_bpf.h',+'enum','TCA_ACT_BPF_UNSPEC'],+['HAVE_TC_ACT_BPF_FD','linux/tc_act/tc_bpf.h',+'enum','TCA_ACT_BPF_FD'],+]+config=configuration_data()+foreacharg:args+config.set(arg[0],cc.has_header_symbol(arg[1],arg[3]))+endforeach+configure_file(output:'tap_autoconf.h',configuration:config)
@@ -2,7 +2,7 @@# Copyright(c) 2017 Intel Corporationdrivers=['ccp','dpaa_sec','dpaa2_sec','mvsam',-'null','openssl','qat','virtio']+'null','openssl','qat','scheduler','virtio']std_deps=['cryptodev']# cryptodev pulls in all other needed depsconfig_flag_fmt='RTE_LIBRTE_@0@_PMD'
@@ -9,6 +9,7 @@ driver_classes = ['common','crypto',# depends on common, bus and mempool (net in future).'compress',# depends on common, bus, mempool.'event',# depends on common, bus, mempool and net.+'baseband',# depends on common and bus.'raw']# depends on common, bus, mempool, net and event.default_cflags=machine_args
The library is called librte_pmd_lio, so rename the map file and set
the name in the meson file so that the built library names with meson
and legacy makefiles are the same
Fixes: bad475c03fee ("net/liquidio: add to meson build")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
---
drivers/net/liquidio/Makefile | 2 +-
drivers/net/liquidio/meson.build | 1 +
.../{rte_pmd_liquidio_version.map => rte_pmd_lio_version.map} | 0
3 files changed, 2 insertions(+), 1 deletion(-)
rename drivers/net/liquidio/{rte_pmd_liquidio_version.map => rte_pmd_lio_version.map} (100%)
diff --git a/drivers/net/liquidio/rte_pmd_liquidio_version.map b/drivers/net/liquidio/rte_pmd_lio_version.mapsimilarity index 100%rename from drivers/net/liquidio/rte_pmd_liquidio_version.maprename to drivers/net/liquidio/rte_pmd_lio_version.map
--
2.18.0
So that it can be used from Meson as well
Signed-off-by: Luca Boccassi <redacted>
---
drivers/event/opdl/Makefile | 2 +-
...md_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
rename drivers/event/opdl/{rte_pmd_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} (100%)
diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.mapsimilarity index 100%rename from drivers/event/opdl/rte_pmd_evdev_opdl_version.maprename to drivers/event/opdl/rte_pmd_opdl_event_version.map
--
2.18.0
The library is called librte_pmd_thunderx_nicvf, so rename the map file
and set the name in the meson file so that the built library names with
meson and legacy makefiles are the same
Fixes: 7f615033d64f ("drivers/net: build Cavium NIC PMDs with meson")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
---
drivers/net/thunderx/Makefile | 2 +-
drivers/net/thunderx/meson.build | 1 +
..._thunderx_version.map => rte_pmd_thunderx_nicvf_version.map} | 0
3 files changed, 2 insertions(+), 1 deletion(-)
rename drivers/net/thunderx/{rte_pmd_thunderx_version.map => rte_pmd_thunderx_nicvf_version.map} (100%)
diff --git a/drivers/net/thunderx/rte_pmd_thunderx_version.map b/drivers/net/thunderx/rte_pmd_thunderx_nicvf_version.mapsimilarity index 100%rename from drivers/net/thunderx/rte_pmd_thunderx_version.maprename to drivers/net/thunderx/rte_pmd_thunderx_nicvf_version.map
--
2.18.0
The library is called librte_pmd_sfc_efx, so rename the map file
and set the name in the meson file so that the built library names with
meson and legacy makefiles are the same
Fixes: bfa8d5990cd6 ("net/sfc: support meson build")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
---
drivers/net/sfc/Makefile | 2 +-
drivers/net/sfc/meson.build | 2 ++
.../{rte_pmd_sfc_version.map => rte_pmd_sfc_efx_version.map} | 0
3 files changed, 3 insertions(+), 1 deletion(-)
rename drivers/net/sfc/{rte_pmd_sfc_version.map => rte_pmd_sfc_efx_version.map} (100%)
@@ -6,6 +6,8 @@# This software was jointly developed between OKTET Labs (under contract# for Solarflare) and Solarflare Communications, Inc.+name='sfc_efx'+ifarch_subdir!='x86'orcc.sizeof('void *')==4build=falseendif
diff --git a/drivers/net/sfc/rte_pmd_sfc_version.map b/drivers/net/sfc/rte_pmd_sfc_efx_version.mapsimilarity index 100%rename from drivers/net/sfc/rte_pmd_sfc_version.maprename to drivers/net/sfc/rte_pmd_sfc_efx_version.map
--
2.18.0
The library is called librte_pmd_octeonx_ssovf, so rename the map file
and set the name in the meson file so that the built library names with
meson and legacy makefiles are the same.
Also refactor how the event PMDs library names are built in Meson to
allow for this discrepancy in the octeonx driver (all other PMDs are
called FOO_event, while this is called octeonx_ssovf)
Fixes: bd77f2d64c44 ("event/octeontx: build with meson")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
---
drivers/event/dpaa/meson.build | 1 +
drivers/event/dpaa2/meson.build | 1 +
drivers/event/meson.build | 2 +-
drivers/event/octeontx/Makefile | 2 +-
drivers/event/octeontx/meson.build | 1 +
...ntx_event_version.map => rte_pmd_octeontx_ssovf_version.map} | 0
drivers/event/opdl/meson.build | 1 +
drivers/event/skeleton/meson.build | 1 +
drivers/event/sw/meson.build | 1 +
9 files changed, 8 insertions(+), 2 deletions(-)
rename drivers/event/octeontx/{rte_pmd_octeontx_event_version.map => rte_pmd_octeontx_ssovf_version.map} (100%)
The library is called librte_pmd_octeonx_compress, so rename the map
file and set the name in the meson file so that the built library names
with meson and legacy makefiles are the same
Fixes: 43e610bb8565 ("compress/octeontx: introduce octeontx zip PMD")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
---
drivers/compress/octeontx/Makefile | 2 +-
drivers/compress/octeontx/meson.build | 2 +-
...tx_compress_version.map => rte_pmd_octeontx_zip_version.map} | 0
3 files changed, 2 insertions(+), 2 deletions(-)
rename drivers/compress/octeontx/{rte_pmd_octeontx_compress_version.map => rte_pmd_octeontx_zip_version.map} (100%)
diff --git a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map b/drivers/compress/octeontx/rte_pmd_octeontx_zip_version.mapsimilarity index 100%rename from drivers/compress/octeontx/rte_pmd_octeontx_compress_version.maprename to drivers/compress/octeontx/rte_pmd_octeontx_zip_version.map
--
2.18.0
The library is called librte_pmd_vmxnet3_uio, so rename the map
file and set the name in the meson file so that the built library names
with meson and legacy makefiles are the same
Signed-off-by: Luca Boccassi <redacted>
---
drivers/net/vmxnet3/Makefile | 2 +-
..._pmd_vmxnet3_version.map => rte_pmd_vmxnet3_uio_version.map} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
rename drivers/net/vmxnet3/{rte_pmd_vmxnet3_version.map => rte_pmd_vmxnet3_uio_version.map} (100%)
diff --git a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map b/drivers/net/vmxnet3/rte_pmd_vmxnet3_uio_version.mapsimilarity index 100%rename from drivers/net/vmxnet3/rte_pmd_vmxnet3_version.maprename to drivers/net/vmxnet3/rte_pmd_vmxnet3_uio_version.map
--
2.18.0
@@ -32,7 +32,9 @@ drivers = ['af_packet','thunderx','vdev_netvsc','vhost',-'virtio']+'virtio',+'vmxnet3',+]std_deps=['ethdev','kvargs']# 'ethdev' also pulls in mbuf, net, eal etcstd_deps+=['bus_pci']# very many PMDs depend on PCI, so make stdstd_deps+=['bus_vdev']# same with vdev bus
Heads up -
We have submitted a patch series in which qede_fdir.c gets renamed to qede_filter.c.
Series has not be accepted yet, so you may have to change this if our patch series gets applied before this one.
From: Bruce Richardson <hidden> Date: 2018-09-11 13:06:22
On Mon, Sep 10, 2018 at 09:04:07PM +0100, Luca Boccassi wrote:
The library is called librte_pmd_lio, so rename the map file and set
the name in the meson file so that the built library names with meson
and legacy makefiles are the same
Fixes: bad475c03fee ("net/liquidio: add to meson build")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
Rather than doing this renaming, can we instead add a symlink in the
install phase to map the old name to the new one? I'd like to see the
consistency of directory name, map filename and driver name enforced
strictly in the build system. Having exceptions is a pain.
/Bruce
On Tue, 2018-09-11 at 14:06 +0100, Bruce Richardson wrote:
On Mon, Sep 10, 2018 at 09:04:07PM +0100, Luca Boccassi wrote:
quoted
The library is called librte_pmd_lio, so rename the map file and
set
the name in the meson file so that the built library names with
meson
and legacy makefiles are the same
Fixes: bad475c03fee ("net/liquidio: add to meson build")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
Rather than doing this renaming, can we instead add a symlink in the
install phase to map the old name to the new one? I'd like to see the
consistency of directory name, map filename and driver name enforced
strictly in the build system. Having exceptions is a pain.
/Bruce
We could, but the pain gets shifted on packagers then - what about
renaming the directory entirely to net/lio?
--
Kind regards,
Luca Boccassi
From: Bruce Richardson <hidden> Date: 2018-09-11 13:09:49
On Mon, Sep 10, 2018 at 09:04:10PM +0100, Luca Boccassi wrote:
The library is called librte_pmd_thunderx_nicvf, so rename the map file
and set the name in the meson file so that the built library names with
meson and legacy makefiles are the same
Fixes: 7f615033d64f ("drivers/net: build Cavium NIC PMDs with meson")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
---
Again, I'd prefer we use a symlink if we need to enforce backward
compatibility. I also think we should then use the deprecation procedure to
remove those symlinks in a later version.
/Bruce
From: Bruce Richardson <hidden> Date: 2018-09-11 13:30:21
On Tue, Sep 11, 2018 at 02:09:30PM +0100, Luca Boccassi wrote:
On Tue, 2018-09-11 at 14:06 +0100, Bruce Richardson wrote:
quoted
On Mon, Sep 10, 2018 at 09:04:07PM +0100, Luca Boccassi wrote:
quoted
The library is called librte_pmd_lio, so rename the map file and
set
the name in the meson file so that the built library names with
meson
and legacy makefiles are the same
Fixes: bad475c03fee ("net/liquidio: add to meson build")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
Rather than doing this renaming, can we instead add a symlink in the
install phase to map the old name to the new one? I'd like to see the
consistency of directory name, map filename and driver name enforced
strictly in the build system. Having exceptions is a pain.
/Bruce
We could, but the pain gets shifted on packagers then - what about
renaming the directory entirely to net/lio?
It is still an issue with packagers if the symlinks are created as part of
the install step of DPDK itself (which is what I was intending)? I was
thinking of adding a new post-install script for the backward compatible
renames.
As for renaming the directory, I don't mind, but I'll let the driver
maintainers comment on their thoughts on it.
/Bruce
From: Bruce Richardson <hidden> Date: 2018-09-11 13:32:32
On Tue, Sep 11, 2018 at 02:09:30PM +0100, Luca Boccassi wrote:
On Tue, 2018-09-11 at 14:06 +0100, Bruce Richardson wrote:
quoted
On Mon, Sep 10, 2018 at 09:04:07PM +0100, Luca Boccassi wrote:
quoted
The library is called librte_pmd_lio, so rename the map file and
set
the name in the meson file so that the built library names with
meson
and legacy makefiles are the same
Fixes: bad475c03fee ("net/liquidio: add to meson build")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
Rather than doing this renaming, can we instead add a symlink in the
install phase to map the old name to the new one? I'd like to see the
consistency of directory name, map filename and driver name enforced
strictly in the build system. Having exceptions is a pain.
/Bruce
We could, but the pain gets shifted on packagers then - what about
renaming the directory entirely to net/lio?
For packagers, what sort of ABI compatibility guarantees do you try and
keep between releases. Is this something that just needs a one-release ABI
announcement, as with other ABI changes?
/Bruce
On Tue, 2018-09-11 at 14:30 +0100, Bruce Richardson wrote:
On Tue, Sep 11, 2018 at 02:09:30PM +0100, Luca Boccassi wrote:
quoted
On Tue, 2018-09-11 at 14:06 +0100, Bruce Richardson wrote:
quoted
On Mon, Sep 10, 2018 at 09:04:07PM +0100, Luca Boccassi wrote:
quoted
The library is called librte_pmd_lio, so rename the map file
and
set
the name in the meson file so that the built library names with
meson
and legacy makefiles are the same
Fixes: bad475c03fee ("net/liquidio: add to meson build")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
Rather than doing this renaming, can we instead add a symlink in
the
install phase to map the old name to the new one? I'd like to see
the
consistency of directory name, map filename and driver name
enforced
strictly in the build system. Having exceptions is a pain.
/Bruce
We could, but the pain gets shifted on packagers then - what about
renaming the directory entirely to net/lio?
It is still an issue with packagers if the symlinks are created as
part of
the install step of DPDK itself (which is what I was intending)? I
was
thinking of adding a new post-install script for the backward
compatible
renames.
At least for Debian/Ubuntu, if I tell the tools that package libfoo1
needs to have libfoo.so.1.2.3, that's what it will do, without
following symlinks. So a broken link will be installed in the system,
unless I start tracking what symlinks are there and adding them
manually to the package they belong to.
There's also the fact that by policy the library package names should
match the file name of the library and its ABI revision, so
libfoo.so.1.2.3 should be in libfoo1 pkg vy policy - if they mismatch,
some linters tools are going to yell at me at the very least.
As for renaming the directory, I don't mind, but I'll let the driver
maintainers comment on their thoughts on it.
/Bruce
On Tue, 2018-09-11 at 14:32 +0100, Bruce Richardson wrote:
On Tue, Sep 11, 2018 at 02:09:30PM +0100, Luca Boccassi wrote:
quoted
On Tue, 2018-09-11 at 14:06 +0100, Bruce Richardson wrote:
quoted
On Mon, Sep 10, 2018 at 09:04:07PM +0100, Luca Boccassi wrote:
quoted
The library is called librte_pmd_lio, so rename the map file
and
set
the name in the meson file so that the built library names with
meson
and legacy makefiles are the same
Fixes: bad475c03fee ("net/liquidio: add to meson build")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
Rather than doing this renaming, can we instead add a symlink in
the
install phase to map the old name to the new one? I'd like to see
the
consistency of directory name, map filename and driver name
enforced
strictly in the build system. Having exceptions is a pain.
/Bruce
We could, but the pain gets shifted on packagers then - what about
renaming the directory entirely to net/lio?
For packagers, what sort of ABI compatibility guarantees do you try
and
keep between releases. Is this something that just needs a one-
release ABI
announcement, as with other ABI changes?
/Bruce
Currently in Debian/Ubuntu we are using the ABI override (because of
the sticky ABI breakage issue) so the filenames and package names are
different on every release anyway.
So in theory we could change the name of the libs and packages, but
what I'm mostly worried about is keeping consistency and some level of
compatibility between old and new build systems, isn't that an issue?
--
Kind regards,
Luca Boccassi
From: Bruce Richardson <hidden> Date: 2018-09-11 14:06:17
On Tue, Sep 11, 2018 at 02:41:36PM +0100, Luca Boccassi wrote:
On Tue, 2018-09-11 at 14:32 +0100, Bruce Richardson wrote:
quoted
On Tue, Sep 11, 2018 at 02:09:30PM +0100, Luca Boccassi wrote:
quoted
On Tue, 2018-09-11 at 14:06 +0100, Bruce Richardson wrote:
quoted
On Mon, Sep 10, 2018 at 09:04:07PM +0100, Luca Boccassi wrote:
quoted
The library is called librte_pmd_lio, so rename the map file
and
set
the name in the meson file so that the built library names with
meson
and legacy makefiles are the same
Fixes: bad475c03fee ("net/liquidio: add to meson build")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
Rather than doing this renaming, can we instead add a symlink in
the
install phase to map the old name to the new one? I'd like to see
the
consistency of directory name, map filename and driver name
enforced
strictly in the build system. Having exceptions is a pain.
/Bruce
We could, but the pain gets shifted on packagers then - what about
renaming the directory entirely to net/lio?
For packagers, what sort of ABI compatibility guarantees do you try
and
keep between releases. Is this something that just needs a one-
release ABI
announcement, as with other ABI changes?
/Bruce
Currently in Debian/Ubuntu we are using the ABI override (because of
the sticky ABI breakage issue) so the filenames and package names are
different on every release anyway.
So in theory we could change the name of the libs and packages, but
what I'm mostly worried about is keeping consistency and some level of
compatibility between old and new build systems, isn't that an issue?
It's a good question, and I suspect everyone will have their own opinion.
Personally, I take the view that moving build system involves quite a
number of changes anyway, so we should take the opportunity to clean up a
few other things at the same time. This is why I'm so keep on trying to
keep everything consistent as far as possible throughout the system and not
put in special cases. For many of these a) if we put in lots of name
overrides now we'll probably never get rid of them, and b) it's more likely
that future drivers will adopt the same technique to have different naming
of drivers and directories.
However, if keeping sonames consistent is a major concern, then perhaps we
should look to rename some directories, like you suggested before.
/Bruce
On Tue, 2018-09-11 at 15:06 +0100, Bruce Richardson wrote:
On Tue, Sep 11, 2018 at 02:41:36PM +0100, Luca Boccassi wrote:
quoted
On Tue, 2018-09-11 at 14:32 +0100, Bruce Richardson wrote:
quoted
On Tue, Sep 11, 2018 at 02:09:30PM +0100, Luca Boccassi wrote:
quoted
On Tue, 2018-09-11 at 14:06 +0100, Bruce Richardson wrote:
quoted
On Mon, Sep 10, 2018 at 09:04:07PM +0100, Luca Boccassi
wrote:
quoted
The library is called librte_pmd_lio, so rename the map
file
and
set
the name in the meson file so that the built library names
with
meson
and legacy makefiles are the same
Fixes: bad475c03fee ("net/liquidio: add to meson build")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <redacted>
Rather than doing this renaming, can we instead add a symlink
in
the
install phase to map the old name to the new one? I'd like to
see
the
consistency of directory name, map filename and driver name
enforced
strictly in the build system. Having exceptions is a pain.
/Bruce
We could, but the pain gets shifted on packagers then - what
about
renaming the directory entirely to net/lio?
For packagers, what sort of ABI compatibility guarantees do you
try
and
keep between releases. Is this something that just needs a one-
release ABI
announcement, as with other ABI changes?
/Bruce
Currently in Debian/Ubuntu we are using the ABI override (because
of
the sticky ABI breakage issue) so the filenames and package names
are
different on every release anyway.
So in theory we could change the name of the libs and packages, but
what I'm mostly worried about is keeping consistency and some level
of
compatibility between old and new build systems, isn't that an
issue?
It's a good question, and I suspect everyone will have their own
opinion.
Personally, I take the view that moving build system involves quite a
number of changes anyway, so we should take the opportunity to clean
up a
few other things at the same time. This is why I'm so keep on trying
to
keep everything consistent as far as possible throughout the system
and not
put in special cases. For many of these a) if we put in lots of name
overrides now we'll probably never get rid of them, and b) it's more
likely
that future drivers will adopt the same technique to have different
naming
of drivers and directories.
However, if keeping sonames consistent is a major concern, then
perhaps we
should look to rename some directories, like you suggested before.
/Bruce
Actually I tend to agree, it would be better to make the libraries
consistent, so I'm fine with having to deal with it once in packaging.
I'll send a v2 without most of the renames.
--
Kind regards,
Luca Boccassi
@@ -0,0 +1,41 @@+# SPDX-License-Identifier: BSD-3-Clause+# Copyright 2018 Luca Boccassi <bluca@debian.org>++sources=files(+'rte_eth_tap.c',+'tap_bpf_api.c',+'tap_flow.c',+'tap_intr.c',+'tap_netlink.c',+'tap_tcmsgs.c',+)++deps=['bus_vdev','gso','hash']++cflags+='-DTAP_MAX_QUEUES=16'++# To maintain the compatibility with the make build system+# tap_autoconf.h file is still generated.+# input array for meson symbol search:+# [ "MACRO to define if found", "header for the search",+# "enum/define", "symbol to search" ]+#+args=[+['HAVE_TC_FLOWER','linux/pkt_cls.h',+'enum','TCA_FLOWER_UNSPEC'],+['HAVE_TC_VLAN_ID','linux/pkt_cls.h',+'enum','TCA_FLOWER_KEY_VLAN_PRIO'],+['HAVE_TC_BPF','linux/pkt_cls.h',+'enum','TCA_BPF_UNSPEC'],+['HAVE_TC_BPF_FD','linux/pkt_cls.h',+'enum','TCA_BPF_FD'],+['HAVE_TC_ACT_BPF','linux/tc_act/tc_bpf.h',+'enum','TCA_ACT_BPF_UNSPEC'],+['HAVE_TC_ACT_BPF_FD','linux/tc_act/tc_bpf.h',+'enum','TCA_ACT_BPF_FD'],+]+config=configuration_data()+foreacharg:args+config.set(arg[0],cc.has_header_symbol(arg[1],arg[3]))+endforeach+configure_file(output:'tap_autoconf.h',configuration:config)
@@ -2,7 +2,7 @@# Copyright(c) 2017 Intel Corporationdrivers=['ccp','dpaa_sec','dpaa2_sec','mvsam',-'null','openssl','qat','virtio']+'null','openssl','qat','scheduler','virtio']std_deps=['cryptodev']# cryptodev pulls in all other needed depsconfig_flag_fmt='RTE_LIBRTE_@0@_PMD'
@@ -9,6 +9,7 @@ driver_classes = ['common','crypto',# depends on common, bus and mempool (net in future).'compress',# depends on common, bus, mempool.'event',# depends on common, bus, mempool and net.+'baseband',# depends on common and bus.'raw']# depends on common, bus, mempool, net and event.default_cflags=machine_args
So that it can be used from Meson as well
Signed-off-by: Luca Boccassi <redacted>
---
drivers/event/opdl/Makefile | 2 +-
...md_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
rename drivers/event/opdl/{rte_pmd_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} (100%)
diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.mapsimilarity index 100%rename from drivers/event/opdl/rte_pmd_evdev_opdl_version.maprename to drivers/event/opdl/rte_pmd_opdl_event_version.map
--
2.18.0
@@ -32,7 +32,9 @@ drivers = ['af_packet','thunderx','vdev_netvsc','vhost',-'virtio']+'virtio',+'vmxnet3',+]std_deps=['ethdev','kvargs']# 'ethdev' also pulls in mbuf, net, eal etcstd_deps+=['bus_pci']# very many PMDs depend on PCI, so make stdstd_deps+=['bus_vdev']# same with vdev bus
@@ -0,0 +1,41 @@+# SPDX-License-Identifier: BSD-3-Clause+# Copyright 2018 Luca Boccassi <bluca@debian.org>++sources=files(+'rte_eth_tap.c',+'tap_bpf_api.c',+'tap_flow.c',+'tap_intr.c',+'tap_netlink.c',+'tap_tcmsgs.c',+)++deps=['bus_vdev','gso','hash']++cflags+='-DTAP_MAX_QUEUES=16'++# To maintain the compatibility with the make build system+# tap_autoconf.h file is still generated.+# input array for meson symbol search:+# [ "MACRO to define if found", "header for the search",+# "enum/define", "symbol to search" ]+#+args=[+['HAVE_TC_FLOWER','linux/pkt_cls.h',+'enum','TCA_FLOWER_UNSPEC'],+['HAVE_TC_VLAN_ID','linux/pkt_cls.h',+'enum','TCA_FLOWER_KEY_VLAN_PRIO'],+['HAVE_TC_BPF','linux/pkt_cls.h',+'enum','TCA_BPF_UNSPEC'],+['HAVE_TC_BPF_FD','linux/pkt_cls.h',+'enum','TCA_BPF_FD'],+['HAVE_TC_ACT_BPF','linux/tc_act/tc_bpf.h',+'enum','TCA_ACT_BPF_UNSPEC'],+['HAVE_TC_ACT_BPF_FD','linux/tc_act/tc_bpf.h',+'enum','TCA_ACT_BPF_FD'],+]+config=configuration_data()+foreacharg:args+config.set(arg[0],cc.has_header_symbol(arg[1],arg[3]))+endforeach+configure_file(output:'tap_autoconf.h',configuration:config)
--
Minor nit, arg 2 is unused, and this could be dropped, as is done in the
latest version of the mlnx meson build files.
/Bruce
b/drivers/net/tap/meson.build
new file mode 100644
index 0000000000..ef3c6e1fee
--- /dev/null+++ b/drivers/net/tap/meson.build
@@ -0,0 +1,41 @@+# SPDX-License-Identifier: BSD-3-Clause+# Copyright 2018 Luca Boccassi <bluca@debian.org>++sources=files(+'rte_eth_tap.c',+'tap_bpf_api.c',+'tap_flow.c',+'tap_intr.c',+'tap_netlink.c',+'tap_tcmsgs.c',+)++deps=['bus_vdev','gso','hash']++cflags+='-DTAP_MAX_QUEUES=16'++# To maintain the compatibility with the make build system+# tap_autoconf.h file is still generated.+# input array for meson symbol search:+# [ "MACRO to define if found", "header for the search",+# "enum/define", "symbol to search" ]+#+args=[+['HAVE_TC_FLOWER','linux/pkt_cls.h',+'enum','TCA_FLOWER_UNSPEC'],+['HAVE_TC_VLAN_ID','linux/pkt_cls.h',+'enum','TCA_FLOWER_KEY_VLAN_PRIO'],+['HAVE_TC_BPF','linux/pkt_cls.h',+'enum','TCA_BPF_UNSPEC'],+['HAVE_TC_BPF_FD','linux/pkt_cls.h',+'enum','TCA_BPF_FD'],+['HAVE_TC_ACT_BPF','linux/tc_act/tc_bpf.h',+'enum','TCA_ACT_BPF_UNSPEC'],+['HAVE_TC_ACT_BPF_FD','linux/tc_act/tc_bpf.h',+'enum','TCA_ACT_BPF_FD'],+]+config=configuration_data()+foreacharg:args+config.set(arg[0],cc.has_header_symbol(arg[1],arg[3]))+endforeach+configure_file(output:'tap_autoconf.h',configuration:config)--
Minor nit, arg 2 is unused, and this could be dropped, as is done in
the
latest version of the mlnx meson build files.
/Bruce
@@ -0,0 +1,41 @@+# SPDX-License-Identifier: BSD-3-Clause+# Copyright 2018 Luca Boccassi <bluca@debian.org>++sources=files(+'rte_eth_tap.c',+'tap_bpf_api.c',+'tap_flow.c',+'tap_intr.c',+'tap_netlink.c',+'tap_tcmsgs.c',+)++deps=['bus_vdev','gso','hash']++cflags+='-DTAP_MAX_QUEUES=16'++# To maintain the compatibility with the make build system+# tap_autoconf.h file is still generated.+# input array for meson symbol search:+# [ "MACRO to define if found", "header for the search",+# "enum/define", "symbol to search" ]+#+args=[+['HAVE_TC_FLOWER','linux/pkt_cls.h',+'TCA_FLOWER_UNSPEC'],+['HAVE_TC_VLAN_ID','linux/pkt_cls.h',+'TCA_FLOWER_KEY_VLAN_PRIO'],+['HAVE_TC_BPF','linux/pkt_cls.h',+'TCA_BPF_UNSPEC'],+['HAVE_TC_BPF_FD','linux/pkt_cls.h',+'TCA_BPF_FD'],+['HAVE_TC_ACT_BPF','linux/tc_act/tc_bpf.h',+'TCA_ACT_BPF_UNSPEC'],+['HAVE_TC_ACT_BPF_FD','linux/tc_act/tc_bpf.h',+'TCA_ACT_BPF_FD'],+]+config=configuration_data()+foreacharg:args+config.set(arg[0],cc.has_header_symbol(arg[1],arg[2]))+endforeach+configure_file(output:'tap_autoconf.h',configuration:config)
@@ -2,7 +2,7 @@# Copyright(c) 2017 Intel Corporationdrivers=['ccp','dpaa_sec','dpaa2_sec','mvsam',-'null','openssl','qat','virtio']+'null','openssl','qat','scheduler','virtio']std_deps=['cryptodev']# cryptodev pulls in all other needed depsconfig_flag_fmt='RTE_LIBRTE_@0@_PMD'
@@ -9,6 +9,7 @@ driver_classes = ['common','crypto',# depends on common, bus and mempool (net in future).'compress',# depends on common, bus, mempool.'event',# depends on common, bus, mempool and net.+'baseband',# depends on common and bus.'raw']# depends on common, bus, mempool, net and event.default_cflags=machine_args
So that it can be used from Meson as well
Signed-off-by: Luca Boccassi <redacted>
---
drivers/event/opdl/Makefile | 2 +-
...md_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
rename drivers/event/opdl/{rte_pmd_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} (100%)
diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.mapsimilarity index 100%rename from drivers/event/opdl/rte_pmd_evdev_opdl_version.maprename to drivers/event/opdl/rte_pmd_opdl_event_version.map
--
2.18.0
@@ -32,7 +32,9 @@ drivers = ['af_packet','thunderx','vdev_netvsc','vhost',-'virtio']+'virtio',+'vmxnet3',+]std_deps=['ethdev','kvargs']# 'ethdev' also pulls in mbuf, net, eal etcstd_deps+=['bus_pci']# very many PMDs depend on PCI, so make stdstd_deps+=['bus_vdev']# same with vdev bus
After applying this patch, I get lots of unused variable warnings.
Gcc 6.3
on debian, you'll be glad to know.
/Bruce
Yep got the same, but I'll leave that for the AVF maintainers to have
fun with :-)
Ok, I've sent a patch to remove the unused stuff.
http://patches.dpdk.org/patch/44694/
I think this file still needs "cflags += '-Wno-strict-aliasing'" to make it
work though, since those errors are tougher to remove. There also needs to
be an "INC_VECTOR" define inside the x86-specific block, as is done for the
IXGBE and I40E drivers.
/Bruce
@@ -0,0 +1,41 @@+# SPDX-License-Identifier: BSD-3-Clause+# Copyright 2018 Luca Boccassi <bluca@debian.org>++sources=files(+'rte_eth_tap.c',+'tap_bpf_api.c',+'tap_flow.c',+'tap_intr.c',+'tap_netlink.c',+'tap_tcmsgs.c',+)++deps=['bus_vdev','gso','hash']++cflags+='-DTAP_MAX_QUEUES=16'++# To maintain the compatibility with the make build system+# tap_autoconf.h file is still generated.+# input array for meson symbol search:+# [ "MACRO to define if found", "header for the search",+# "enum/define", "symbol to search" ]+#+args=[+['HAVE_TC_FLOWER','linux/pkt_cls.h',+'TCA_FLOWER_UNSPEC'],+['HAVE_TC_VLAN_ID','linux/pkt_cls.h',+'TCA_FLOWER_KEY_VLAN_PRIO'],+['HAVE_TC_BPF','linux/pkt_cls.h',+'TCA_BPF_UNSPEC'],+['HAVE_TC_BPF_FD','linux/pkt_cls.h',+'TCA_BPF_FD'],+['HAVE_TC_ACT_BPF','linux/tc_act/tc_bpf.h',+'TCA_ACT_BPF_UNSPEC'],+['HAVE_TC_ACT_BPF_FD','linux/tc_act/tc_bpf.h',+'TCA_ACT_BPF_FD'],+]+config=configuration_data()+foreacharg:args+config.set(arg[0],cc.has_header_symbol(arg[1],arg[2]))+endforeach+configure_file(output:'tap_autoconf.h',configuration:config)
@@ -2,7 +2,7 @@# Copyright(c) 2017 Intel Corporationdrivers=['ccp','dpaa_sec','dpaa2_sec','mvsam',-'null','openssl','qat','virtio']+'null','openssl','qat','scheduler','virtio']std_deps=['cryptodev']# cryptodev pulls in all other needed depsconfig_flag_fmt='RTE_LIBRTE_@0@_PMD'
@@ -9,6 +9,7 @@ driver_classes = ['common','crypto',# depends on common, bus and mempool (net in future).'compress',# depends on common, bus, mempool.'event',# depends on common, bus, mempool and net.+'baseband',# depends on common and bus.'raw']# depends on common, bus, mempool, net and event.default_cflags=machine_args
So that it can be used from Meson as well
Signed-off-by: Luca Boccassi <redacted>
---
drivers/event/opdl/Makefile | 2 +-
...md_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
rename drivers/event/opdl/{rte_pmd_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} (100%)
diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.mapsimilarity index 100%rename from drivers/event/opdl/rte_pmd_evdev_opdl_version.maprename to drivers/event/opdl/rte_pmd_opdl_event_version.map
--
2.18.0
@@ -32,7 +32,9 @@ drivers = ['af_packet','thunderx','vdev_netvsc','vhost',-'virtio']+'virtio',+'vmxnet3',+]std_deps=['ethdev','kvargs']# 'ethdev' also pulls in mbuf, net, eal etcstd_deps+=['bus_pci']# very many PMDs depend on PCI, so make stdstd_deps+=['bus_vdev']# same with vdev bus
From: Yong Wang <hidden> Date: 2018-09-13 21:44:21
-----Original Message-----
From: Luca Boccassi <redacted>
Date: Monday, September 10, 2018 at 1:05 PM
To: "dev@dpdk.org" <redacted>
Cc: "keith.wiles@intel.com" <redacted>, "roy.fan.zhang@intel.com" <redacted>, "jingjing.wu@intel.com" <redacted>, "wenzhuo.lu@intel.com" <redacted>, "rasesh.mody@cavium.com" <redacted>, "harish.patil@cavium.com" <redacted>, "shahed.shaikh@cavium.com" <redacted>, "amr.mokhtar@intel.com" <redacted>, "shijith.thotton@cavium.com" <redacted>, "ssrinivasan@cavium.com" <redacted>, "liang.j.ma@intel.com" <redacted>, "peter.mccarthy@intel.com" <redacted>, "jerin.jacob@caviumnetworks.com" <redacted>, "maciej.czekaj@caviumnetworks.com" <redacted>, "arybchenko@solarflare.com" <redacted>, "antosh.shukla@caviumnetworks.com" <redacted>, "ashish.gupta@cavium.com" <redacted>, Yong Wang <redacted>, "bruce.richardson@intel.com" <redacted>, "thomas@monjalon.net" <redacted>
Subject: [PATCH 14/15] net/vmxnet3: rename version map after library file name
The library is called librte_pmd_vmxnet3_uio, so rename the map
file and set the name in the meson file so that the built library names
with meson and legacy makefiles are the same
Signed-off-by: Luca Boccassi [off-list ref]
---
Not directly related to this change but I have some question on the uio naming. The original motivation is from the following commit:
commit 1daf0aae7fd6b3bc38952e9817a1653c1258be66
Author: Thomas Monjalon [off-list ref]
Date: Fri Mar 21 13:52:17 2014 +0100
vmxnet3: rename library
In order to distinguish clearly this implementation from the extension
vmxnet3-usermap, it is renamed to reflect its usage of uio framework.
Signed-off-by: Thomas Monjalon [off-list ref]
Acked-by: Thomas Graf [off-list ref]
However, this version of vmxnet3 can also be bound to vfio-pci driver. I think having the uio naming in that case will be misleading.
drivers/net/vmxnet3/Makefile | 2 +-
..._pmd_vmxnet3_version.map => rte_pmd_vmxnet3_uio_version.map} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
rename drivers/net/vmxnet3/{rte_pmd_vmxnet3_version.map => rte_pmd_vmxnet3_uio_version.map} (100%)
diff --git a/drivers/net/vmxnet3/Makefile b/drivers/net/vmxnet3/Makefile
index f1141da674..9848cd224f 100644
--- a/drivers/net/vmxnet3/Makefile
+++ b/drivers/net/vmxnet3/Makefile
@@ -43,7 +43,7 @@ LDLIBS += -lrte_bus_pci
VPATH += $(SRCDIR)/base
-EXPORT_MAP := rte_pmd_vmxnet3_version.map
+EXPORT_MAP := rte_pmd_vmxnet3_uio_version.map
LIBABIVER := 1
diff --git a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map b/drivers/net/vmxnet3/rte_pmd_vmxnet3_uio_version.map
similarity index 100%
rename from drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
rename to drivers/net/vmxnet3/rte_pmd_vmxnet3_uio_version.map
--
2.18.0
From: Thomas Monjalon <hidden> Date: 2018-09-14 07:46:51
13/09/2018 23:44, Yong Wang:
From: Luca Boccassi <redacted>
The library is called librte_pmd_vmxnet3_uio, so rename the map
file and set the name in the meson file so that the built library names
with meson and legacy makefiles are the same
Signed-off-by: Luca Boccassi [off-list ref]
---
Not directly related to this change but I have some question on the uio naming. The original motivation is from the following commit:
commit 1daf0aae7fd6b3bc38952e9817a1653c1258be66
Author: Thomas Monjalon [off-list ref]
Date: Fri Mar 21 13:52:17 2014 +0100
vmxnet3: rename library
In order to distinguish clearly this implementation from the extension
vmxnet3-usermap, it is renamed to reflect its usage of uio framework.
Signed-off-by: Thomas Monjalon [off-list ref]
Acked-by: Thomas Graf [off-list ref]
However, this version of vmxnet3 can also be bound to vfio-pci driver. I think having the uio naming in that case will be misleading.
Yes, i agree.
vmxnet3-usermap is not maintained anymore, so we can remove the uio suffix.
@@ -0,0 +1,41 @@+# SPDX-License-Identifier: BSD-3-Clause+# Copyright 2018 Luca Boccassi <bluca@debian.org>++sources=files(+'rte_eth_tap.c',+'tap_bpf_api.c',+'tap_flow.c',+'tap_intr.c',+'tap_netlink.c',+'tap_tcmsgs.c',+)++deps=['bus_vdev','gso','hash']++cflags+='-DTAP_MAX_QUEUES=16'++# To maintain the compatibility with the make build system+# tap_autoconf.h file is still generated.+# input array for meson symbol search:+# [ "MACRO to define if found", "header for the search",+# "enum/define", "symbol to search" ]+#+args=[+['HAVE_TC_FLOWER','linux/pkt_cls.h',+'TCA_FLOWER_UNSPEC'],+['HAVE_TC_VLAN_ID','linux/pkt_cls.h',+'TCA_FLOWER_KEY_VLAN_PRIO'],+['HAVE_TC_BPF','linux/pkt_cls.h',+'TCA_BPF_UNSPEC'],+['HAVE_TC_BPF_FD','linux/pkt_cls.h',+'TCA_BPF_FD'],+['HAVE_TC_ACT_BPF','linux/tc_act/tc_bpf.h',+'TCA_ACT_BPF_UNSPEC'],+['HAVE_TC_ACT_BPF_FD','linux/tc_act/tc_bpf.h',+'TCA_ACT_BPF_FD'],+]+config=configuration_data()+foreacharg:args+config.set(arg[0],cc.has_header_symbol(arg[1],arg[2]))+endforeach+configure_file(output:'tap_autoconf.h',configuration:config)
@@ -2,7 +2,7 @@# Copyright(c) 2017 Intel Corporationdrivers=['ccp','dpaa_sec','dpaa2_sec','mvsam',-'null','openssl','qat','virtio']+'null','openssl','qat','scheduler','virtio']std_deps=['cryptodev']# cryptodev pulls in all other needed depsconfig_flag_fmt='RTE_LIBRTE_@0@_PMD'
@@ -9,6 +9,7 @@ driver_classes = ['common','crypto',# depends on common, bus and mempool (net in future).'compress',# depends on common, bus, mempool.'event',# depends on common, bus, mempool and net.+'baseband',# depends on common and bus.'raw']# depends on common, bus, mempool, net and event.default_cflags=machine_args
So that it can be used from Meson as well
Signed-off-by: Luca Boccassi <redacted>
---
drivers/event/opdl/Makefile | 2 +-
...md_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
rename drivers/event/opdl/{rte_pmd_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} (100%)
diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.mapsimilarity index 100%rename from drivers/event/opdl/rte_pmd_evdev_opdl_version.maprename to drivers/event/opdl/rte_pmd_opdl_event_version.map
--
2.18.0
Note that the library built by meson will not have the _uio suffix:
librte_pmd_vmxnet3.so - as it follows the directory name, while the
legacy makefile rename it to librte_pmd_vmxnet3_uio.so.
Signed-off-by: Luca Boccassi <redacted>
---
drivers/net/meson.build | 4 +++-
drivers/net/vmxnet3/meson.build | 18 ++++++++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)
create mode 100644 drivers/net/vmxnet3/meson.build
@@ -32,7 +32,9 @@ drivers = ['af_packet','thunderx','vdev_netvsc','vhost',-'virtio']+'virtio',+'vmxnet3',+]std_deps=['ethdev','kvargs']# 'ethdev' also pulls in mbuf, net, eal etcstd_deps+=['bus_pci']# very many PMDs depend on PCI, so make stdstd_deps+=['bus_vdev']# same with vdev bus
On request I've sent a v5 adding a note in the commit message that the
filename of the library will be different from the one generated by the
makefiles, as it doesn't have the _uio suffix, following the suggestion
to avoid renames.
The following PMDs already have meson files which build a library file
with a different name from the makefiles:
net/liquidio
net/thurnderx
net/sfc
event/octeontx
compress/octeontx
--
Kind regards,
Luca Boccassi
On request I've sent a v5 adding a note in the commit message that the
filename of the library will be different from the one generated by the
makefiles, as it doesn't have the _uio suffix, following the suggestion
to avoid renames.
The following PMDs already have meson files which build a library file
with a different name from the makefiles:
net/liquidio
net/thurnderx
net/sfc
event/octeontx
compress/octeontx
We should really start pointing people to use the pkg-config files to pull
in libraries, and with a properly installed DPDK using "ninja install", all
.so drivers should be automatically found on the PMD_PATH. Therefore, the
number of cases where built-in DPDK drivers are being explicitly loaded
individually using "-d <drivername>" should be very, very few.
Regards,
/Bruce