[PATCH 00/15] rename PMDs map files to match library name and add Meson files

STALE2908d

80 messages, 5 authors, 2018-09-19 · page 1 of 2 · open the first message on its own page

[PATCH 00/15] rename PMDs map files to match library name and add Meson files

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:37

A few PMDs have a mismatch between the library filenames and the directory
and maps names, so adding support for Meson is awkward or, if it already
exists, the shared/static library filenames are different.
Rename the map files of the following PMDs to match the libraries:

- net/liquidio
- net/thunderx
- net/sfc
- net/vmxnet3
- event/opdl
- event/octeonx
- compress/octeonx

The octeonx event PMD is the most troubling of all, as all other event
PMDs have an _event suffix. So I had to rework a bit the overaching
Meson file for the drivers/event directory to accomodate it, to avoid
having to change the library filename which would break user apps.

Finally, Meson support is added (and build-tested only, but it looks
fine) for:

- net/tap
- net/vdev_netvsc
- net/avf
- net/qede
- net/vmxnet3
- crypto/scheduler
- baseband/null
- event/opdl

Luca Boccassi (15):
  build: add Meson file for TAP PMD
  build: add Meson file for vdev_netvsc PMD
  build: add Meson file for crypto scheduler PMD
  build: add Meson files for avf PMD
  build: add Meson files for qede PMD
  build: add Meson file for bbdev_null PMD
  net/liquidio: rename version map after library file name
  event/opdl: rename map file to match library name
  build: add Meson file for opdl_event PMD
  net/thunderx: rename version map after library file name
  net/sfc: rename version map after library file name
  event/octeontx: rename version map after library file name
  compress/octeontx: rename version map after library file name
  net/vmxnet3: rename version map after library file name
  build: add Meson file for vmxnet3_uio PMD

 config/rte_config.h                           |  3 +
 drivers/baseband/meson.build                  |  7 +++
 drivers/baseband/null/meson.build             |  7 +++
 drivers/compress/octeontx/Makefile            |  2 +-
 drivers/compress/octeontx/meson.build         |  2 +-
 ...n.map => rte_pmd_octeontx_zip_version.map} |  0
 drivers/crypto/meson.build                    |  2 +-
 drivers/crypto/scheduler/meson.build          | 19 +++++++
 drivers/event/dpaa/meson.build                |  1 +
 drivers/event/dpaa2/meson.build               |  1 +
 drivers/event/meson.build                     |  4 +-
 drivers/event/octeontx/Makefile               |  2 +-
 drivers/event/octeontx/meson.build            |  1 +
 ...map => rte_pmd_octeontx_ssovf_version.map} |  0
 drivers/event/opdl/Makefile                   |  2 +-
 drivers/event/opdl/meson.build                | 12 ++++
 ...ion.map => rte_pmd_opdl_event_version.map} |  0
 drivers/event/skeleton/meson.build            |  1 +
 drivers/event/sw/meson.build                  |  1 +
 drivers/meson.build                           |  1 +
 drivers/net/avf/base/meson.build              | 20 +++++++
 drivers/net/avf/meson.build                   | 15 +++++
 drivers/net/liquidio/Makefile                 |  2 +-
 drivers/net/liquidio/meson.build              |  1 +
 ...io_version.map => rte_pmd_lio_version.map} |  0
 drivers/net/meson.build                       |  9 ++-
 drivers/net/qede/base/meson.build             | 57 +++++++++++++++++++
 drivers/net/qede/meson.build                  | 14 +++++
 drivers/net/sfc/Makefile                      |  2 +-
 drivers/net/sfc/meson.build                   |  2 +
 ...ersion.map => rte_pmd_sfc_efx_version.map} |  0
 drivers/net/tap/meson.build                   | 41 +++++++++++++
 drivers/net/thunderx/Makefile                 |  2 +-
 drivers/net/thunderx/meson.build              |  1 +
 ...map => rte_pmd_thunderx_nicvf_version.map} |  0
 drivers/net/vdev_netvsc/meson.build           | 19 +++++++
 drivers/net/vmxnet3/Makefile                  |  2 +-
 drivers/net/vmxnet3/meson.build               | 19 +++++++
 ...on.map => rte_pmd_vmxnet3_uio_version.map} |  0
 39 files changed, 261 insertions(+), 13 deletions(-)
 create mode 100644 drivers/baseband/meson.build
 create mode 100644 drivers/baseband/null/meson.build
 rename drivers/compress/octeontx/{rte_pmd_octeontx_compress_version.map => rte_pmd_octeontx_zip_version.map} (100%)
 create mode 100644 drivers/crypto/scheduler/meson.build
 rename drivers/event/octeontx/{rte_pmd_octeontx_event_version.map => rte_pmd_octeontx_ssovf_version.map} (100%)
 create mode 100644 drivers/event/opdl/meson.build
 rename drivers/event/opdl/{rte_pmd_evdev_opdl_version.map => rte_pmd_opdl_event_version.map} (100%)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
 rename drivers/net/liquidio/{rte_pmd_liquidio_version.map => rte_pmd_lio_version.map} (100%)
 create mode 100644 drivers/net/qede/base/meson.build
 create mode 100644 drivers/net/qede/meson.build
 rename drivers/net/sfc/{rte_pmd_sfc_version.map => rte_pmd_sfc_efx_version.map} (100%)
 create mode 100644 drivers/net/tap/meson.build
 rename drivers/net/thunderx/{rte_pmd_thunderx_version.map => rte_pmd_thunderx_nicvf_version.map} (100%)
 create mode 100644 drivers/net/vdev_netvsc/meson.build
 create mode 100644 drivers/net/vmxnet3/meson.build
 rename drivers/net/vmxnet3/{rte_pmd_vmxnet3_version.map => rte_pmd_vmxnet3_uio_version.map} (100%)

-- 
2.18.0

[PATCH 01/15] build: add Meson file for tap PMD

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:39

Use same autoconf generation mechanism as the MLX4/5 PMDs

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build     |  1 +
 drivers/net/tap/meson.build | 41 +++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 drivers/net/tap/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index c7a2d0e7db..b7b4870eb8 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -27,6 +27,7 @@ drivers = ['af_packet',
 	'sfc',
 	'softnic',
 	'szedata2',
+	'tap',
 	'thunderx',
 	'vhost',
 	'virtio']
diff --git a/drivers/net/tap/meson.build 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()
+foreach arg:args
+	config.set(arg[0], cc.has_header_symbol(arg[1], arg[3]))
+endforeach
+configure_file(output : 'tap_autoconf.h', configuration : config)
-- 
2.18.0

[PATCH 02/15] build: add Meson file for vdev_netvsc PMD

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:41

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build             |  1 +
 drivers/net/vdev_netvsc/meson.build | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 drivers/net/vdev_netvsc/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index b7b4870eb8..68ac42d67c 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -29,6 +29,7 @@ drivers = ['af_packet',
 	'szedata2',
 	'tap',
 	'thunderx',
+	'vdev_netvsc',
 	'vhost',
 	'virtio']
 std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc
diff --git a/drivers/net/vdev_netvsc/meson.build b/drivers/net/vdev_netvsc/meson.build
new file mode 100644
index 0000000000..cc956e7b27
--- /dev/null
+++ b/drivers/net/vdev_netvsc/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = files('vdev_netvsc.c')
+
+allow_experimental_apis = true
+
+cflags_options = [
+        '-Wall',
+        '-Wextra',
+        '-D_BSD_SOURCE',
+        '-D_DEFAULT_SOURCE',
+        '-D_XOPEN_SOURCE=600'
+]
+foreach option:cflags_options
+        if cc.has_argument(option)
+                cflags += option
+        endif
+endforeach
-- 
2.18.0

[PATCH 03/15] build: add Meson file for crypto scheduler PMD

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:42

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/crypto/meson.build           |  2 +-
 drivers/crypto/scheduler/meson.build | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 drivers/crypto/scheduler/meson.build
diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build
index d64ca418bc..6ed853b7ab 100644
--- a/drivers/crypto/meson.build
+++ b/drivers/crypto/meson.build
@@ -2,7 +2,7 @@
 # Copyright(c) 2017 Intel Corporation
 
 drivers = ['ccp', 'dpaa_sec', 'dpaa2_sec', 'mvsam',
-	'null', 'openssl', 'qat', 'virtio']
+	'null', 'openssl', 'qat', 'scheduler', 'virtio']
 
 std_deps = ['cryptodev'] # cryptodev pulls in all other needed deps
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
diff --git a/drivers/crypto/scheduler/meson.build b/drivers/crypto/scheduler/meson.build
new file mode 100644
index 0000000000..c5ba2d6804
--- /dev/null
+++ b/drivers/crypto/scheduler/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+deps += ['bus_vdev', 'reorder']
+name = 'crypto_scheduler'
+sources = files(
+	'rte_cryptodev_scheduler.c',
+	'scheduler_failover.c',
+	'scheduler_multicore.c',
+	'scheduler_pkt_size_distr.c',
+	'scheduler_pmd.c',
+	'scheduler_pmd_ops.c',
+	'scheduler_roundrobin.c',
+)
+
+headers = files(
+	'rte_cryptodev_scheduler.h',
+	'rte_cryptodev_scheduler_operations.h',
+)
-- 
2.18.0

[PATCH 04/15] build: add Meson files for avf PMD

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:44

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 15 +++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 36 insertions(+)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
diff --git a/drivers/net/avf/base/meson.build b/drivers/net/avf/base/meson.build
new file mode 100644
index 0000000000..90fd6b445f
--- /dev/null
+++ b/drivers/net/avf/base/meson.build
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'avf_adminq.c',
+	'avf_common.c',
+]
+
+error_cflags = ['-Wno-pointer-to-int-cast']
+c_args = cflags
+foreach flag: error_cflags
+	if cc.has_argument(flag)
+		c_args += flag
+	endif
+endforeach
+
+base_lib = static_library('avf_base', sources,
+	dependencies: static_rte_eal,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/avf/meson.build b/drivers/net/avf/meson.build
new file mode 100644
index 0000000000..d341f029b2
--- /dev/null
+++ b/drivers/net/avf/meson.build
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'avf_ethdev.c',
+	'avf_rxtx.c',
+	'avf_rxtx_vec_sse.c',
+	'avf_vchnl.c',
+)
+if arch_subdir == 'x86'
+	sources += files('avf_rxtx_vec_sse.c')
+endif
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 68ac42d67c..28efeda0b6 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -3,6 +3,7 @@
 
 drivers = ['af_packet',
 	'ark',
+	'avf',
 	'avp',
 	'axgbe', 'bonding',
 	'bnx2x',
-- 
2.18.0

[PATCH 05/15] build: add Meson files for qede PMD

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:46

Signed-off-by: Luca Boccassi <redacted>
---
 config/rte_config.h               |  3 ++
 drivers/net/meson.build           |  2 +-
 drivers/net/qede/base/meson.build | 57 +++++++++++++++++++++++++++++++
 drivers/net/qede/meson.build      | 14 ++++++++
 4 files changed, 75 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/qede/base/meson.build
 create mode 100644 drivers/net/qede/meson.build
diff --git a/config/rte_config.h b/config/rte_config.h
index 46775a8419..ee84f04977 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -116,4 +116,7 @@
 #define RTE_PMD_RING_MAX_RX_RINGS 16
 #define RTE_PMD_RING_MAX_TX_RINGS 16
 
+/* QEDE PMD defines */
+#define RTE_LIBRTE_QEDE_FW ""
+
 #endif /* _RTE_CONFIG_H_ */
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 28efeda0b6..74f4109161 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -24,7 +24,7 @@ drivers = ['af_packet',
 	'mvpp2',
 	'netvsc',
 	'nfp',
-	'null', 'octeontx', 'pcap', 'ring',
+	'null', 'octeontx', 'pcap', 'qede', 'ring',
 	'sfc',
 	'softnic',
 	'szedata2',
diff --git a/drivers/net/qede/base/meson.build b/drivers/net/qede/base/meson.build
new file mode 100644
index 0000000000..59b41c895d
--- /dev/null
+++ b/drivers/net/qede/base/meson.build
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'bcm_osal.c',
+	'ecore_cxt.c',
+	'ecore_dcbx.c',
+	'ecore_dev.c',
+	'ecore_hw.c',
+	'ecore_init_fw_funcs.c',
+	'ecore_init_ops.c',
+	'ecore_int.c',
+	'ecore_l2.c',
+	'ecore_mcp.c',
+	'ecore_sp_commands.c',
+	'ecore_spq.c',
+	'ecore_sriov.c',
+	'ecore_vf.c',
+]
+
+
+error_cflags = [
+	'-Wno-unused-parameter',
+	'-Wno-sign-compare',
+	'-Wno-missing-prototypes',
+	'-Wno-cast-qual',
+	'-Wno-unused-function',
+	'-Wno-unused-variable',
+	'-Wno-strict-aliasing',
+	'-Wno-missing-prototypes',
+	'-Wno-unused-value',
+	'-Wno-format-nonliteral',
+	'-Wno-shift-negative-value',
+	'-Wno-unused-but-set-variable',
+	'-Wno-missing-declarations',
+	'-Wno-maybe-uninitialized',
+	'-Wno-strict-prototypes',
+	'-Wno-shift-negative-value',
+	'-Wno-implicit-fallthrough',
+	'-Wno-format-extra-args',
+	'-Wno-visibility',
+	'-Wno-empty-body',
+	'-Wno-invalid-source-encoding',
+	'-Wno-sometimes-uninitialized',
+	'-Wno-pointer-bool-conversion',
+]
+c_args = cflags
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                c_args += flag
+        endif
+endforeach
+
+base_lib = static_library('qede_base', sources,
+	dependencies: static_rte_net,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build
new file mode 100644
index 0000000000..167c03bdf2
--- /dev/null
+++ b/drivers/net/qede/meson.build
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'qede_ethdev.c',
+	'qede_fdir.c',
+	'qede_main.c',
+	'qede_rxtx.c',
+)
+
+#deps += ['ethdev']
-- 
2.18.0

[PATCH 06/15] build: add Meson file for bbdev_null PMD

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:48

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/baseband/meson.build      | 7 +++++++
 drivers/baseband/null/meson.build | 7 +++++++
 drivers/meson.build               | 1 +
 3 files changed, 15 insertions(+)
 create mode 100644 drivers/baseband/meson.build
 create mode 100644 drivers/baseband/null/meson.build
diff --git a/drivers/baseband/meson.build b/drivers/baseband/meson.build
new file mode 100644
index 0000000000..52489df354
--- /dev/null
+++ b/drivers/baseband/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+drivers = ['null']
+
+config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
+driver_name_fmt = 'rte_pmd_@0@'
diff --git a/drivers/baseband/null/meson.build b/drivers/baseband/null/meson.build
new file mode 100644
index 0000000000..64c29d8600
--- /dev/null
+++ b/drivers/baseband/null/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+deps += ['bbdev', 'bus_vdev', 'ring']
+name = 'bbdev_null'
+allow_experimental_apis = true
+sources = files('bbdev_null.c')
diff --git a/drivers/meson.build b/drivers/meson.build
index f94e2fe672..14e335ec1d 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -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
-- 
2.18.0

[PATCH 07/15] net/liquidio: rename version map after library file name

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:50

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/Makefile b/drivers/net/liquidio/Makefile
index f1092851a9..fc5f18ad63 100644
--- a/drivers/net/liquidio/Makefile
+++ b/drivers/net/liquidio/Makefile
@@ -15,7 +15,7 @@ LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
 LDLIBS += -lrte_bus_pci
 
-EXPORT_MAP := rte_pmd_liquidio_version.map
+EXPORT_MAP := rte_pmd_lio_version.map
 
 LIBABIVER := 1
 
diff --git a/drivers/net/liquidio/meson.build b/drivers/net/liquidio/meson.build
index 9ae48e2139..83d002f557 100644
--- a/drivers/net/liquidio/meson.build
+++ b/drivers/net/liquidio/meson.build
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+name = 'lio'
 sources = files('base/lio_23xx_vf.c',
 	'base/lio_mbox.c',
 	'lio_ethdev.c',
diff --git a/drivers/net/liquidio/rte_pmd_liquidio_version.map b/drivers/net/liquidio/rte_pmd_lio_version.map
similarity index 100%
rename from drivers/net/liquidio/rte_pmd_liquidio_version.map
rename to drivers/net/liquidio/rte_pmd_lio_version.map
-- 
2.18.0

[PATCH 08/15] event/opdl: rename map file to match library name

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:51

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/Makefile b/drivers/event/opdl/Makefile
index cea8118d36..bf50a60a0b 100644
--- a/drivers/event/opdl/Makefile
+++ b/drivers/event/opdl/Makefile
@@ -24,7 +24,7 @@ LDLIBS += -lrte_bus_vdev -lrte_mbuf -lrte_mempool
 LIBABIVER := 1
 
 # versioning export map
-EXPORT_MAP := rte_pmd_evdev_opdl_version.map
+EXPORT_MAP := rte_pmd_opdl_event_version.map
 
 # library source files
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_ring.c
diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
similarity index 100%
rename from drivers/event/opdl/rte_pmd_evdev_opdl_version.map
rename to drivers/event/opdl/rte_pmd_opdl_event_version.map
-- 
2.18.0

[PATCH 09/15] build: add Meson file for opdl_event PMD

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:53

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/event/meson.build      |  2 +-
 drivers/event/opdl/meson.build | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)
 create mode 100644 drivers/event/opdl/meson.build
diff --git a/drivers/event/meson.build b/drivers/event/meson.build
index e951199358..ed56d20062 100644
--- a/drivers/event/meson.build
+++ b/drivers/event/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-drivers = ['dpaa', 'dpaa2', 'octeontx', 'skeleton', 'sw']
+drivers = ['dpaa', 'dpaa2', 'octeontx', 'opdl', 'skeleton', 'sw']
 std_deps = ['eventdev', 'kvargs']
 config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD'
 driver_name_fmt = 'rte_pmd_@0@_event'
diff --git a/drivers/event/opdl/meson.build b/drivers/event/opdl/meson.build
new file mode 100644
index 0000000000..cc6029c6f0
--- /dev/null
+++ b/drivers/event/opdl/meson.build
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = files(
+	'opdl_evdev.c',
+	'opdl_evdev_init.c',
+	'opdl_evdev_xstats.c',
+	'opdl_ring.c',
+	'opdl_test.c',
+)
+deps += ['bus_vdev']
-- 
2.18.0

[PATCH 10/15] net/thunderx: rename version map after library file name

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:55

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/Makefile b/drivers/net/thunderx/Makefile
index e6bf497522..cc008bd3a4 100644
--- a/drivers/net/thunderx/Makefile
+++ b/drivers/net/thunderx/Makefile
@@ -16,7 +16,7 @@ LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
 LDLIBS += -lrte_bus_pci
 
-EXPORT_MAP := rte_pmd_thunderx_version.map
+EXPORT_MAP := rte_pmd_thunderx_nicvf_version.map
 
 LIBABIVER := 1
 
diff --git a/drivers/net/thunderx/meson.build b/drivers/net/thunderx/meson.build
index 69819a97fa..0c1207455e 100644
--- a/drivers/net/thunderx/meson.build
+++ b/drivers/net/thunderx/meson.build
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Cavium, Inc
 
+name = 'thunderx_nicvf'
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/thunderx/rte_pmd_thunderx_version.map b/drivers/net/thunderx/rte_pmd_thunderx_nicvf_version.map
similarity index 100%
rename from drivers/net/thunderx/rte_pmd_thunderx_version.map
rename to drivers/net/thunderx/rte_pmd_thunderx_nicvf_version.map
-- 
2.18.0

[PATCH 11/15] net/sfc: rename version map after library file name

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:04:58

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%)
diff --git a/drivers/net/sfc/Makefile b/drivers/net/sfc/Makefile
index 3bb41a0001..2825649599 100644
--- a/drivers/net/sfc/Makefile
+++ b/drivers/net/sfc/Makefile
@@ -60,7 +60,7 @@ BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.
 $(foreach obj, $(BASE_DRIVER_OBJS), \
   $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
 
-EXPORT_MAP := rte_pmd_sfc_version.map
+EXPORT_MAP := rte_pmd_sfc_efx_version.map
 
 LIBABIVER := 1
 
diff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build
index 2d34e869d8..d6572b82c0 100644
--- a/drivers/net/sfc/meson.build
+++ b/drivers/net/sfc/meson.build
@@ -6,6 +6,8 @@
 # This software was jointly developed between OKTET Labs (under contract
 # for Solarflare) and Solarflare Communications, Inc.
 
+name = 'sfc_efx'
+
 if arch_subdir != 'x86' or cc.sizeof('void *') == 4
 	build = false
 endif
diff --git a/drivers/net/sfc/rte_pmd_sfc_version.map b/drivers/net/sfc/rte_pmd_sfc_efx_version.map
similarity index 100%
rename from drivers/net/sfc/rte_pmd_sfc_version.map
rename to drivers/net/sfc/rte_pmd_sfc_efx_version.map
-- 
2.18.0

[PATCH 12/15] event/octeontx: rename version map after library file name

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:05:01

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%)
diff --git a/drivers/event/dpaa/meson.build b/drivers/event/dpaa/meson.build
index 0914f858ef..da65aee179 100644
--- a/drivers/event/dpaa/meson.build
+++ b/drivers/event/dpaa/meson.build
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright 2018 NXP
 
+name = 'dpaa_event'
 if host_machine.system() != 'linux'
 	build = false
 endif
diff --git a/drivers/event/dpaa2/meson.build b/drivers/event/dpaa2/meson.build
index de7a461553..dd38643811 100644
--- a/drivers/event/dpaa2/meson.build
+++ b/drivers/event/dpaa2/meson.build
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright 2018 NXP
 
+name = 'dpaa2_event'
 if host_machine.system() != 'linux'
 	build = false
 endif
diff --git a/drivers/event/meson.build b/drivers/event/meson.build
index ed56d20062..245a98ec93 100644
--- a/drivers/event/meson.build
+++ b/drivers/event/meson.build
@@ -4,4 +4,4 @@
 drivers = ['dpaa', 'dpaa2', 'octeontx', 'opdl', 'skeleton', 'sw']
 std_deps = ['eventdev', 'kvargs']
 config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD'
-driver_name_fmt = 'rte_pmd_@0@_event'
+driver_name_fmt = 'rte_pmd_@0@'
diff --git a/drivers/event/octeontx/Makefile b/drivers/event/octeontx/Makefile
index 90ad2217f3..6aeaa2bb9d 100644
--- a/drivers/event/octeontx/Makefile
+++ b/drivers/event/octeontx/Makefile
@@ -19,7 +19,7 @@ LDLIBS += -lrte_eal -lrte_eventdev -lrte_common_octeontx -lrte_pmd_octeontx
 LDLIBS += -lrte_bus_pci -lrte_mempool -lrte_mbuf -lrte_kvargs
 LDLIBS += -lrte_bus_vdev
 
-EXPORT_MAP := rte_pmd_octeontx_event_version.map
+EXPORT_MAP := rte_pmd_octeontx_ssovf_version.map
 
 LIBABIVER := 1
 
diff --git a/drivers/event/octeontx/meson.build b/drivers/event/octeontx/meson.build
index 0418553308..48b3ffea52 100644
--- a/drivers/event/octeontx/meson.build
+++ b/drivers/event/octeontx/meson.build
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Cavium, Inc
 
+name = 'octeontx_ssovf'
 sources = files('ssovf_worker.c',
 		'ssovf_evdev.c',
 		'ssovf_evdev_selftest.c',
diff --git a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map b/drivers/event/octeontx/rte_pmd_octeontx_ssovf_version.map
similarity index 100%
rename from drivers/event/octeontx/rte_pmd_octeontx_event_version.map
rename to drivers/event/octeontx/rte_pmd_octeontx_ssovf_version.map
diff --git a/drivers/event/opdl/meson.build b/drivers/event/opdl/meson.build
index cc6029c6f0..6083a7e78a 100644
--- a/drivers/event/opdl/meson.build
+++ b/drivers/event/opdl/meson.build
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
+name = 'opdl_event'
 sources = files(
 	'opdl_evdev.c',
 	'opdl_evdev_init.c',
diff --git a/drivers/event/skeleton/meson.build b/drivers/event/skeleton/meson.build
index acfe156532..0995cf50cb 100644
--- a/drivers/event/skeleton/meson.build
+++ b/drivers/event/skeleton/meson.build
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+name = 'skeleton_event'
 sources = files('skeleton_eventdev.c')
 deps += ['bus_pci', 'bus_vdev']
diff --git a/drivers/event/sw/meson.build b/drivers/event/sw/meson.build
index 30d2216476..9dd55743aa 100644
--- a/drivers/event/sw/meson.build
+++ b/drivers/event/sw/meson.build
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+name = 'sw_event'
 allow_experimental_apis = true
 sources = files('sw_evdev_scheduler.c',
 	'sw_evdev_selftest.c',
-- 
2.18.0

[PATCH 13/15] compress/octeontx: rename version map after library file name

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:05:04

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/Makefile b/drivers/compress/octeontx/Makefile
index f34424c87f..0499004402 100644
--- a/drivers/compress/octeontx/Makefile
+++ b/drivers/compress/octeontx/Makefile
@@ -25,6 +25,6 @@ SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF) += otx_zip_pmd.c
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF) += otx_zip.c
 
 # versioning export map
-EXPORT_MAP := rte_pmd_octeontx_compress_version.map
+EXPORT_MAP := rte_pmd_octeontx_zip_version.map
 
 include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/compress/octeontx/meson.build b/drivers/compress/octeontx/meson.build
index 7cd202d07a..520d19684b 100644
--- a/drivers/compress/octeontx/meson.build
+++ b/drivers/compress/octeontx/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Cavium, Inc
 
-name = 'octeontx_compress'
+name = 'octeontx_zip'
 sources = files('otx_zip.c', 'otx_zip_pmd.c')
 allow_experimental_apis = true
 includes += include_directories('include')
diff --git a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map b/drivers/compress/octeontx/rte_pmd_octeontx_zip_version.map
similarity index 100%
rename from drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
rename to drivers/compress/octeontx/rte_pmd_octeontx_zip_version.map
-- 
2.18.0

[PATCH 14/15] net/vmxnet3: rename version map after library file name

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:05:07

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/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

[PATCH 15/15] build: add Meson file for vmxnet3_uio PMD

From: Luca Boccassi <hidden>
Date: 2018-09-10 20:05:09

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build         |  4 +++-
 drivers/net/vmxnet3/meson.build | 19 +++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/vmxnet3/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 74f4109161..5906283c2f 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/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 etc
 std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std
 std_deps += ['bus_vdev']        # same with vdev bus
diff --git a/drivers/net/vmxnet3/meson.build b/drivers/net/vmxnet3/meson.build
new file mode 100644
index 0000000000..0019661e81
--- /dev/null
+++ b/drivers/net/vmxnet3/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+name = 'vmxnet3_uio'
+allow_experimental_apis = true
+sources += files(
+	'vmxnet3_ethdev.c',
+	'vmxnet3_rxtx.c',
+)
+
+error_cflags = [
+		'-Wno-unused-parameter', '-Wno-unused-value',
+                '-Wno-strict-aliasing', '-Wno-format-extra-args',
+]
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                cflags += flag
+        endif
+endforeach
-- 
2.18.0

Re: [PATCH 05/15] build: add Meson files for qede PMD

From: Shaikh, Shahed <hidden>
Date: 2018-09-11 09:16:08

-----Original Message-----
From: Luca Boccassi <redacted>
Sent: Tuesday, September 11, 2018 1:34 AM
To: dev@dpdk.org
Cc: keith.wiles@intel.com; roy.fan.zhang@intel.com; jingjing.wu@intel.com;
wenzhuo.lu@intel.com; Mody, Rasesh [off-list ref]; Patil,
Harish [off-list ref]; Shaikh, Shahed
[off-list ref]; amr.mokhtar@intel.com; Thotton, Shijith
[off-list ref]; Srinivasan, Srisivasubramanian
[off-list ref]; liang.j.ma@intel.com;
peter.mccarthy@intel.com; Jacob, Jerin
[off-list ref]; Czekaj, Maciej
[off-list ref]; arybchenko@solarflare.com;
antosh.shukla@caviumnetworks.com; Gupta, Ashish
[off-list ref]; yongwang@vmware.com;
bruce.richardson@intel.com; thomas@monjalon.net
Subject: [PATCH 05/15] build: add Meson files for qede PMD
.
.
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+       'qede_ethdev.c',
+       'qede_fdir.c',
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.
+       'qede_main.c',
+       'qede_rxtx.c',
+)
+
+#deps += ['ethdev']
--
2.18.0
Acked-by: Shahed Shaikh <redacted>

Re: [PATCH 07/15] net/liquidio: rename version map after library file name

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

Re: [PATCH 07/15] net/liquidio: rename version map after library file name

From: Luca Boccassi <hidden>
Date: 2018-09-11 13:09:32

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

Re: [PATCH 10/15] net/thunderx: rename version map after library file name

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

Re: [PATCH 07/15] net/liquidio: rename version map after library file name

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

Re: [PATCH 07/15] net/liquidio: rename version map after library file name

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

Re: [PATCH 07/15] net/liquidio: rename version map after library file name

From: Luca Boccassi <hidden>
Date: 2018-09-11 13:38:54

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
-- 
Kind regards,
Luca Boccassi

Re: [PATCH 07/15] net/liquidio: rename version map after library file name

From: Luca Boccassi <hidden>
Date: 2018-09-11 13:41:39

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

Re: [PATCH 07/15] net/liquidio: rename version map after library file name

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

Re: [PATCH 07/15] net/liquidio: rename version map after library file name

From: Luca Boccassi <hidden>
Date: 2018-09-11 16:05:18

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

[PATCH v2 1/9] build: add Meson file for TAP PMD

From: Luca Boccassi <hidden>
Date: 2018-09-11 16:09:12

Use same autoconf generation mechanism as the MLX4/5 PMDs

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build     |  1 +
 drivers/net/tap/meson.build | 41 +++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 drivers/net/tap/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index c7a2d0e7db..b7b4870eb8 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -27,6 +27,7 @@ drivers = ['af_packet',
 	'sfc',
 	'softnic',
 	'szedata2',
+	'tap',
 	'thunderx',
 	'vhost',
 	'virtio']
diff --git a/drivers/net/tap/meson.build 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()
+foreach arg:args
+	config.set(arg[0], cc.has_header_symbol(arg[1], arg[3]))
+endforeach
+configure_file(output : 'tap_autoconf.h', configuration : config)
-- 
2.18.0

[PATCH v2 2/9] build: add Meson file for vdev_netvsc PMD

From: Luca Boccassi <hidden>
Date: 2018-09-11 16:09:14

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build             |  1 +
 drivers/net/vdev_netvsc/meson.build | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 drivers/net/vdev_netvsc/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index b7b4870eb8..68ac42d67c 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -29,6 +29,7 @@ drivers = ['af_packet',
 	'szedata2',
 	'tap',
 	'thunderx',
+	'vdev_netvsc',
 	'vhost',
 	'virtio']
 std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc
diff --git a/drivers/net/vdev_netvsc/meson.build b/drivers/net/vdev_netvsc/meson.build
new file mode 100644
index 0000000000..cc956e7b27
--- /dev/null
+++ b/drivers/net/vdev_netvsc/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = files('vdev_netvsc.c')
+
+allow_experimental_apis = true
+
+cflags_options = [
+        '-Wall',
+        '-Wextra',
+        '-D_BSD_SOURCE',
+        '-D_DEFAULT_SOURCE',
+        '-D_XOPEN_SOURCE=600'
+]
+foreach option:cflags_options
+        if cc.has_argument(option)
+                cflags += option
+        endif
+endforeach
-- 
2.18.0

[PATCH v2 3/9] build: add Meson file for crypto scheduler PMD

From: Luca Boccassi <hidden>
Date: 2018-09-11 16:09:16

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/crypto/meson.build           |  2 +-
 drivers/crypto/scheduler/meson.build | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 drivers/crypto/scheduler/meson.build
diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build
index d64ca418bc..6ed853b7ab 100644
--- a/drivers/crypto/meson.build
+++ b/drivers/crypto/meson.build
@@ -2,7 +2,7 @@
 # Copyright(c) 2017 Intel Corporation
 
 drivers = ['ccp', 'dpaa_sec', 'dpaa2_sec', 'mvsam',
-	'null', 'openssl', 'qat', 'virtio']
+	'null', 'openssl', 'qat', 'scheduler', 'virtio']
 
 std_deps = ['cryptodev'] # cryptodev pulls in all other needed deps
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
diff --git a/drivers/crypto/scheduler/meson.build b/drivers/crypto/scheduler/meson.build
new file mode 100644
index 0000000000..c5ba2d6804
--- /dev/null
+++ b/drivers/crypto/scheduler/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+deps += ['bus_vdev', 'reorder']
+name = 'crypto_scheduler'
+sources = files(
+	'rte_cryptodev_scheduler.c',
+	'scheduler_failover.c',
+	'scheduler_multicore.c',
+	'scheduler_pkt_size_distr.c',
+	'scheduler_pmd.c',
+	'scheduler_pmd_ops.c',
+	'scheduler_roundrobin.c',
+)
+
+headers = files(
+	'rte_cryptodev_scheduler.h',
+	'rte_cryptodev_scheduler_operations.h',
+)
-- 
2.18.0

[PATCH v2 4/9] build: add Meson files for avf PMD

From: Luca Boccassi <hidden>
Date: 2018-09-11 16:09:18

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 15 +++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 36 insertions(+)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
diff --git a/drivers/net/avf/base/meson.build b/drivers/net/avf/base/meson.build
new file mode 100644
index 0000000000..90fd6b445f
--- /dev/null
+++ b/drivers/net/avf/base/meson.build
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'avf_adminq.c',
+	'avf_common.c',
+]
+
+error_cflags = ['-Wno-pointer-to-int-cast']
+c_args = cflags
+foreach flag: error_cflags
+	if cc.has_argument(flag)
+		c_args += flag
+	endif
+endforeach
+
+base_lib = static_library('avf_base', sources,
+	dependencies: static_rte_eal,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/avf/meson.build b/drivers/net/avf/meson.build
new file mode 100644
index 0000000000..d341f029b2
--- /dev/null
+++ b/drivers/net/avf/meson.build
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'avf_ethdev.c',
+	'avf_rxtx.c',
+	'avf_rxtx_vec_sse.c',
+	'avf_vchnl.c',
+)
+if arch_subdir == 'x86'
+	sources += files('avf_rxtx_vec_sse.c')
+endif
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 68ac42d67c..28efeda0b6 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -3,6 +3,7 @@
 
 drivers = ['af_packet',
 	'ark',
+	'avf',
 	'avp',
 	'axgbe', 'bonding',
 	'bnx2x',
-- 
2.18.0

[PATCH v2 5/9] build: add Meson files for qede PMD

From: Luca Boccassi <hidden>
Date: 2018-09-11 16:09:20

Signed-off-by: Luca Boccassi <redacted>
Acked-by: Shahed Shaikh <redacted>
---
 config/rte_config.h               |  3 ++
 drivers/net/meson.build           |  2 +-
 drivers/net/qede/base/meson.build | 57 +++++++++++++++++++++++++++++++
 drivers/net/qede/meson.build      | 12 +++++++
 4 files changed, 73 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/qede/base/meson.build
 create mode 100644 drivers/net/qede/meson.build
diff --git a/config/rte_config.h b/config/rte_config.h
index 46775a8419..ee84f04977 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -116,4 +116,7 @@
 #define RTE_PMD_RING_MAX_RX_RINGS 16
 #define RTE_PMD_RING_MAX_TX_RINGS 16
 
+/* QEDE PMD defines */
+#define RTE_LIBRTE_QEDE_FW ""
+
 #endif /* _RTE_CONFIG_H_ */
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 28efeda0b6..74f4109161 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -24,7 +24,7 @@ drivers = ['af_packet',
 	'mvpp2',
 	'netvsc',
 	'nfp',
-	'null', 'octeontx', 'pcap', 'ring',
+	'null', 'octeontx', 'pcap', 'qede', 'ring',
 	'sfc',
 	'softnic',
 	'szedata2',
diff --git a/drivers/net/qede/base/meson.build b/drivers/net/qede/base/meson.build
new file mode 100644
index 0000000000..59b41c895d
--- /dev/null
+++ b/drivers/net/qede/base/meson.build
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'bcm_osal.c',
+	'ecore_cxt.c',
+	'ecore_dcbx.c',
+	'ecore_dev.c',
+	'ecore_hw.c',
+	'ecore_init_fw_funcs.c',
+	'ecore_init_ops.c',
+	'ecore_int.c',
+	'ecore_l2.c',
+	'ecore_mcp.c',
+	'ecore_sp_commands.c',
+	'ecore_spq.c',
+	'ecore_sriov.c',
+	'ecore_vf.c',
+]
+
+
+error_cflags = [
+	'-Wno-unused-parameter',
+	'-Wno-sign-compare',
+	'-Wno-missing-prototypes',
+	'-Wno-cast-qual',
+	'-Wno-unused-function',
+	'-Wno-unused-variable',
+	'-Wno-strict-aliasing',
+	'-Wno-missing-prototypes',
+	'-Wno-unused-value',
+	'-Wno-format-nonliteral',
+	'-Wno-shift-negative-value',
+	'-Wno-unused-but-set-variable',
+	'-Wno-missing-declarations',
+	'-Wno-maybe-uninitialized',
+	'-Wno-strict-prototypes',
+	'-Wno-shift-negative-value',
+	'-Wno-implicit-fallthrough',
+	'-Wno-format-extra-args',
+	'-Wno-visibility',
+	'-Wno-empty-body',
+	'-Wno-invalid-source-encoding',
+	'-Wno-sometimes-uninitialized',
+	'-Wno-pointer-bool-conversion',
+]
+c_args = cflags
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                c_args += flag
+        endif
+endforeach
+
+base_lib = static_library('qede_base', sources,
+	dependencies: static_rte_net,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build
new file mode 100644
index 0000000000..6280073a56
--- /dev/null
+++ b/drivers/net/qede/meson.build
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'qede_ethdev.c',
+	'qede_fdir.c',
+	'qede_main.c',
+	'qede_rxtx.c',
+)
-- 
2.18.0

[PATCH v2 6/9] build: add Meson file for bbdev_null PMD

From: Luca Boccassi <hidden>
Date: 2018-09-11 16:09:22

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/baseband/meson.build      | 7 +++++++
 drivers/baseband/null/meson.build | 7 +++++++
 drivers/meson.build               | 1 +
 3 files changed, 15 insertions(+)
 create mode 100644 drivers/baseband/meson.build
 create mode 100644 drivers/baseband/null/meson.build
diff --git a/drivers/baseband/meson.build b/drivers/baseband/meson.build
new file mode 100644
index 0000000000..52489df354
--- /dev/null
+++ b/drivers/baseband/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+drivers = ['null']
+
+config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
+driver_name_fmt = 'rte_pmd_@0@'
diff --git a/drivers/baseband/null/meson.build b/drivers/baseband/null/meson.build
new file mode 100644
index 0000000000..64c29d8600
--- /dev/null
+++ b/drivers/baseband/null/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+deps += ['bbdev', 'bus_vdev', 'ring']
+name = 'bbdev_null'
+allow_experimental_apis = true
+sources = files('bbdev_null.c')
diff --git a/drivers/meson.build b/drivers/meson.build
index f94e2fe672..14e335ec1d 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -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
-- 
2.18.0

[PATCH v2 7/9] event/opdl: rename map file to match library name

From: Luca Boccassi <hidden>
Date: 2018-09-11 16:09:24

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/Makefile b/drivers/event/opdl/Makefile
index cea8118d36..bf50a60a0b 100644
--- a/drivers/event/opdl/Makefile
+++ b/drivers/event/opdl/Makefile
@@ -24,7 +24,7 @@ LDLIBS += -lrte_bus_vdev -lrte_mbuf -lrte_mempool
 LIBABIVER := 1
 
 # versioning export map
-EXPORT_MAP := rte_pmd_evdev_opdl_version.map
+EXPORT_MAP := rte_pmd_opdl_event_version.map
 
 # library source files
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_ring.c
diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
similarity index 100%
rename from drivers/event/opdl/rte_pmd_evdev_opdl_version.map
rename to drivers/event/opdl/rte_pmd_opdl_event_version.map
-- 
2.18.0

[PATCH v2 8/9] build: add Meson file for opdl_event PMD

From: Luca Boccassi <hidden>
Date: 2018-09-11 16:09:26

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/event/meson.build      |  2 +-
 drivers/event/opdl/meson.build | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)
 create mode 100644 drivers/event/opdl/meson.build
diff --git a/drivers/event/meson.build b/drivers/event/meson.build
index e951199358..ed56d20062 100644
--- a/drivers/event/meson.build
+++ b/drivers/event/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-drivers = ['dpaa', 'dpaa2', 'octeontx', 'skeleton', 'sw']
+drivers = ['dpaa', 'dpaa2', 'octeontx', 'opdl', 'skeleton', 'sw']
 std_deps = ['eventdev', 'kvargs']
 config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD'
 driver_name_fmt = 'rte_pmd_@0@_event'
diff --git a/drivers/event/opdl/meson.build b/drivers/event/opdl/meson.build
new file mode 100644
index 0000000000..cc6029c6f0
--- /dev/null
+++ b/drivers/event/opdl/meson.build
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = files(
+	'opdl_evdev.c',
+	'opdl_evdev_init.c',
+	'opdl_evdev_xstats.c',
+	'opdl_ring.c',
+	'opdl_test.c',
+)
+deps += ['bus_vdev']
-- 
2.18.0

[PATCH v2 9/9] build: add Meson file for vmxnet3_uio PMD

From: Luca Boccassi <hidden>
Date: 2018-09-11 16:09:28

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
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 74f4109161..5906283c2f 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/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 etc
 std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std
 std_deps += ['bus_vdev']        # same with vdev bus
diff --git a/drivers/net/vmxnet3/meson.build b/drivers/net/vmxnet3/meson.build
new file mode 100644
index 0000000000..a92bd28680
--- /dev/null
+++ b/drivers/net/vmxnet3/meson.build
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+allow_experimental_apis = true
+sources += files(
+	'vmxnet3_ethdev.c',
+	'vmxnet3_rxtx.c',
+)
+
+error_cflags = [
+		'-Wno-unused-parameter', '-Wno-unused-value',
+                '-Wno-strict-aliasing', '-Wno-format-extra-args',
+]
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                cflags += flag
+        endif
+endforeach
-- 
2.18.0

Re: [PATCH v2 1/9] build: add Meson file for TAP PMD

From: Bruce Richardson <hidden>
Date: 2018-09-13 13:11:19

On Tue, Sep 11, 2018 at 05:08:55PM +0100, Luca Boccassi wrote:
quoted hunk
Use same autoconf generation mechanism as the MLX4/5 PMDs

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build     |  1 +
 drivers/net/tap/meson.build | 41 +++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 drivers/net/tap/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index c7a2d0e7db..b7b4870eb8 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -27,6 +27,7 @@ drivers = ['af_packet',
 	'sfc',
 	'softnic',
 	'szedata2',
+	'tap',
 	'thunderx',
 	'vhost',
 	'virtio']
diff --git a/drivers/net/tap/meson.build 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()
+foreach arg: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

Re: [PATCH v2 4/9] build: add Meson files for avf PMD

From: Bruce Richardson <hidden>
Date: 2018-09-13 13:25:04

On Tue, Sep 11, 2018 at 05:08:58PM +0100, Luca Boccassi wrote:
Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 15 +++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 36 insertions(+)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
After applying this patch, I get lots of unused variable warnings. Gcc 6.3
on debian, you'll be glad to know.

/Bruce

Re: [PATCH v2 4/9] build: add Meson files for avf PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:27:57

On Thu, 2018-09-13 at 14:24 +0100, Bruce Richardson wrote:
On Tue, Sep 11, 2018 at 05:08:58PM +0100, Luca Boccassi wrote:
quoted
Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 15 +++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 36 insertions(+)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
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 :-)

-- 
Kind regards,
Luca Boccassi

Re: [PATCH v2 1/9] build: add Meson file for TAP PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:28:31

On Thu, 2018-09-13 at 14:11 +0100, Bruce Richardson wrote:
On Tue, Sep 11, 2018 at 05:08:55PM +0100, Luca Boccassi wrote:
quoted
Use same autoconf generation mechanism as the MLX4/5 PMDs

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build     |  1 +
 drivers/net/tap/meson.build | 41
+++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 drivers/net/tap/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index c7a2d0e7db..b7b4870eb8 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -27,6 +27,7 @@ drivers = ['af_packet',
 	'sfc',
 	'softnic',
 	'szedata2',
+	'tap',
 	'thunderx',
 	'vhost',
 	'virtio']
diff --git a/drivers/net/tap/meson.build
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()
+foreach arg: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
Ok, will fix in v3

-- 
Kind regards,
Luca Boccassi

[PATCH v3 1/9] build: add Meson file for TAP PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:41:47

Use same autoconf generation mechanism as the MLX4/5 PMDs

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build     |  1 +
 drivers/net/tap/meson.build | 41 +++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 drivers/net/tap/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index c7a2d0e7db..b7b4870eb8 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -27,6 +27,7 @@ drivers = ['af_packet',
 	'sfc',
 	'softnic',
 	'szedata2',
+	'tap',
 	'thunderx',
 	'vhost',
 	'virtio']
diff --git a/drivers/net/tap/meson.build b/drivers/net/tap/meson.build
new file mode 100644
index 0000000000..37f65b75c2
--- /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',
+	  '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()
+foreach arg:args
+	config.set(arg[0], cc.has_header_symbol(arg[1], arg[2]))
+endforeach
+configure_file(output : 'tap_autoconf.h', configuration : config)
-- 
2.18.0

[PATCH v3 2/9] build: add Meson file for vdev_netvsc PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:41:49

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build             |  1 +
 drivers/net/vdev_netvsc/meson.build | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 drivers/net/vdev_netvsc/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index b7b4870eb8..68ac42d67c 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -29,6 +29,7 @@ drivers = ['af_packet',
 	'szedata2',
 	'tap',
 	'thunderx',
+	'vdev_netvsc',
 	'vhost',
 	'virtio']
 std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc
diff --git a/drivers/net/vdev_netvsc/meson.build b/drivers/net/vdev_netvsc/meson.build
new file mode 100644
index 0000000000..cc956e7b27
--- /dev/null
+++ b/drivers/net/vdev_netvsc/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = files('vdev_netvsc.c')
+
+allow_experimental_apis = true
+
+cflags_options = [
+        '-Wall',
+        '-Wextra',
+        '-D_BSD_SOURCE',
+        '-D_DEFAULT_SOURCE',
+        '-D_XOPEN_SOURCE=600'
+]
+foreach option:cflags_options
+        if cc.has_argument(option)
+                cflags += option
+        endif
+endforeach
-- 
2.18.0

[PATCH v3 3/9] build: add Meson file for crypto scheduler PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:41:51

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/crypto/meson.build           |  2 +-
 drivers/crypto/scheduler/meson.build | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 drivers/crypto/scheduler/meson.build
diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build
index d64ca418bc..6ed853b7ab 100644
--- a/drivers/crypto/meson.build
+++ b/drivers/crypto/meson.build
@@ -2,7 +2,7 @@
 # Copyright(c) 2017 Intel Corporation
 
 drivers = ['ccp', 'dpaa_sec', 'dpaa2_sec', 'mvsam',
-	'null', 'openssl', 'qat', 'virtio']
+	'null', 'openssl', 'qat', 'scheduler', 'virtio']
 
 std_deps = ['cryptodev'] # cryptodev pulls in all other needed deps
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
diff --git a/drivers/crypto/scheduler/meson.build b/drivers/crypto/scheduler/meson.build
new file mode 100644
index 0000000000..c5ba2d6804
--- /dev/null
+++ b/drivers/crypto/scheduler/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+deps += ['bus_vdev', 'reorder']
+name = 'crypto_scheduler'
+sources = files(
+	'rte_cryptodev_scheduler.c',
+	'scheduler_failover.c',
+	'scheduler_multicore.c',
+	'scheduler_pkt_size_distr.c',
+	'scheduler_pmd.c',
+	'scheduler_pmd_ops.c',
+	'scheduler_roundrobin.c',
+)
+
+headers = files(
+	'rte_cryptodev_scheduler.h',
+	'rte_cryptodev_scheduler_operations.h',
+)
-- 
2.18.0

[PATCH v3 4/9] build: add Meson files for avf PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:41:53

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 15 +++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 36 insertions(+)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
diff --git a/drivers/net/avf/base/meson.build b/drivers/net/avf/base/meson.build
new file mode 100644
index 0000000000..90fd6b445f
--- /dev/null
+++ b/drivers/net/avf/base/meson.build
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'avf_adminq.c',
+	'avf_common.c',
+]
+
+error_cflags = ['-Wno-pointer-to-int-cast']
+c_args = cflags
+foreach flag: error_cflags
+	if cc.has_argument(flag)
+		c_args += flag
+	endif
+endforeach
+
+base_lib = static_library('avf_base', sources,
+	dependencies: static_rte_eal,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/avf/meson.build b/drivers/net/avf/meson.build
new file mode 100644
index 0000000000..d341f029b2
--- /dev/null
+++ b/drivers/net/avf/meson.build
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'avf_ethdev.c',
+	'avf_rxtx.c',
+	'avf_rxtx_vec_sse.c',
+	'avf_vchnl.c',
+)
+if arch_subdir == 'x86'
+	sources += files('avf_rxtx_vec_sse.c')
+endif
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 68ac42d67c..28efeda0b6 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -3,6 +3,7 @@
 
 drivers = ['af_packet',
 	'ark',
+	'avf',
 	'avp',
 	'axgbe', 'bonding',
 	'bnx2x',
-- 
2.18.0

[PATCH v3 5/9] build: add Meson files for qede PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:41:55

Signed-off-by: Luca Boccassi <redacted>
Acked-by: Shahed Shaikh <redacted>
---
 config/rte_config.h               |  3 ++
 drivers/net/meson.build           |  2 +-
 drivers/net/qede/base/meson.build | 57 +++++++++++++++++++++++++++++++
 drivers/net/qede/meson.build      | 12 +++++++
 4 files changed, 73 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/qede/base/meson.build
 create mode 100644 drivers/net/qede/meson.build
diff --git a/config/rte_config.h b/config/rte_config.h
index 46775a8419..ee84f04977 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -116,4 +116,7 @@
 #define RTE_PMD_RING_MAX_RX_RINGS 16
 #define RTE_PMD_RING_MAX_TX_RINGS 16
 
+/* QEDE PMD defines */
+#define RTE_LIBRTE_QEDE_FW ""
+
 #endif /* _RTE_CONFIG_H_ */
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 28efeda0b6..74f4109161 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -24,7 +24,7 @@ drivers = ['af_packet',
 	'mvpp2',
 	'netvsc',
 	'nfp',
-	'null', 'octeontx', 'pcap', 'ring',
+	'null', 'octeontx', 'pcap', 'qede', 'ring',
 	'sfc',
 	'softnic',
 	'szedata2',
diff --git a/drivers/net/qede/base/meson.build b/drivers/net/qede/base/meson.build
new file mode 100644
index 0000000000..59b41c895d
--- /dev/null
+++ b/drivers/net/qede/base/meson.build
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'bcm_osal.c',
+	'ecore_cxt.c',
+	'ecore_dcbx.c',
+	'ecore_dev.c',
+	'ecore_hw.c',
+	'ecore_init_fw_funcs.c',
+	'ecore_init_ops.c',
+	'ecore_int.c',
+	'ecore_l2.c',
+	'ecore_mcp.c',
+	'ecore_sp_commands.c',
+	'ecore_spq.c',
+	'ecore_sriov.c',
+	'ecore_vf.c',
+]
+
+
+error_cflags = [
+	'-Wno-unused-parameter',
+	'-Wno-sign-compare',
+	'-Wno-missing-prototypes',
+	'-Wno-cast-qual',
+	'-Wno-unused-function',
+	'-Wno-unused-variable',
+	'-Wno-strict-aliasing',
+	'-Wno-missing-prototypes',
+	'-Wno-unused-value',
+	'-Wno-format-nonliteral',
+	'-Wno-shift-negative-value',
+	'-Wno-unused-but-set-variable',
+	'-Wno-missing-declarations',
+	'-Wno-maybe-uninitialized',
+	'-Wno-strict-prototypes',
+	'-Wno-shift-negative-value',
+	'-Wno-implicit-fallthrough',
+	'-Wno-format-extra-args',
+	'-Wno-visibility',
+	'-Wno-empty-body',
+	'-Wno-invalid-source-encoding',
+	'-Wno-sometimes-uninitialized',
+	'-Wno-pointer-bool-conversion',
+]
+c_args = cflags
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                c_args += flag
+        endif
+endforeach
+
+base_lib = static_library('qede_base', sources,
+	dependencies: static_rte_net,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build
new file mode 100644
index 0000000000..6280073a56
--- /dev/null
+++ b/drivers/net/qede/meson.build
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'qede_ethdev.c',
+	'qede_fdir.c',
+	'qede_main.c',
+	'qede_rxtx.c',
+)
-- 
2.18.0

[PATCH v3 6/9] build: add Meson file for bbdev_null PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:41:57

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/baseband/meson.build      | 7 +++++++
 drivers/baseband/null/meson.build | 7 +++++++
 drivers/meson.build               | 1 +
 3 files changed, 15 insertions(+)
 create mode 100644 drivers/baseband/meson.build
 create mode 100644 drivers/baseband/null/meson.build
diff --git a/drivers/baseband/meson.build b/drivers/baseband/meson.build
new file mode 100644
index 0000000000..52489df354
--- /dev/null
+++ b/drivers/baseband/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+drivers = ['null']
+
+config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
+driver_name_fmt = 'rte_pmd_@0@'
diff --git a/drivers/baseband/null/meson.build b/drivers/baseband/null/meson.build
new file mode 100644
index 0000000000..64c29d8600
--- /dev/null
+++ b/drivers/baseband/null/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+deps += ['bbdev', 'bus_vdev', 'ring']
+name = 'bbdev_null'
+allow_experimental_apis = true
+sources = files('bbdev_null.c')
diff --git a/drivers/meson.build b/drivers/meson.build
index f94e2fe672..14e335ec1d 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -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
-- 
2.18.0

[PATCH v3 7/9] event/opdl: rename map file to match library name

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:41:58

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/Makefile b/drivers/event/opdl/Makefile
index cea8118d36..bf50a60a0b 100644
--- a/drivers/event/opdl/Makefile
+++ b/drivers/event/opdl/Makefile
@@ -24,7 +24,7 @@ LDLIBS += -lrte_bus_vdev -lrte_mbuf -lrte_mempool
 LIBABIVER := 1
 
 # versioning export map
-EXPORT_MAP := rte_pmd_evdev_opdl_version.map
+EXPORT_MAP := rte_pmd_opdl_event_version.map
 
 # library source files
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_ring.c
diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
similarity index 100%
rename from drivers/event/opdl/rte_pmd_evdev_opdl_version.map
rename to drivers/event/opdl/rte_pmd_opdl_event_version.map
-- 
2.18.0

[PATCH v3 8/9] build: add Meson file for opdl_event PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:42:00

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/event/meson.build      |  2 +-
 drivers/event/opdl/meson.build | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)
 create mode 100644 drivers/event/opdl/meson.build
diff --git a/drivers/event/meson.build b/drivers/event/meson.build
index e951199358..ed56d20062 100644
--- a/drivers/event/meson.build
+++ b/drivers/event/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-drivers = ['dpaa', 'dpaa2', 'octeontx', 'skeleton', 'sw']
+drivers = ['dpaa', 'dpaa2', 'octeontx', 'opdl', 'skeleton', 'sw']
 std_deps = ['eventdev', 'kvargs']
 config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD'
 driver_name_fmt = 'rte_pmd_@0@_event'
diff --git a/drivers/event/opdl/meson.build b/drivers/event/opdl/meson.build
new file mode 100644
index 0000000000..cc6029c6f0
--- /dev/null
+++ b/drivers/event/opdl/meson.build
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = files(
+	'opdl_evdev.c',
+	'opdl_evdev_init.c',
+	'opdl_evdev_xstats.c',
+	'opdl_ring.c',
+	'opdl_test.c',
+)
+deps += ['bus_vdev']
-- 
2.18.0

[PATCH v3 9/9] build: add Meson file for vmxnet3_uio PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 13:42:02

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
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 74f4109161..5906283c2f 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/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 etc
 std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std
 std_deps += ['bus_vdev']        # same with vdev bus
diff --git a/drivers/net/vmxnet3/meson.build b/drivers/net/vmxnet3/meson.build
new file mode 100644
index 0000000000..a92bd28680
--- /dev/null
+++ b/drivers/net/vmxnet3/meson.build
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+allow_experimental_apis = true
+sources += files(
+	'vmxnet3_ethdev.c',
+	'vmxnet3_rxtx.c',
+)
+
+error_cflags = [
+		'-Wno-unused-parameter', '-Wno-unused-value',
+                '-Wno-strict-aliasing', '-Wno-format-extra-args',
+]
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                cflags += flag
+        endif
+endforeach
-- 
2.18.0

Re: [PATCH v2 4/9] build: add Meson files for avf PMD

From: Bruce Richardson <hidden>
Date: 2018-09-13 14:49:02

On Thu, Sep 13, 2018 at 02:27:54PM +0100, Luca Boccassi wrote:
On Thu, 2018-09-13 at 14:24 +0100, Bruce Richardson wrote:
quoted
On Tue, Sep 11, 2018 at 05:08:58PM +0100, Luca Boccassi wrote:
quoted
Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 15 +++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 36 insertions(+)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
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

Re: [PATCH v3 4/9] build: add Meson files for avf PMD

From: Bruce Richardson <hidden>
Date: 2018-09-13 14:49:46

On Thu, Sep 13, 2018 at 02:41:35PM +0100, Luca Boccassi wrote:
quoted hunk
Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 15 +++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 36 insertions(+)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
diff --git a/drivers/net/avf/base/meson.build b/drivers/net/avf/base/meson.build
new file mode 100644
index 0000000000..90fd6b445f
--- /dev/null
+++ b/drivers/net/avf/base/meson.build
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'avf_adminq.c',
+	'avf_common.c',
+]
+
+error_cflags = ['-Wno-pointer-to-int-cast']
+c_args = cflags
+foreach flag: error_cflags
+	if cc.has_argument(flag)
+		c_args += flag
+	endif
+endforeach
+
+base_lib = static_library('avf_base', sources,
+	dependencies: static_rte_eal,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/avf/meson.build b/drivers/net/avf/meson.build
new file mode 100644
index 0000000000..d341f029b2
--- /dev/null
+++ b/drivers/net/avf/meson.build
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'avf_ethdev.c',
+	'avf_rxtx.c',
+	'avf_rxtx_vec_sse.c',
+	'avf_vchnl.c',
+)
+if arch_subdir == 'x86'
+	sources += files('avf_rxtx_vec_sse.c')
+endif
Missed this set had been sent, so please see comment on V2 re. needed
warning-disable flag, and need for VECTOR define flag for x86.

/Bruce

[PATCH v4 1/9] build: add Meson file for TAP PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 16:16:13

Use same autoconf generation mechanism as the MLX4/5 PMDs

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build     |  1 +
 drivers/net/tap/meson.build | 41 +++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 drivers/net/tap/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index c7a2d0e7db..b7b4870eb8 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -27,6 +27,7 @@ drivers = ['af_packet',
 	'sfc',
 	'softnic',
 	'szedata2',
+	'tap',
 	'thunderx',
 	'vhost',
 	'virtio']
diff --git a/drivers/net/tap/meson.build b/drivers/net/tap/meson.build
new file mode 100644
index 0000000000..37f65b75c2
--- /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',
+	  '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()
+foreach arg:args
+	config.set(arg[0], cc.has_header_symbol(arg[1], arg[2]))
+endforeach
+configure_file(output : 'tap_autoconf.h', configuration : config)
-- 
2.18.0

[PATCH v4 2/9] build: add Meson file for vdev_netvsc PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 16:16:14

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build             |  1 +
 drivers/net/vdev_netvsc/meson.build | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 drivers/net/vdev_netvsc/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index b7b4870eb8..68ac42d67c 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -29,6 +29,7 @@ drivers = ['af_packet',
 	'szedata2',
 	'tap',
 	'thunderx',
+	'vdev_netvsc',
 	'vhost',
 	'virtio']
 std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc
diff --git a/drivers/net/vdev_netvsc/meson.build b/drivers/net/vdev_netvsc/meson.build
new file mode 100644
index 0000000000..cc956e7b27
--- /dev/null
+++ b/drivers/net/vdev_netvsc/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = files('vdev_netvsc.c')
+
+allow_experimental_apis = true
+
+cflags_options = [
+        '-Wall',
+        '-Wextra',
+        '-D_BSD_SOURCE',
+        '-D_DEFAULT_SOURCE',
+        '-D_XOPEN_SOURCE=600'
+]
+foreach option:cflags_options
+        if cc.has_argument(option)
+                cflags += option
+        endif
+endforeach
-- 
2.18.0

[PATCH v4 3/9] build: add Meson file for crypto scheduler PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 16:16:16

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/crypto/meson.build           |  2 +-
 drivers/crypto/scheduler/meson.build | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 drivers/crypto/scheduler/meson.build
diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build
index d64ca418bc..6ed853b7ab 100644
--- a/drivers/crypto/meson.build
+++ b/drivers/crypto/meson.build
@@ -2,7 +2,7 @@
 # Copyright(c) 2017 Intel Corporation
 
 drivers = ['ccp', 'dpaa_sec', 'dpaa2_sec', 'mvsam',
-	'null', 'openssl', 'qat', 'virtio']
+	'null', 'openssl', 'qat', 'scheduler', 'virtio']
 
 std_deps = ['cryptodev'] # cryptodev pulls in all other needed deps
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
diff --git a/drivers/crypto/scheduler/meson.build b/drivers/crypto/scheduler/meson.build
new file mode 100644
index 0000000000..c5ba2d6804
--- /dev/null
+++ b/drivers/crypto/scheduler/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+deps += ['bus_vdev', 'reorder']
+name = 'crypto_scheduler'
+sources = files(
+	'rte_cryptodev_scheduler.c',
+	'scheduler_failover.c',
+	'scheduler_multicore.c',
+	'scheduler_pkt_size_distr.c',
+	'scheduler_pmd.c',
+	'scheduler_pmd_ops.c',
+	'scheduler_roundrobin.c',
+)
+
+headers = files(
+	'rte_cryptodev_scheduler.h',
+	'rte_cryptodev_scheduler_operations.h',
+)
-- 
2.18.0

[PATCH v4 4/9] build: add Meson files for avf PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 16:16:18

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 19 +++++++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 40 insertions(+)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
diff --git a/drivers/net/avf/base/meson.build b/drivers/net/avf/base/meson.build
new file mode 100644
index 0000000000..90fd6b445f
--- /dev/null
+++ b/drivers/net/avf/base/meson.build
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'avf_adminq.c',
+	'avf_common.c',
+]
+
+error_cflags = ['-Wno-pointer-to-int-cast']
+c_args = cflags
+foreach flag: error_cflags
+	if cc.has_argument(flag)
+		c_args += flag
+	endif
+endforeach
+
+base_lib = static_library('avf_base', sources,
+	dependencies: static_rte_eal,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/avf/meson.build b/drivers/net/avf/meson.build
new file mode 100644
index 0000000000..b5ad9cc673
--- /dev/null
+++ b/drivers/net/avf/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+cflags += ['-Wno-strict-aliasing']
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'avf_ethdev.c',
+	'avf_rxtx.c',
+	'avf_rxtx_vec_sse.c',
+	'avf_vchnl.c',
+)
+
+if arch_subdir == 'x86'
+	dpdk_conf.set('RTE_LIBRTE_AVF_INC_VECTOR', 1)
+	sources += files('avf_rxtx_vec_sse.c')
+endif
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 68ac42d67c..28efeda0b6 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -3,6 +3,7 @@
 
 drivers = ['af_packet',
 	'ark',
+	'avf',
 	'avp',
 	'axgbe', 'bonding',
 	'bnx2x',
-- 
2.18.0

[PATCH v4 5/9] build: add Meson files for qede PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 16:16:20

Signed-off-by: Luca Boccassi <redacted>
Acked-by: Shahed Shaikh <redacted>
---
 config/rte_config.h               |  3 ++
 drivers/net/meson.build           |  2 +-
 drivers/net/qede/base/meson.build | 57 +++++++++++++++++++++++++++++++
 drivers/net/qede/meson.build      | 12 +++++++
 4 files changed, 73 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/qede/base/meson.build
 create mode 100644 drivers/net/qede/meson.build
diff --git a/config/rte_config.h b/config/rte_config.h
index 46775a8419..ee84f04977 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -116,4 +116,7 @@
 #define RTE_PMD_RING_MAX_RX_RINGS 16
 #define RTE_PMD_RING_MAX_TX_RINGS 16
 
+/* QEDE PMD defines */
+#define RTE_LIBRTE_QEDE_FW ""
+
 #endif /* _RTE_CONFIG_H_ */
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 28efeda0b6..74f4109161 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -24,7 +24,7 @@ drivers = ['af_packet',
 	'mvpp2',
 	'netvsc',
 	'nfp',
-	'null', 'octeontx', 'pcap', 'ring',
+	'null', 'octeontx', 'pcap', 'qede', 'ring',
 	'sfc',
 	'softnic',
 	'szedata2',
diff --git a/drivers/net/qede/base/meson.build b/drivers/net/qede/base/meson.build
new file mode 100644
index 0000000000..59b41c895d
--- /dev/null
+++ b/drivers/net/qede/base/meson.build
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'bcm_osal.c',
+	'ecore_cxt.c',
+	'ecore_dcbx.c',
+	'ecore_dev.c',
+	'ecore_hw.c',
+	'ecore_init_fw_funcs.c',
+	'ecore_init_ops.c',
+	'ecore_int.c',
+	'ecore_l2.c',
+	'ecore_mcp.c',
+	'ecore_sp_commands.c',
+	'ecore_spq.c',
+	'ecore_sriov.c',
+	'ecore_vf.c',
+]
+
+
+error_cflags = [
+	'-Wno-unused-parameter',
+	'-Wno-sign-compare',
+	'-Wno-missing-prototypes',
+	'-Wno-cast-qual',
+	'-Wno-unused-function',
+	'-Wno-unused-variable',
+	'-Wno-strict-aliasing',
+	'-Wno-missing-prototypes',
+	'-Wno-unused-value',
+	'-Wno-format-nonliteral',
+	'-Wno-shift-negative-value',
+	'-Wno-unused-but-set-variable',
+	'-Wno-missing-declarations',
+	'-Wno-maybe-uninitialized',
+	'-Wno-strict-prototypes',
+	'-Wno-shift-negative-value',
+	'-Wno-implicit-fallthrough',
+	'-Wno-format-extra-args',
+	'-Wno-visibility',
+	'-Wno-empty-body',
+	'-Wno-invalid-source-encoding',
+	'-Wno-sometimes-uninitialized',
+	'-Wno-pointer-bool-conversion',
+]
+c_args = cflags
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                c_args += flag
+        endif
+endforeach
+
+base_lib = static_library('qede_base', sources,
+	dependencies: static_rte_net,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build
new file mode 100644
index 0000000000..6280073a56
--- /dev/null
+++ b/drivers/net/qede/meson.build
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'qede_ethdev.c',
+	'qede_fdir.c',
+	'qede_main.c',
+	'qede_rxtx.c',
+)
-- 
2.18.0

[PATCH v4 6/9] build: add Meson file for bbdev_null PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 16:16:21

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/baseband/meson.build      | 7 +++++++
 drivers/baseband/null/meson.build | 7 +++++++
 drivers/meson.build               | 1 +
 3 files changed, 15 insertions(+)
 create mode 100644 drivers/baseband/meson.build
 create mode 100644 drivers/baseband/null/meson.build
diff --git a/drivers/baseband/meson.build b/drivers/baseband/meson.build
new file mode 100644
index 0000000000..52489df354
--- /dev/null
+++ b/drivers/baseband/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+drivers = ['null']
+
+config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
+driver_name_fmt = 'rte_pmd_@0@'
diff --git a/drivers/baseband/null/meson.build b/drivers/baseband/null/meson.build
new file mode 100644
index 0000000000..64c29d8600
--- /dev/null
+++ b/drivers/baseband/null/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+deps += ['bbdev', 'bus_vdev', 'ring']
+name = 'bbdev_null'
+allow_experimental_apis = true
+sources = files('bbdev_null.c')
diff --git a/drivers/meson.build b/drivers/meson.build
index f94e2fe672..14e335ec1d 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -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
-- 
2.18.0

[PATCH v4 7/9] event/opdl: rename map file to match library name

From: Luca Boccassi <hidden>
Date: 2018-09-13 16:16:24

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/Makefile b/drivers/event/opdl/Makefile
index cea8118d36..bf50a60a0b 100644
--- a/drivers/event/opdl/Makefile
+++ b/drivers/event/opdl/Makefile
@@ -24,7 +24,7 @@ LDLIBS += -lrte_bus_vdev -lrte_mbuf -lrte_mempool
 LIBABIVER := 1
 
 # versioning export map
-EXPORT_MAP := rte_pmd_evdev_opdl_version.map
+EXPORT_MAP := rte_pmd_opdl_event_version.map
 
 # library source files
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_ring.c
diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
similarity index 100%
rename from drivers/event/opdl/rte_pmd_evdev_opdl_version.map
rename to drivers/event/opdl/rte_pmd_opdl_event_version.map
-- 
2.18.0

[PATCH v4 8/9] build: add Meson file for opdl_event PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 16:16:26

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/event/meson.build      |  2 +-
 drivers/event/opdl/meson.build | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)
 create mode 100644 drivers/event/opdl/meson.build
diff --git a/drivers/event/meson.build b/drivers/event/meson.build
index e951199358..ed56d20062 100644
--- a/drivers/event/meson.build
+++ b/drivers/event/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-drivers = ['dpaa', 'dpaa2', 'octeontx', 'skeleton', 'sw']
+drivers = ['dpaa', 'dpaa2', 'octeontx', 'opdl', 'skeleton', 'sw']
 std_deps = ['eventdev', 'kvargs']
 config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD'
 driver_name_fmt = 'rte_pmd_@0@_event'
diff --git a/drivers/event/opdl/meson.build b/drivers/event/opdl/meson.build
new file mode 100644
index 0000000000..cc6029c6f0
--- /dev/null
+++ b/drivers/event/opdl/meson.build
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = files(
+	'opdl_evdev.c',
+	'opdl_evdev_init.c',
+	'opdl_evdev_xstats.c',
+	'opdl_ring.c',
+	'opdl_test.c',
+)
+deps += ['bus_vdev']
-- 
2.18.0

[PATCH v4 9/9] build: add Meson file for vmxnet3_uio PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 16:16:28

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
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 74f4109161..5906283c2f 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/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 etc
 std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std
 std_deps += ['bus_vdev']        # same with vdev bus
diff --git a/drivers/net/vmxnet3/meson.build b/drivers/net/vmxnet3/meson.build
new file mode 100644
index 0000000000..a92bd28680
--- /dev/null
+++ b/drivers/net/vmxnet3/meson.build
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+allow_experimental_apis = true
+sources += files(
+	'vmxnet3_ethdev.c',
+	'vmxnet3_rxtx.c',
+)
+
+error_cflags = [
+		'-Wno-unused-parameter', '-Wno-unused-value',
+                '-Wno-strict-aliasing', '-Wno-format-extra-args',
+]
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                cflags += flag
+        endif
+endforeach
-- 
2.18.0

Re: [PATCH v3 4/9] build: add Meson files for avf PMD

From: Luca Boccassi <hidden>
Date: 2018-09-13 16:16:57

On Thu, 2018-09-13 at 15:49 +0100, Bruce Richardson wrote:
On Thu, Sep 13, 2018 at 02:41:35PM +0100, Luca Boccassi wrote:
quoted
Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 15 +++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 36 insertions(+)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
diff --git a/drivers/net/avf/base/meson.build
b/drivers/net/avf/base/meson.build
new file mode 100644
index 0000000000..90fd6b445f
--- /dev/null
+++ b/drivers/net/avf/base/meson.build
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'avf_adminq.c',
+	'avf_common.c',
+]
+
+error_cflags = ['-Wno-pointer-to-int-cast']
+c_args = cflags
+foreach flag: error_cflags
+	if cc.has_argument(flag)
+		c_args += flag
+	endif
+endforeach
+
+base_lib = static_library('avf_base', sources,
+	dependencies: static_rte_eal,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/avf/meson.build
b/drivers/net/avf/meson.build
new file mode 100644
index 0000000000..d341f029b2
--- /dev/null
+++ b/drivers/net/avf/meson.build
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'avf_ethdev.c',
+	'avf_rxtx.c',
+	'avf_rxtx_vec_sse.c',
+	'avf_vchnl.c',
+)
+if arch_subdir == 'x86'
+	sources += files('avf_rxtx_vec_sse.c')
+endif
Missed this set had been sent, so please see comment on V2 re. needed
warning-disable flag, and need for VECTOR define flag for x86.

/Bruce
Ok, thanks, done in v4

-- 
Kind regards,
Luca Boccassi

Re: [PATCH 14/15] net/vmxnet3: rename version map after library file name

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
    
    

Re: [PATCH 14/15] net/vmxnet3: rename version map after library file name

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.

[PATCH v5 1/9] build: add Meson file for TAP PMD

From: Luca Boccassi <hidden>
Date: 2018-09-18 14:58:33

Use same autoconf generation mechanism as the MLX4/5 PMDs

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build     |  1 +
 drivers/net/tap/meson.build | 41 +++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 drivers/net/tap/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index c7a2d0e7db..b7b4870eb8 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -27,6 +27,7 @@ drivers = ['af_packet',
 	'sfc',
 	'softnic',
 	'szedata2',
+	'tap',
 	'thunderx',
 	'vhost',
 	'virtio']
diff --git a/drivers/net/tap/meson.build b/drivers/net/tap/meson.build
new file mode 100644
index 0000000000..37f65b75c2
--- /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',
+	  '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()
+foreach arg:args
+	config.set(arg[0], cc.has_header_symbol(arg[1], arg[2]))
+endforeach
+configure_file(output : 'tap_autoconf.h', configuration : config)
-- 
2.18.0

[PATCH v5 3/9] build: add Meson file for crypto scheduler PMD

From: Luca Boccassi <hidden>
Date: 2018-09-18 14:58:36

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/crypto/meson.build           |  2 +-
 drivers/crypto/scheduler/meson.build | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 drivers/crypto/scheduler/meson.build
diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build
index d64ca418bc..6ed853b7ab 100644
--- a/drivers/crypto/meson.build
+++ b/drivers/crypto/meson.build
@@ -2,7 +2,7 @@
 # Copyright(c) 2017 Intel Corporation
 
 drivers = ['ccp', 'dpaa_sec', 'dpaa2_sec', 'mvsam',
-	'null', 'openssl', 'qat', 'virtio']
+	'null', 'openssl', 'qat', 'scheduler', 'virtio']
 
 std_deps = ['cryptodev'] # cryptodev pulls in all other needed deps
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
diff --git a/drivers/crypto/scheduler/meson.build b/drivers/crypto/scheduler/meson.build
new file mode 100644
index 0000000000..c5ba2d6804
--- /dev/null
+++ b/drivers/crypto/scheduler/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+deps += ['bus_vdev', 'reorder']
+name = 'crypto_scheduler'
+sources = files(
+	'rte_cryptodev_scheduler.c',
+	'scheduler_failover.c',
+	'scheduler_multicore.c',
+	'scheduler_pkt_size_distr.c',
+	'scheduler_pmd.c',
+	'scheduler_pmd_ops.c',
+	'scheduler_roundrobin.c',
+)
+
+headers = files(
+	'rte_cryptodev_scheduler.h',
+	'rte_cryptodev_scheduler_operations.h',
+)
-- 
2.18.0

[PATCH v5 4/9] build: add Meson files for avf PMD

From: Luca Boccassi <hidden>
Date: 2018-09-18 14:58:38

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 19 +++++++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 40 insertions(+)
 create mode 100644 drivers/net/avf/base/meson.build
 create mode 100644 drivers/net/avf/meson.build
diff --git a/drivers/net/avf/base/meson.build b/drivers/net/avf/base/meson.build
new file mode 100644
index 0000000000..90fd6b445f
--- /dev/null
+++ b/drivers/net/avf/base/meson.build
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'avf_adminq.c',
+	'avf_common.c',
+]
+
+error_cflags = ['-Wno-pointer-to-int-cast']
+c_args = cflags
+foreach flag: error_cflags
+	if cc.has_argument(flag)
+		c_args += flag
+	endif
+endforeach
+
+base_lib = static_library('avf_base', sources,
+	dependencies: static_rte_eal,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/avf/meson.build b/drivers/net/avf/meson.build
new file mode 100644
index 0000000000..b5ad9cc673
--- /dev/null
+++ b/drivers/net/avf/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+cflags += ['-Wno-strict-aliasing']
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'avf_ethdev.c',
+	'avf_rxtx.c',
+	'avf_rxtx_vec_sse.c',
+	'avf_vchnl.c',
+)
+
+if arch_subdir == 'x86'
+	dpdk_conf.set('RTE_LIBRTE_AVF_INC_VECTOR', 1)
+	sources += files('avf_rxtx_vec_sse.c')
+endif
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 68ac42d67c..28efeda0b6 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -3,6 +3,7 @@
 
 drivers = ['af_packet',
 	'ark',
+	'avf',
 	'avp',
 	'axgbe', 'bonding',
 	'bnx2x',
-- 
2.18.0

[PATCH v5 2/9] build: add Meson file for vdev_netvsc PMD

From: Luca Boccassi <hidden>
Date: 2018-09-18 14:58:39

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/meson.build             |  1 +
 drivers/net/vdev_netvsc/meson.build | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 drivers/net/vdev_netvsc/meson.build
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index b7b4870eb8..68ac42d67c 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -29,6 +29,7 @@ drivers = ['af_packet',
 	'szedata2',
 	'tap',
 	'thunderx',
+	'vdev_netvsc',
 	'vhost',
 	'virtio']
 std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc
diff --git a/drivers/net/vdev_netvsc/meson.build b/drivers/net/vdev_netvsc/meson.build
new file mode 100644
index 0000000000..cc956e7b27
--- /dev/null
+++ b/drivers/net/vdev_netvsc/meson.build
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = files('vdev_netvsc.c')
+
+allow_experimental_apis = true
+
+cflags_options = [
+        '-Wall',
+        '-Wextra',
+        '-D_BSD_SOURCE',
+        '-D_DEFAULT_SOURCE',
+        '-D_XOPEN_SOURCE=600'
+]
+foreach option:cflags_options
+        if cc.has_argument(option)
+                cflags += option
+        endif
+endforeach
-- 
2.18.0

[PATCH v5 5/9] build: add Meson files for qede PMD

From: Luca Boccassi <hidden>
Date: 2018-09-18 14:58:40

Signed-off-by: Luca Boccassi <redacted>
Acked-by: Shahed Shaikh <redacted>
---
 config/rte_config.h               |  3 ++
 drivers/net/meson.build           |  2 +-
 drivers/net/qede/base/meson.build | 57 +++++++++++++++++++++++++++++++
 drivers/net/qede/meson.build      | 12 +++++++
 4 files changed, 73 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/qede/base/meson.build
 create mode 100644 drivers/net/qede/meson.build
diff --git a/config/rte_config.h b/config/rte_config.h
index 46775a8419..ee84f04977 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -116,4 +116,7 @@
 #define RTE_PMD_RING_MAX_RX_RINGS 16
 #define RTE_PMD_RING_MAX_TX_RINGS 16
 
+/* QEDE PMD defines */
+#define RTE_LIBRTE_QEDE_FW ""
+
 #endif /* _RTE_CONFIG_H_ */
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 28efeda0b6..74f4109161 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -24,7 +24,7 @@ drivers = ['af_packet',
 	'mvpp2',
 	'netvsc',
 	'nfp',
-	'null', 'octeontx', 'pcap', 'ring',
+	'null', 'octeontx', 'pcap', 'qede', 'ring',
 	'sfc',
 	'softnic',
 	'szedata2',
diff --git a/drivers/net/qede/base/meson.build b/drivers/net/qede/base/meson.build
new file mode 100644
index 0000000000..59b41c895d
--- /dev/null
+++ b/drivers/net/qede/base/meson.build
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = [
+	'bcm_osal.c',
+	'ecore_cxt.c',
+	'ecore_dcbx.c',
+	'ecore_dev.c',
+	'ecore_hw.c',
+	'ecore_init_fw_funcs.c',
+	'ecore_init_ops.c',
+	'ecore_int.c',
+	'ecore_l2.c',
+	'ecore_mcp.c',
+	'ecore_sp_commands.c',
+	'ecore_spq.c',
+	'ecore_sriov.c',
+	'ecore_vf.c',
+]
+
+
+error_cflags = [
+	'-Wno-unused-parameter',
+	'-Wno-sign-compare',
+	'-Wno-missing-prototypes',
+	'-Wno-cast-qual',
+	'-Wno-unused-function',
+	'-Wno-unused-variable',
+	'-Wno-strict-aliasing',
+	'-Wno-missing-prototypes',
+	'-Wno-unused-value',
+	'-Wno-format-nonliteral',
+	'-Wno-shift-negative-value',
+	'-Wno-unused-but-set-variable',
+	'-Wno-missing-declarations',
+	'-Wno-maybe-uninitialized',
+	'-Wno-strict-prototypes',
+	'-Wno-shift-negative-value',
+	'-Wno-implicit-fallthrough',
+	'-Wno-format-extra-args',
+	'-Wno-visibility',
+	'-Wno-empty-body',
+	'-Wno-invalid-source-encoding',
+	'-Wno-sometimes-uninitialized',
+	'-Wno-pointer-bool-conversion',
+]
+c_args = cflags
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                c_args += flag
+        endif
+endforeach
+
+base_lib = static_library('qede_base', sources,
+	dependencies: static_rte_net,
+	c_args: c_args)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build
new file mode 100644
index 0000000000..6280073a56
--- /dev/null
+++ b/drivers/net/qede/meson.build
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+	'qede_ethdev.c',
+	'qede_fdir.c',
+	'qede_main.c',
+	'qede_rxtx.c',
+)
-- 
2.18.0

[PATCH v5 6/9] build: add Meson file for bbdev_null PMD

From: Luca Boccassi <hidden>
Date: 2018-09-18 14:58:42

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/baseband/meson.build      | 7 +++++++
 drivers/baseband/null/meson.build | 7 +++++++
 drivers/meson.build               | 1 +
 3 files changed, 15 insertions(+)
 create mode 100644 drivers/baseband/meson.build
 create mode 100644 drivers/baseband/null/meson.build
diff --git a/drivers/baseband/meson.build b/drivers/baseband/meson.build
new file mode 100644
index 0000000000..52489df354
--- /dev/null
+++ b/drivers/baseband/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+drivers = ['null']
+
+config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
+driver_name_fmt = 'rte_pmd_@0@'
diff --git a/drivers/baseband/null/meson.build b/drivers/baseband/null/meson.build
new file mode 100644
index 0000000000..64c29d8600
--- /dev/null
+++ b/drivers/baseband/null/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+deps += ['bbdev', 'bus_vdev', 'ring']
+name = 'bbdev_null'
+allow_experimental_apis = true
+sources = files('bbdev_null.c')
diff --git a/drivers/meson.build b/drivers/meson.build
index c5df313dd2..47b4215a30 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -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
-- 
2.18.0

[PATCH v5 7/9] event/opdl: rename map file to match library name

From: Luca Boccassi <hidden>
Date: 2018-09-18 14:58:44

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/Makefile b/drivers/event/opdl/Makefile
index cea8118d36..bf50a60a0b 100644
--- a/drivers/event/opdl/Makefile
+++ b/drivers/event/opdl/Makefile
@@ -24,7 +24,7 @@ LDLIBS += -lrte_bus_vdev -lrte_mbuf -lrte_mempool
 LIBABIVER := 1
 
 # versioning export map
-EXPORT_MAP := rte_pmd_evdev_opdl_version.map
+EXPORT_MAP := rte_pmd_opdl_event_version.map
 
 # library source files
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_ring.c
diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
similarity index 100%
rename from drivers/event/opdl/rte_pmd_evdev_opdl_version.map
rename to drivers/event/opdl/rte_pmd_opdl_event_version.map
-- 
2.18.0

[PATCH v5 8/9] build: add Meson file for opdl_event PMD

From: Luca Boccassi <hidden>
Date: 2018-09-18 14:58:46

Signed-off-by: Luca Boccassi <redacted>
---
 drivers/event/meson.build      |  2 +-
 drivers/event/opdl/meson.build | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)
 create mode 100644 drivers/event/opdl/meson.build
diff --git a/drivers/event/meson.build b/drivers/event/meson.build
index e951199358..ed56d20062 100644
--- a/drivers/event/meson.build
+++ b/drivers/event/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-drivers = ['dpaa', 'dpaa2', 'octeontx', 'skeleton', 'sw']
+drivers = ['dpaa', 'dpaa2', 'octeontx', 'opdl', 'skeleton', 'sw']
 std_deps = ['eventdev', 'kvargs']
 config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD'
 driver_name_fmt = 'rte_pmd_@0@_event'
diff --git a/drivers/event/opdl/meson.build b/drivers/event/opdl/meson.build
new file mode 100644
index 0000000000..cc6029c6f0
--- /dev/null
+++ b/drivers/event/opdl/meson.build
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+sources = files(
+	'opdl_evdev.c',
+	'opdl_evdev_init.c',
+	'opdl_evdev_xstats.c',
+	'opdl_ring.c',
+	'opdl_test.c',
+)
+deps += ['bus_vdev']
-- 
2.18.0

[PATCH v5 9/9] build: add Meson file for vmxnet3_uio PMD

From: Luca Boccassi <hidden>
Date: 2018-09-18 14:58:48

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
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 74f4109161..5906283c2f 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/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 etc
 std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std
 std_deps += ['bus_vdev']        # same with vdev bus
diff --git a/drivers/net/vmxnet3/meson.build b/drivers/net/vmxnet3/meson.build
new file mode 100644
index 0000000000..a92bd28680
--- /dev/null
+++ b/drivers/net/vmxnet3/meson.build
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+allow_experimental_apis = true
+sources += files(
+	'vmxnet3_ethdev.c',
+	'vmxnet3_rxtx.c',
+)
+
+error_cflags = [
+		'-Wno-unused-parameter', '-Wno-unused-value',
+                '-Wno-strict-aliasing', '-Wno-format-extra-args',
+]
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                cflags += flag
+        endif
+endforeach
-- 
2.18.0

Re: [PATCH v4 9/9] build: add Meson file for vmxnet3_uio PMD

From: Luca Boccassi <hidden>
Date: 2018-09-18 15:00:14

On Thu, 2018-09-13 at 17:16 +0100, Luca Boccassi wrote:
quoted hunk
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
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 74f4109161..5906283c2f 100644
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

Re: [PATCH v4 9/9] build: add Meson file for vmxnet3_uio PMD

From: Bruce Richardson <hidden>
Date: 2018-09-18 15:21:50

On Tue, Sep 18, 2018 at 04:00:12PM +0100, Luca Boccassi wrote:
On Thu, 2018-09-13 at 17:16 +0100, Luca Boccassi wrote:
quoted
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
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 74f4109161..5906283c2f 100644
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

Re: [PATCH v5 4/9] build: add Meson files for avf PMD

From: Thomas Monjalon <hidden>
Date: 2018-09-18 20:48:35

18/09/2018 16:58, Luca Boccassi:
Signed-off-by: Luca Boccassi <redacted>
---
 drivers/net/avf/base/meson.build | 20 ++++++++++++++++++++
 drivers/net/avf/meson.build      | 19 +++++++++++++++++++
 drivers/net/meson.build          |  1 +
 3 files changed, 40 insertions(+)
I cannot merge this patch because of compilation issues
in the avf driver itself.

I will merge others and keep this one for later.

Re: [PATCH v5 1/9] build: add Meson file for TAP PMD

From: Thomas Monjalon <hidden>
Date: 2018-09-18 20:54:47

18/09/2018 16:58, Luca Boccassi:
Use same autoconf generation mechanism as the MLX4/5 PMDs

Signed-off-by: Luca Boccassi <redacted>
Series applied, except patch 4 for avf, thanks.
Next 5 of 5 remaining
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help