DPDK patches and discussions
 help / color / mirror / Atom feed
* [RFC 00/10] Remove weak symbols
@ 2025-02-07  8:32 David Marchand
  2025-02-07  8:32 ` [RFC 01/10] bus/auxiliary: remove " David Marchand
                   ` (9 more replies)
  0 siblings, 10 replies; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev; +Cc: thomas, bruce.richardson, andremue

This is an alternative to André series:
https://inbox.dpdk.org/dev/1735009552-31906-1-git-send-email-andremue@linux.microsoft.com/

Weak symbols can be easily replaced with some linking updates, and make
it clearer which symbols are actually ending up in the final binary.


-- 
David Marchand

David Marchand (10):
  bus/auxiliary: remove weak symbols
  common/qat: remove weak symbols
  drivers: remove weak symbols in Nitrox drivers
  net/enic: remove weak symbols
  net/hns3: remove weak symbols
  net/fm10k: remove weak symbols
  net/nfp: remove weak symbols
  net/virtio: remove weak symbols
  app/compress-perf: remove weak symbols
  eal: deprecate weak symbols

 app/test-compress-perf/main.c            | 62 --------------------
 doc/guides/rel_notes/release_25_03.rst   |  2 +
 drivers/bus/auxiliary/auxiliary_common.c |  6 +-
 drivers/bus/auxiliary/meson.build        |  1 +
 drivers/common/nitrox/meson.build        |  3 -
 drivers/common/nitrox/nitrox_device.c    | 75 +++++++++---------------
 drivers/common/nitrox/nitrox_device.h    | 16 +++++
 drivers/common/nitrox/version.map        |  1 +
 drivers/common/qat/qat_qp.c              |  8 ---
 drivers/common/qat/qat_qp.h              |  5 --
 drivers/compress/nitrox/meson.build      |  2 -
 drivers/compress/nitrox/nitrox_comp.c    |  6 ++
 drivers/crypto/nitrox/meson.build        |  2 -
 drivers/crypto/nitrox/nitrox_sym.c       |  6 ++
 drivers/net/enic/enic_main.c             |  8 +--
 drivers/net/enic/meson.build             |  1 +
 drivers/net/hns3/hns3_rxtx.c             | 22 ++++---
 drivers/net/intel/fm10k/fm10k_ethdev.c   | 20 ++++---
 drivers/net/nfp/meson.build              |  7 ++-
 drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c |  2 +-
 drivers/net/nfp/nfp_rxtx_vec_stub.c      |  4 +-
 drivers/net/virtio/meson.build           |  5 ++
 drivers/net/virtio/virtio_rxtx.c         |  6 +-
 drivers/net/virtio/virtio_rxtx_simple.c  |  4 +-
 lib/eal/include/rte_common.h             |  6 +-
 25 files changed, 119 insertions(+), 161 deletions(-)

-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC 01/10] bus/auxiliary: remove weak symbols
  2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
@ 2025-02-07  8:32 ` David Marchand
  2025-02-07  8:32 ` [RFC 02/10] common/qat: " David Marchand
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev; +Cc: thomas, bruce.richardson, andremue, Parav Pandit, Xueming Li

Rather than use weak symbols, expose stubs symbols when needed.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/bus/auxiliary/auxiliary_common.c | 6 ++++--
 drivers/bus/auxiliary/meson.build        | 1 +
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/bus/auxiliary/auxiliary_common.c b/drivers/bus/auxiliary/auxiliary_common.c
index e6cbc4d356..b444eb43ef 100644
--- a/drivers/bus/auxiliary/auxiliary_common.c
+++ b/drivers/bus/auxiliary/auxiliary_common.c
@@ -36,12 +36,13 @@ auxiliary_devargs_lookup(const char *name)
 	return NULL;
 }
 
+#ifndef AUXILIARY_OS_SUPPORTED
 /*
  * Test whether the auxiliary device exist.
  *
  * Stub for OS not supporting auxiliary bus.
  */
-__rte_weak bool
+bool
 auxiliary_dev_exists(const char *name)
 {
 	RTE_SET_USED(name);
@@ -53,11 +54,12 @@ auxiliary_dev_exists(const char *name)
  *
  * Stub for OS not supporting auxiliary bus.
  */
-__rte_weak int
+int
 auxiliary_scan(void)
 {
 	return 0;
 }
+#endif /* AUXILIARY_OS_SUPPORTED */
 
 /*
  * Update a device's devargs being scanned.
diff --git a/drivers/bus/auxiliary/meson.build b/drivers/bus/auxiliary/meson.build
index 10468fd130..38d2f05d4b 100644
--- a/drivers/bus/auxiliary/meson.build
+++ b/drivers/bus/auxiliary/meson.build
@@ -7,6 +7,7 @@ sources = files(
         'auxiliary_params.c',
 )
 if is_linux
+    cflags += '-DAUXILIARY_OS_SUPPORTED'
     sources += files(
             'linux/auxiliary.c',
     )
-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC 02/10] common/qat: remove weak symbols
  2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
  2025-02-07  8:32 ` [RFC 01/10] bus/auxiliary: remove " David Marchand
@ 2025-02-07  8:32 ` David Marchand
  2025-02-07  8:32 ` [RFC 03/10] drivers: remove weak symbols in Nitrox drivers David Marchand
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev; +Cc: thomas, bruce.richardson, andremue, Kai Ji

Remove dead code, those symbols are never used as the "strong" symbols
are always linked in.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/common/qat/qat_qp.c | 8 --------
 drivers/common/qat/qat_qp.h | 5 -----
 2 files changed, 13 deletions(-)

diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c
index 4bf9bac23e..0d2bbdb8a5 100644
--- a/drivers/common/qat/qat_qp.c
+++ b/drivers/common/qat/qat_qp.c
@@ -944,11 +944,3 @@ qat_cq_get_fw_cipher_crc_cap(struct qat_qp *qp)
 	return ret;
 }
 #endif
-
-__rte_weak int
-qat_comp_process_response(void **op __rte_unused, uint8_t *resp __rte_unused,
-			  void *op_cookie __rte_unused,
-			  uint64_t *dequeue_err_count __rte_unused)
-{
-	return  0;
-}
diff --git a/drivers/common/qat/qat_qp.h b/drivers/common/qat/qat_qp.h
index f0ea907503..5ccaedefa7 100644
--- a/drivers/common/qat/qat_qp.h
+++ b/drivers/common/qat/qat_qp.h
@@ -156,11 +156,6 @@ int
 qat_cq_get_fw_cipher_crc_cap(struct qat_qp *qp);
 #endif
 
-/* Needed for weak function*/
-int
-qat_comp_process_response(void **op __rte_unused, uint8_t *resp __rte_unused,
-			  void *op_cookie __rte_unused,
-			  uint64_t *dequeue_err_count __rte_unused);
 int
 qat_read_qp_config(struct qat_pci_device *qat_dev);
 
-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC 03/10] drivers: remove weak symbols in Nitrox drivers
  2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
  2025-02-07  8:32 ` [RFC 01/10] bus/auxiliary: remove " David Marchand
  2025-02-07  8:32 ` [RFC 02/10] common/qat: " David Marchand
@ 2025-02-07  8:32 ` David Marchand
  2025-02-07  8:32 ` [RFC 04/10] net/enic: remove weak symbols David Marchand
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev
  Cc: thomas, bruce.richardson, andremue, Nagadheeraj Rottela,
	Srikanth Jampala, Fan Zhang, Ashish Gupta

Make compress and crypto drivers register to the common driver.
Remove (unneeded) include_directories().

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/common/nitrox/meson.build     |  3 --
 drivers/common/nitrox/nitrox_device.c | 75 ++++++++++-----------------
 drivers/common/nitrox/nitrox_device.h | 16 ++++++
 drivers/common/nitrox/version.map     |  1 +
 drivers/compress/nitrox/meson.build   |  2 -
 drivers/compress/nitrox/nitrox_comp.c |  6 +++
 drivers/crypto/nitrox/meson.build     |  2 -
 drivers/crypto/nitrox/nitrox_sym.c    |  6 +++
 8 files changed, 57 insertions(+), 54 deletions(-)

diff --git a/drivers/common/nitrox/meson.build b/drivers/common/nitrox/meson.build
index f3cb42f006..115dd8de4d 100644
--- a/drivers/common/nitrox/meson.build
+++ b/drivers/common/nitrox/meson.build
@@ -14,6 +14,3 @@ sources += files(
         'nitrox_logs.c',
         'nitrox_qp.c',
 )
-
-includes += include_directories('../../crypto/nitrox')
-includes += include_directories('../../compress/nitrox')
diff --git a/drivers/common/nitrox/nitrox_device.c b/drivers/common/nitrox/nitrox_device.c
index 39edc440a7..6cd57faaa4 100644
--- a/drivers/common/nitrox/nitrox_device.c
+++ b/drivers/common/nitrox/nitrox_device.c
@@ -6,8 +6,6 @@
 
 #include "nitrox_device.h"
 #include "nitrox_hal.h"
-#include "nitrox_sym.h"
-#include "nitrox_comp.h"
 
 #define PCI_VENDOR_ID_CAVIUM	0x177d
 #define NITROX_V_PCI_VF_DEV_ID	0x13
@@ -63,11 +61,21 @@ ndev_release(struct nitrox_device *ndev)
 	rte_free(ndev);
 }
 
+TAILQ_HEAD(ndrv_list, nitrox_driver);
+static struct ndrv_list ndrv_list = TAILQ_HEAD_INITIALIZER(ndrv_list);
+
+void
+nitrox_register_driver(struct nitrox_driver *ndrv)
+{
+	TAILQ_INSERT_TAIL(&ndrv_list, ndrv, next);
+}
+
 static int
 nitrox_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
 		struct rte_pci_device *pdev)
 {
 	struct nitrox_device *ndev;
+	struct nitrox_driver *ndrv;
 	int err = -1;
 
 	/* Nitrox CSR space */
@@ -79,19 +87,21 @@ nitrox_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
 		return -ENOMEM;
 
 	ndev_init(ndev, pdev);
-	err = nitrox_sym_pmd_create(ndev);
-	if (err)
-		goto sym_pmd_err;
-
-	err = nitrox_comp_pmd_create(ndev);
-	if (err)
-		goto comp_pmd_err;
+	TAILQ_FOREACH(ndrv, &ndrv_list, next) {
+		err = ndrv->create(ndev);
+		if (err)
+			goto drv_err;
+	}
 
 	return 0;
 
-comp_pmd_err:
-	nitrox_sym_pmd_destroy(ndev);
-sym_pmd_err:
+drv_err:
+	ndrv = TAILQ_PREV(ndrv, ndrv_list, next);
+	while (ndrv != NULL) {
+		ndrv->destroy(ndev);
+		ndrv = TAILQ_PREV(ndrv, ndrv_list, next);
+	}
+
 	ndev_release(ndev);
 	return err;
 }
@@ -100,19 +110,18 @@ static int
 nitrox_pci_remove(struct rte_pci_device *pdev)
 {
 	struct nitrox_device *ndev;
+	struct nitrox_driver *ndrv;
 	int err;
 
 	ndev = find_ndev(pdev);
 	if (!ndev)
 		return -ENODEV;
 
-	err = nitrox_sym_pmd_destroy(ndev);
-	if (err)
-		return err;
-
-	err = nitrox_comp_pmd_destroy(ndev);
-	if (err)
-		return err;
+	TAILQ_FOREACH(ndrv, &ndrv_list, next) {
+		err = ndrv->destroy(ndev);
+		if (err)
+			return err;
+	}
 
 	ndev_release(ndev);
 	return 0;
@@ -133,33 +142,5 @@ static struct rte_pci_driver nitrox_pmd = {
 	.remove         = nitrox_pci_remove,
 };
 
-__rte_weak int
-nitrox_sym_pmd_create(struct nitrox_device *ndev)
-{
-	RTE_SET_USED(ndev);
-	return 0;
-}
-
-__rte_weak int
-nitrox_sym_pmd_destroy(struct nitrox_device *ndev)
-{
-	RTE_SET_USED(ndev);
-	return 0;
-}
-
-__rte_weak int
-nitrox_comp_pmd_create(struct nitrox_device *ndev)
-{
-	RTE_SET_USED(ndev);
-	return 0;
-}
-
-__rte_weak int
-nitrox_comp_pmd_destroy(struct nitrox_device *ndev)
-{
-	RTE_SET_USED(ndev);
-	return 0;
-}
-
 RTE_PMD_REGISTER_PCI(nitrox, nitrox_pmd);
 RTE_PMD_REGISTER_PCI_TABLE(nitrox, pci_id_nitrox_map);
diff --git a/drivers/common/nitrox/nitrox_device.h b/drivers/common/nitrox/nitrox_device.h
index 877bccb321..b74b71808e 100644
--- a/drivers/common/nitrox/nitrox_device.h
+++ b/drivers/common/nitrox/nitrox_device.h
@@ -6,6 +6,7 @@
 #define _NITROX_DEVICE_H_
 
 #include <bus_pci_driver.h>
+#include <rte_compat.h>
 
 struct nitrox_sym_device;
 struct nitrox_comp_device;
@@ -21,4 +22,19 @@ struct nitrox_device {
 	uint16_t nr_queues;
 };
 
+struct nitrox_driver {
+	TAILQ_ENTRY(nitrox_driver) next;
+	int (*create)(struct nitrox_device *ndev);
+	int (*destroy)(struct nitrox_device *ndev);
+};
+
+__rte_internal
+void nitrox_register_driver(struct nitrox_driver *ndrv);
+
+#define NITROX_REGISTER_DRIVER(ndrv) \
+RTE_INIT(ndrv ## _register) \
+{ \
+	nitrox_register_driver(&ndrv); \
+}
+
 #endif /* _NITROX_DEVICE_H_ */
diff --git a/drivers/common/nitrox/version.map b/drivers/common/nitrox/version.map
index 43295171e4..f58c044fc5 100644
--- a/drivers/common/nitrox/version.map
+++ b/drivers/common/nitrox/version.map
@@ -4,6 +4,7 @@ INTERNAL {
 	nitrox_logtype;
 	nitrox_qp_release;
 	nitrox_qp_setup;
+	nitrox_register_driver;
 
 	local: *;
 };
diff --git a/drivers/compress/nitrox/meson.build b/drivers/compress/nitrox/meson.build
index 1becc66912..5cecc2ad66 100644
--- a/drivers/compress/nitrox/meson.build
+++ b/drivers/compress/nitrox/meson.build
@@ -12,5 +12,3 @@ sources += files(
         'nitrox_comp.c',
         'nitrox_comp_reqmgr.c',
 )
-
-includes += include_directories('../../common/nitrox')
diff --git a/drivers/compress/nitrox/nitrox_comp.c b/drivers/compress/nitrox/nitrox_comp.c
index 1b2054c61a..41a3ee0de8 100644
--- a/drivers/compress/nitrox/nitrox_comp.c
+++ b/drivers/compress/nitrox/nitrox_comp.c
@@ -602,3 +602,9 @@ nitrox_comp_pmd_destroy(struct nitrox_device *ndev)
 	ndev->comp_dev = NULL;
 	return 0;
 }
+
+static struct nitrox_driver comp_drv = {
+	.create = nitrox_comp_pmd_create,
+	.destroy = nitrox_comp_pmd_destroy,
+};
+NITROX_REGISTER_DRIVER(comp_drv);
diff --git a/drivers/crypto/nitrox/meson.build b/drivers/crypto/nitrox/meson.build
index f8887713d2..cbe2b7d6dc 100644
--- a/drivers/crypto/nitrox/meson.build
+++ b/drivers/crypto/nitrox/meson.build
@@ -13,5 +13,3 @@ sources += files(
         'nitrox_sym_capabilities.c',
         'nitrox_sym_reqmgr.c',
 )
-
-includes += include_directories('../../common/nitrox')
diff --git a/drivers/crypto/nitrox/nitrox_sym.c b/drivers/crypto/nitrox/nitrox_sym.c
index da70121d91..7c2dc98a4b 100644
--- a/drivers/crypto/nitrox/nitrox_sym.c
+++ b/drivers/crypto/nitrox/nitrox_sym.c
@@ -798,6 +798,12 @@ nitrox_sym_pmd_destroy(struct nitrox_device *ndev)
 	return rte_cryptodev_pmd_destroy(ndev->sym_dev->cdev);
 }
 
+static struct nitrox_driver sym_drv = {
+	.create = nitrox_sym_pmd_create,
+	.destroy = nitrox_sym_pmd_destroy,
+};
+NITROX_REGISTER_DRIVER(sym_drv);
+
 static struct cryptodev_driver nitrox_crypto_drv;
 RTE_PMD_REGISTER_CRYPTO_DRIVER(nitrox_crypto_drv,
 		nitrox_rte_sym_drv,
-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC 04/10] net/enic: remove weak symbols
  2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
                   ` (2 preceding siblings ...)
  2025-02-07  8:32 ` [RFC 03/10] drivers: remove weak symbols in Nitrox drivers David Marchand
@ 2025-02-07  8:32 ` David Marchand
  2025-02-07  8:32 ` [RFC 05/10] net/hns3: " David Marchand
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev; +Cc: thomas, bruce.richardson, andremue, John Daley, Hyong Youb Kim

Rather than use weak symbols, expose stubs symbols when needed.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/enic/enic_main.c | 8 +++-----
 drivers/net/enic/meson.build | 1 +
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index b755b15d92..5ee2ae555d 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -509,15 +509,13 @@ static void enic_prep_wq_for_simple_tx(struct enic *enic, uint16_t queue_idx)
 	}
 }
 
-/*
- * The 'strong' version is in enic_rxtx_vec_avx2.c. This weak version is used
- * used when that file is not compiled.
- */
-__rte_weak bool
+#ifndef ENIC_RXTX_VEC
+bool
 enic_use_vector_rx_handler(__rte_unused struct rte_eth_dev *eth_dev)
 {
 	return false;
 }
+#endif /* ENIC_RXTX_VEC */
 
 void enic_pick_rx_handler(struct rte_eth_dev *eth_dev)
 {
diff --git a/drivers/net/enic/meson.build b/drivers/net/enic/meson.build
index 00f8348348..1e26338350 100644
--- a/drivers/net/enic/meson.build
+++ b/drivers/net/enic/meson.build
@@ -33,6 +33,7 @@ includes += include_directories('base')
 # may not. This is to support users who build for the min supported machine
 # and need to run the binary on newer CPUs too.
 if dpdk_conf.has('RTE_ARCH_X86_64')
+    cflags += '-DENIC_RXTX_VEC'
     enic_avx2_lib = static_library('enic_avx2_lib',
             'enic_rxtx_vec_avx2.c',
             dependencies: [static_rte_ethdev, static_rte_bus_pci],
-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC 05/10] net/hns3: remove weak symbols
  2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
                   ` (3 preceding siblings ...)
  2025-02-07  8:32 ` [RFC 04/10] net/enic: remove weak symbols David Marchand
@ 2025-02-07  8:32 ` David Marchand
  2025-02-07  8:32 ` [RFC 06/10] net/fm10k: " David Marchand
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev; +Cc: thomas, bruce.richardson, andremue, Jie Hai

Rather than use weak symbols, expose stubs symbols when needed.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/hns3/hns3_rxtx.c | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 09e39cb673..0b42b9826e 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -2787,18 +2787,19 @@ hns3_recv_scattered_pkts(void *rx_queue,
 	return nb_rx;
 }
 
-void __rte_weak
+#ifndef RTE_ARCH_ARM64
+void
 hns3_rxq_vec_setup(__rte_unused struct hns3_rx_queue *rxq)
 {
 }
 
-int __rte_weak
+int
 hns3_rx_check_vec_support(__rte_unused struct rte_eth_dev *dev)
 {
 	return -ENOTSUP;
 }
 
-uint16_t __rte_weak
+uint16_t
 hns3_recv_pkts_vec(__rte_unused void *rx_queue,
 		   __rte_unused struct rte_mbuf **rx_pkts,
 		   __rte_unused uint16_t nb_pkts)
@@ -2806,13 +2807,16 @@ hns3_recv_pkts_vec(__rte_unused void *rx_queue,
 	return 0;
 }
 
-uint16_t __rte_weak
+#ifndef RTE_HAS_SVE_ACLE
+uint16_t
 hns3_recv_pkts_vec_sve(__rte_unused void *rx_queue,
 		       __rte_unused struct rte_mbuf **rx_pkts,
 		       __rte_unused uint16_t nb_pkts)
 {
 	return 0;
 }
+#endif /* RTE_HAS_SVE_ACLE */
+#endif /* RTE_ARCH_ARM64 */
 
 int
 hns3_rx_burst_mode_get(struct rte_eth_dev *dev, __rte_unused uint16_t queue_id,
@@ -4256,13 +4260,14 @@ hns3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 	return nb_tx;
 }
 
-int __rte_weak
+#ifndef RTE_ARCH_ARM64
+int
 hns3_tx_check_vec_support(__rte_unused struct rte_eth_dev *dev)
 {
 	return -ENOTSUP;
 }
 
-uint16_t __rte_weak
+uint16_t
 hns3_xmit_pkts_vec(__rte_unused void *tx_queue,
 		   __rte_unused struct rte_mbuf **tx_pkts,
 		   __rte_unused uint16_t nb_pkts)
@@ -4270,13 +4275,16 @@ hns3_xmit_pkts_vec(__rte_unused void *tx_queue,
 	return 0;
 }
 
-uint16_t __rte_weak
+#ifndef RTE_HAS_SVE_ACLE
+uint16_t
 hns3_xmit_pkts_vec_sve(void __rte_unused * tx_queue,
 		       struct rte_mbuf __rte_unused **tx_pkts,
 		       uint16_t __rte_unused nb_pkts)
 {
 	return 0;
 }
+#endif /* RTE_HAS_SVE_ACLE */
+#endif /* RTE_ARCH_ARM64 */
 
 int
 hns3_tx_burst_mode_get(struct rte_eth_dev *dev, __rte_unused uint16_t queue_id,
-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC 06/10] net/fm10k: remove weak symbols
  2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
                   ` (4 preceding siblings ...)
  2025-02-07  8:32 ` [RFC 05/10] net/hns3: " David Marchand
@ 2025-02-07  8:32 ` David Marchand
  2025-02-07  8:51   ` Bruce Richardson
  2025-02-07  8:32 ` [RFC 07/10] net/nfp: " David Marchand
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev; +Cc: thomas, bruce.richardson, andremue

Rather than use weak symbols, expose stubs symbols when needed.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/intel/fm10k/fm10k_ethdev.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/net/intel/fm10k/fm10k_ethdev.c b/drivers/net/intel/fm10k/fm10k_ethdev.c
index 7b490bea17..633c501ce8 100644
--- a/drivers/net/intel/fm10k/fm10k_ethdev.c
+++ b/drivers/net/intel/fm10k/fm10k_ethdev.c
@@ -129,14 +129,15 @@ fm10k_mbx_unlock(struct fm10k_hw *hw)
 	rte_spinlock_unlock(FM10K_DEV_PRIVATE_TO_MBXLOCK(hw->back));
 }
 
-/* Stubs needed for linkage when vPMD is disabled */
-__rte_weak int
+#ifndef RTE_ARCH_X86
+/* Stubs for non x86 architectures. */
+int
 fm10k_rx_vec_condition_check(__rte_unused struct rte_eth_dev *dev)
 {
 	return -1;
 }
 
-__rte_weak uint16_t
+uint16_t
 fm10k_recv_pkts_vec(
 	__rte_unused void *rx_queue,
 	__rte_unused struct rte_mbuf **rx_pkts,
@@ -145,7 +146,7 @@ fm10k_recv_pkts_vec(
 	return 0;
 }
 
-__rte_weak uint16_t
+uint16_t
 fm10k_recv_scattered_pkts_vec(
 		__rte_unused void *rx_queue,
 		__rte_unused struct rte_mbuf **rx_pkts,
@@ -154,39 +155,40 @@ fm10k_recv_scattered_pkts_vec(
 	return 0;
 }
 
-__rte_weak int
+int
 fm10k_rxq_vec_setup(__rte_unused struct fm10k_rx_queue *rxq)
 
 {
 	return -1;
 }
 
-__rte_weak void
+void
 fm10k_rx_queue_release_mbufs_vec(
 		__rte_unused struct fm10k_rx_queue *rxq)
 {
 	return;
 }
 
-__rte_weak void
+void
 fm10k_txq_vec_setup(__rte_unused struct fm10k_tx_queue *txq)
 {
 	return;
 }
 
-__rte_weak int
+int
 fm10k_tx_vec_condition_check(__rte_unused struct fm10k_tx_queue *txq)
 {
 	return -1;
 }
 
-__rte_weak uint16_t
+uint16_t
 fm10k_xmit_fixed_burst_vec(__rte_unused void *tx_queue,
 			   __rte_unused struct rte_mbuf **tx_pkts,
 			   __rte_unused uint16_t nb_pkts)
 {
 	return 0;
 }
+#endif /* RTE_ARCH_X86 */
 
 /*
  * reset queue to initial state, allocate software buffers used when starting
-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC 07/10] net/nfp: remove weak symbols
  2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
                   ` (5 preceding siblings ...)
  2025-02-07  8:32 ` [RFC 06/10] net/fm10k: " David Marchand
@ 2025-02-07  8:32 ` David Marchand
  2025-02-07  8:44   ` Chaoyong He
  2025-02-07  8:32 ` [RFC 08/10] net/virtio: " David Marchand
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev; +Cc: thomas, bruce.richardson, andremue, Chaoyong He

Rather than use weak symbols, link stubs code when needed.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/nfp/meson.build              | 7 +++++--
 drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c | 2 +-
 drivers/net/nfp/nfp_rxtx_vec_stub.c      | 4 ++--
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/net/nfp/meson.build b/drivers/net/nfp/meson.build
index 4052846dc2..39762bd45a 100644
--- a/drivers/net/nfp/meson.build
+++ b/drivers/net/nfp/meson.build
@@ -17,7 +17,6 @@ sources = files(
         'flower/nfp_flower_service.c',
         'nfd3/nfp_nfd3_dp.c',
         'nfdk/nfp_nfdk_dp.c',
-        'nfdk/nfp_nfdk_vec_stub.c',
         'nfpcore/nfp_cppcore.c',
         'nfpcore/nfp_crc.c',
         'nfpcore/nfp_elf.c',
@@ -45,7 +44,6 @@ sources = files(
         'nfp_net_flow.c',
         'nfp_net_meta.c',
         'nfp_rxtx.c',
-        'nfp_rxtx_vec_stub.c',
         'nfp_service.c',
 )
 
@@ -67,6 +65,11 @@ if arch_subdir == 'x86'
         )
 
         objs += nfp_avx2_lib.extract_all_objects(recursive: true)
+else
+        sources += files(
+                'nfp_rxtx_vec_stub.c',
+                'nfdk/nfp_nfdk_vec_stub.c',
+        )
 endif
 
 deps += ['hash', 'security', 'common_nfp']
diff --git a/drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c b/drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c
index 146ec21d51..4f905bce6b 100644
--- a/drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c
+++ b/drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c
@@ -5,7 +5,7 @@
 
 #include "nfp_nfdk_vec.h"
 
-uint16_t __rte_weak
+uint16_t
 nfp_net_nfdk_vec_avx2_xmit_pkts(__rte_unused void *tx_queue,
 		__rte_unused struct rte_mbuf **tx_pkts,
 		__rte_unused uint16_t nb_pkts)
diff --git a/drivers/net/nfp/nfp_rxtx_vec_stub.c b/drivers/net/nfp/nfp_rxtx_vec_stub.c
index c480f61ef0..201965afbe 100644
--- a/drivers/net/nfp/nfp_rxtx_vec_stub.c
+++ b/drivers/net/nfp/nfp_rxtx_vec_stub.c
@@ -10,13 +10,13 @@
 
 #include "nfp_rxtx_vec.h"
 
-bool __rte_weak
+bool
 nfp_net_get_avx2_supported(void)
 {
 	return false;
 }
 
-uint16_t __rte_weak
+uint16_t
 nfp_net_vec_avx2_recv_pkts(__rte_unused void *rx_queue,
 		__rte_unused struct rte_mbuf **rx_pkts,
 		__rte_unused uint16_t nb_pkts)
-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC 08/10] net/virtio: remove weak symbols
  2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
                   ` (6 preceding siblings ...)
  2025-02-07  8:32 ` [RFC 07/10] net/nfp: " David Marchand
@ 2025-02-07  8:32 ` David Marchand
  2025-02-07  8:32 ` [RFC 09/10] app/compress-perf: " David Marchand
  2025-02-07  8:32 ` [RFC 10/10] eal: deprecate " David Marchand
  9 siblings, 0 replies; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev; +Cc: thomas, bruce.richardson, andremue, Maxime Coquelin, Chenbo Xia

Rather than use weak symbols, expose stubs symbols when needed.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/virtio/meson.build          | 5 +++++
 drivers/net/virtio/virtio_rxtx.c        | 6 ++++--
 drivers/net/virtio/virtio_rxtx_simple.c | 4 +++-
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/net/virtio/meson.build b/drivers/net/virtio/meson.build
index c708ea5258..56c763e96f 100644
--- a/drivers/net/virtio/meson.build
+++ b/drivers/net/virtio/meson.build
@@ -28,6 +28,7 @@ cflags += no_wvla_cflag
 if arch_subdir == 'x86'
     if cc_has_avx512
         cflags += ['-DCC_AVX512_SUPPORT']
+        cflags += ['-DVIRTIO_RXTX_PACKED_VEC']
         virtio_avx512_lib = static_library('virtio_avx512_lib',
                 'virtio_rxtx_packed.c',
                 dependencies: [static_rte_ethdev,
@@ -43,11 +44,15 @@ if arch_subdir == 'x86'
             cflags += '-DVIRTIO_ICC_UNROLL_PRAGMA'
         endif
     endif
+    cflags += ['-DVIRTIO_RXTX_VEC']
     sources += files('virtio_rxtx_simple_sse.c')
 elif arch_subdir == 'ppc'
+    cflags += ['-DVIRTIO_RXTX_VEC']
     sources += files('virtio_rxtx_simple_altivec.c')
 elif arch_subdir == 'arm' and dpdk_conf.get('RTE_ARCH_64')
+    cflags += ['-DVIRTIO_RXTX_PACKED_VEC']
     sources += files('virtio_rxtx_packed.c')
+    cflags += ['-DVIRTIO_RXTX_VEC']
     sources += files('virtio_rxtx_simple_neon.c')
 endif
 
diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
index b67f063b31..2a0d1b6101 100644
--- a/drivers/net/virtio/virtio_rxtx.c
+++ b/drivers/net/virtio/virtio_rxtx.c
@@ -2045,7 +2045,8 @@ virtio_xmit_pkts_inorder(void *tx_queue,
 	return nb_tx;
 }
 
-__rte_weak uint16_t
+#ifndef VIRTIO_RXTX_PACKED_VEC
+uint16_t
 virtio_recv_pkts_packed_vec(void *rx_queue __rte_unused,
 			    struct rte_mbuf **rx_pkts __rte_unused,
 			    uint16_t nb_pkts __rte_unused)
@@ -2053,10 +2054,11 @@ virtio_recv_pkts_packed_vec(void *rx_queue __rte_unused,
 	return 0;
 }
 
-__rte_weak uint16_t
+uint16_t
 virtio_xmit_pkts_packed_vec(void *tx_queue __rte_unused,
 			    struct rte_mbuf **tx_pkts __rte_unused,
 			    uint16_t nb_pkts __rte_unused)
 {
 	return 0;
 }
+#endif /* DVIRTIO_RXTX_PACKED_VEC */
diff --git a/drivers/net/virtio/virtio_rxtx_simple.c b/drivers/net/virtio/virtio_rxtx_simple.c
index 439e00a7e1..aa96c9c488 100644
--- a/drivers/net/virtio/virtio_rxtx_simple.c
+++ b/drivers/net/virtio/virtio_rxtx_simple.c
@@ -43,8 +43,9 @@ virtio_rxq_vec_setup(struct virtnet_rx *rxq)
 	return 0;
 }
 
+#ifndef VIRTIO_RXTX_VEC
 /* Stub for linkage when arch specific implementation is not available */
-__rte_weak uint16_t
+uint16_t
 virtio_recv_pkts_vec(void *rx_queue __rte_unused,
 		     struct rte_mbuf **rx_pkts __rte_unused,
 		     uint16_t nb_pkts __rte_unused)
@@ -52,3 +53,4 @@ virtio_recv_pkts_vec(void *rx_queue __rte_unused,
 	rte_panic("Wrong weak function linked by linker\n");
 	return 0;
 }
+#endif /* VIRTIO_RXTX_VEC */
-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC 09/10] app/compress-perf: remove weak symbols
  2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
                   ` (7 preceding siblings ...)
  2025-02-07  8:32 ` [RFC 08/10] net/virtio: " David Marchand
@ 2025-02-07  8:32 ` David Marchand
  2025-02-07  8:32 ` [RFC 10/10] eal: deprecate " David Marchand
  9 siblings, 0 replies; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev; +Cc: thomas, bruce.richardson, andremue

Remove dead code, those symbols are never used as the "strong" symbols
are always linked in.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-compress-perf/main.c | 62 -----------------------------------
 1 file changed, 62 deletions(-)

diff --git a/app/test-compress-perf/main.c b/app/test-compress-perf/main.c
index fa366123ed..70ce4316cc 100644
--- a/app/test-compress-perf/main.c
+++ b/app/test-compress-perf/main.c
@@ -521,65 +521,3 @@ main(int argc, char **argv)
 	}
 	return ret;
 }
-
-__rte_weak void *
-cperf_cyclecount_test_constructor(uint8_t dev_id __rte_unused,
-				 uint16_t qp_id __rte_unused,
-				 struct comp_test_data *options __rte_unused)
-{
-	RTE_LOG(INFO, USER1, "Cycle count test is not supported yet\n");
-	return NULL;
-}
-
-__rte_weak void
-cperf_cyclecount_test_destructor(void *arg __rte_unused)
-{
-	RTE_LOG(INFO, USER1, "Something wrong happened!!!\n");
-}
-
-__rte_weak int
-cperf_cyclecount_test_runner(void *test_ctx __rte_unused)
-{
-	return 0;
-}
-
-__rte_weak void *
-cperf_throughput_test_constructor(uint8_t dev_id __rte_unused,
-				 uint16_t qp_id __rte_unused,
-				 struct comp_test_data *options __rte_unused)
-{
-	RTE_LOG(INFO, USER1, "Benchmark test is not supported yet\n");
-	return NULL;
-}
-
-__rte_weak void
-cperf_throughput_test_destructor(void *arg __rte_unused)
-{
-
-}
-
-__rte_weak int
-cperf_throughput_test_runner(void *test_ctx __rte_unused)
-{
-	return 0;
-}
-__rte_weak void *
-cperf_verify_test_constructor(uint8_t dev_id __rte_unused,
-				 uint16_t qp_id __rte_unused,
-				 struct comp_test_data *options __rte_unused)
-{
-	RTE_LOG(INFO, USER1, "Verify test is not supported yet\n");
-	return NULL;
-}
-
-__rte_weak void
-cperf_verify_test_destructor(void *arg __rte_unused)
-{
-
-}
-
-__rte_weak int
-cperf_verify_test_runner(void *test_ctx __rte_unused)
-{
-	return 0;
-}
-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC 10/10] eal: deprecate weak symbols
  2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
                   ` (8 preceding siblings ...)
  2025-02-07  8:32 ` [RFC 09/10] app/compress-perf: " David Marchand
@ 2025-02-07  8:32 ` David Marchand
  9 siblings, 0 replies; 13+ messages in thread
From: David Marchand @ 2025-02-07  8:32 UTC (permalink / raw)
  To: dev; +Cc: thomas, bruce.richardson, andremue, Tyler Retzlaff

Mark __rte_weak as deprecated.
It will avoid having to support such feature with other linkers,
plus this was never really needed.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 doc/guides/rel_notes/release_25_03.rst | 2 ++
 lib/eal/include/rte_common.h           | 6 +++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/doc/guides/rel_notes/release_25_03.rst b/doc/guides/rel_notes/release_25_03.rst
index 269ab6f68a..e9a9abbb13 100644
--- a/doc/guides/rel_notes/release_25_03.rst
+++ b/doc/guides/rel_notes/release_25_03.rst
@@ -125,6 +125,8 @@ API Changes
 * eal: The ``__rte_packed`` macro for packing data is replaced with
   ``__rte_packed_begin`` / ``__rte_packed_end``.
 
+* eal: The ``__rte_weak`` macro is deprecated and will be removed in a future release.
+
 * build: The Intel networking drivers:
   cpfl, e1000, fm10k, i40e, iavf, ice, idpf, igc, ipn3ke and ixgbe,
   have been moved from ``drivers/net`` to a new ``drivers/net/intel`` directory.
diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h
index 7a252c1997..2e0ee9dc7e 100644
--- a/lib/eal/include/rte_common.h
+++ b/lib/eal/include/rte_common.h
@@ -181,7 +181,11 @@ typedef uint16_t unaligned_uint16_t;
 /**
  * Mark a function or variable to a weak reference.
  */
-#define __rte_weak __attribute__((__weak__))
+#ifdef RTE_TOOLCHAIN_MSVC
+#define __rte_weak RTE_DEPRECATED(__rte_weak)
+#else
+#define __rte_weak RTE_DEPRECATED(__rte_weak) __attribute__((__weak__))
+#endif
 
 /**
  * Mark a function to be pure.
-- 
2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: [RFC 07/10] net/nfp: remove weak symbols
  2025-02-07  8:32 ` [RFC 07/10] net/nfp: " David Marchand
@ 2025-02-07  8:44   ` Chaoyong He
  0 siblings, 0 replies; 13+ messages in thread
From: Chaoyong He @ 2025-02-07  8:44 UTC (permalink / raw)
  To: David Marchand, dev; +Cc: thomas, bruce.richardson, andremue

Seems ok for me.

Acked-by: Chaoyong He <chaoyong.he@corigine.com>

> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Friday, February 7, 2025 4:33 PM
> To: dev@dpdk.org
> Cc: thomas@monjalon.net; bruce.richardson@intel.com;
> andremue@linux.microsoft.com; Chaoyong He <chaoyong.he@corigine.com>
> Subject: [RFC 07/10] net/nfp: remove weak symbols
> 
> Rather than use weak symbols, link stubs code when needed.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>  drivers/net/nfp/meson.build              | 7 +++++--
>  drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c | 2 +-
>  drivers/net/nfp/nfp_rxtx_vec_stub.c      | 4 ++--
>  3 files changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/nfp/meson.build b/drivers/net/nfp/meson.build index
> 4052846dc2..39762bd45a 100644
> --- a/drivers/net/nfp/meson.build
> +++ b/drivers/net/nfp/meson.build
> @@ -17,7 +17,6 @@ sources = files(
>          'flower/nfp_flower_service.c',
>          'nfd3/nfp_nfd3_dp.c',
>          'nfdk/nfp_nfdk_dp.c',
> -        'nfdk/nfp_nfdk_vec_stub.c',
>          'nfpcore/nfp_cppcore.c',
>          'nfpcore/nfp_crc.c',
>          'nfpcore/nfp_elf.c',
> @@ -45,7 +44,6 @@ sources = files(
>          'nfp_net_flow.c',
>          'nfp_net_meta.c',
>          'nfp_rxtx.c',
> -        'nfp_rxtx_vec_stub.c',
>          'nfp_service.c',
>  )
> 
> @@ -67,6 +65,11 @@ if arch_subdir == 'x86'
>          )
> 
>          objs += nfp_avx2_lib.extract_all_objects(recursive: true)
> +else
> +        sources += files(
> +                'nfp_rxtx_vec_stub.c',
> +                'nfdk/nfp_nfdk_vec_stub.c',
> +        )
>  endif
> 
>  deps += ['hash', 'security', 'common_nfp'] diff --git
> a/drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c
> b/drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c
> index 146ec21d51..4f905bce6b 100644
> --- a/drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c
> +++ b/drivers/net/nfp/nfdk/nfp_nfdk_vec_stub.c
> @@ -5,7 +5,7 @@
> 
>  #include "nfp_nfdk_vec.h"
> 
> -uint16_t __rte_weak
> +uint16_t
>  nfp_net_nfdk_vec_avx2_xmit_pkts(__rte_unused void *tx_queue,
>  		__rte_unused struct rte_mbuf **tx_pkts,
>  		__rte_unused uint16_t nb_pkts)
> diff --git a/drivers/net/nfp/nfp_rxtx_vec_stub.c
> b/drivers/net/nfp/nfp_rxtx_vec_stub.c
> index c480f61ef0..201965afbe 100644
> --- a/drivers/net/nfp/nfp_rxtx_vec_stub.c
> +++ b/drivers/net/nfp/nfp_rxtx_vec_stub.c
> @@ -10,13 +10,13 @@
> 
>  #include "nfp_rxtx_vec.h"
> 
> -bool __rte_weak
> +bool
>  nfp_net_get_avx2_supported(void)
>  {
>  	return false;
>  }
> 
> -uint16_t __rte_weak
> +uint16_t
>  nfp_net_vec_avx2_recv_pkts(__rte_unused void *rx_queue,
>  		__rte_unused struct rte_mbuf **rx_pkts,
>  		__rte_unused uint16_t nb_pkts)
> --
> 2.48.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC 06/10] net/fm10k: remove weak symbols
  2025-02-07  8:32 ` [RFC 06/10] net/fm10k: " David Marchand
@ 2025-02-07  8:51   ` Bruce Richardson
  0 siblings, 0 replies; 13+ messages in thread
From: Bruce Richardson @ 2025-02-07  8:51 UTC (permalink / raw)
  To: David Marchand; +Cc: dev, thomas, andremue

On Fri, Feb 07, 2025 at 09:32:46AM +0100, David Marchand wrote:
> Rather than use weak symbols, expose stubs symbols when needed.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>  drivers/net/intel/fm10k/fm10k_ethdev.c | 20 +++++++++++---------
>  1 file changed, 11 insertions(+), 9 deletions(-)
> 
Acked-by: Bruce Richardson <bruce.richardson@intel.com>


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2025-02-07  8:51 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-07  8:32 [RFC 00/10] Remove weak symbols David Marchand
2025-02-07  8:32 ` [RFC 01/10] bus/auxiliary: remove " David Marchand
2025-02-07  8:32 ` [RFC 02/10] common/qat: " David Marchand
2025-02-07  8:32 ` [RFC 03/10] drivers: remove weak symbols in Nitrox drivers David Marchand
2025-02-07  8:32 ` [RFC 04/10] net/enic: remove weak symbols David Marchand
2025-02-07  8:32 ` [RFC 05/10] net/hns3: " David Marchand
2025-02-07  8:32 ` [RFC 06/10] net/fm10k: " David Marchand
2025-02-07  8:51   ` Bruce Richardson
2025-02-07  8:32 ` [RFC 07/10] net/nfp: " David Marchand
2025-02-07  8:44   ` Chaoyong He
2025-02-07  8:32 ` [RFC 08/10] net/virtio: " David Marchand
2025-02-07  8:32 ` [RFC 09/10] app/compress-perf: " David Marchand
2025-02-07  8:32 ` [RFC 10/10] eal: deprecate " David Marchand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).