__COUNTER__ is not supported by MSVC. Plus the this_pmd_name* symbols will become global (again for MSVC) in a next commit. Prefer the driver name to generate a unique symbol.
Signed-off-by: David Marchand <david.march...@redhat.com> --- buildtools/pmdinfogen.py | 2 +- drivers/bus/auxiliary/bus_auxiliary_driver.h | 2 +- drivers/bus/cdx/bus_cdx_driver.h | 2 +- drivers/bus/dpaa/bus_dpaa_driver.h | 2 +- drivers/bus/fslmc/bus_fslmc_driver.h | 4 ++-- drivers/bus/ifpga/bus_ifpga_driver.h | 2 +- drivers/bus/pci/bus_pci_driver.h | 2 +- drivers/bus/platform/bus_platform_driver.h | 2 +- drivers/bus/uacce/bus_uacce_driver.h | 2 +- drivers/bus/vdev/bus_vdev_driver.h | 2 +- drivers/bus/vmbus/bus_vmbus_driver.h | 2 +- drivers/common/mlx5/mlx5_common.c | 2 +- drivers/common/mlx5/mlx5_common_pci.c | 2 +- drivers/compress/mlx5/mlx5_compress.c | 2 +- drivers/crypto/mlx5/mlx5_crypto.c | 2 +- drivers/net/mlx4/mlx4.c | 2 +- drivers/net/mlx5/mlx5.c | 2 +- drivers/net/virtio/virtio_pci_ethdev.c | 2 +- drivers/regex/mlx5/mlx5_regex.c | 2 +- drivers/vdpa/mlx5/mlx5_vdpa.c | 2 +- lib/eal/include/dev_driver.h | 7 ++----- 21 files changed, 23 insertions(+), 26 deletions(-) diff --git a/buildtools/pmdinfogen.py b/buildtools/pmdinfogen.py index dfb89500c0..7be2e39dd2 100755 --- a/buildtools/pmdinfogen.py +++ b/buildtools/pmdinfogen.py @@ -200,7 +200,7 @@ def dump(self, file): def load_drivers(image): drivers = [] - for symbol in image.find_by_pattern("^this_pmd_name[0-9]+$"): + for symbol in image.find_by_pattern("^this_pmd_name[0-9a-zA-Z_]+$"): drivers.append(Driver.load(image, symbol)) return drivers diff --git a/drivers/bus/auxiliary/bus_auxiliary_driver.h b/drivers/bus/auxiliary/bus_auxiliary_driver.h index 40ab1f0912..1dc814151e 100644 --- a/drivers/bus/auxiliary/bus_auxiliary_driver.h +++ b/drivers/bus/auxiliary/bus_auxiliary_driver.h @@ -168,7 +168,7 @@ void rte_auxiliary_register(struct rte_auxiliary_driver *driver); (auxiliary_drv).driver.name = RTE_STR(nm); \ rte_auxiliary_register(&(auxiliary_drv)); \ } \ - RTE_PMD_EXPORT_NAME(nm, __COUNTER__) + RTE_PMD_EXPORT_NAME(nm) /** * Unregister an auxiliary driver. diff --git a/drivers/bus/cdx/bus_cdx_driver.h b/drivers/bus/cdx/bus_cdx_driver.h index d390e7b5a1..4febf1fd3b 100644 --- a/drivers/bus/cdx/bus_cdx_driver.h +++ b/drivers/bus/cdx/bus_cdx_driver.h @@ -153,7 +153,7 @@ void rte_cdx_register(struct rte_cdx_driver *driver); (cdx_drv).driver.name = RTE_STR(nm);\ rte_cdx_register(&cdx_drv); \ } \ - RTE_PMD_EXPORT_NAME(nm, __COUNTER__) + RTE_PMD_EXPORT_NAME(nm) /** * Enables VFIO Interrupts for CDX bus devices. diff --git a/drivers/bus/dpaa/bus_dpaa_driver.h b/drivers/bus/dpaa/bus_dpaa_driver.h index 26a83b2cdf..325071dc0f 100644 --- a/drivers/bus/dpaa/bus_dpaa_driver.h +++ b/drivers/bus/dpaa/bus_dpaa_driver.h @@ -245,7 +245,7 @@ RTE_INIT(dpaainitfn_ ##nm) \ (dpaa_drv).driver.name = RTE_STR(nm);\ rte_dpaa_driver_register(&dpaa_drv); \ } \ -RTE_PMD_EXPORT_NAME(nm, __COUNTER__) +RTE_PMD_EXPORT_NAME(nm) __rte_internal struct fm_eth_port_cfg *dpaa_get_eth_port_cfg(int dev_id); diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h index 1d4ce4785f..442de1a3fb 100644 --- a/drivers/bus/fslmc/bus_fslmc_driver.h +++ b/drivers/bus/fslmc/bus_fslmc_driver.h @@ -205,7 +205,7 @@ RTE_INIT(dpaa2initfn_ ##nm) \ (dpaa2_drv).driver.name = RTE_STR(nm);\ rte_fslmc_driver_register(&dpaa2_drv); \ } \ -RTE_PMD_EXPORT_NAME(nm, __COUNTER__) +RTE_PMD_EXPORT_NAME(nm) /** * Register a DPAA2 MC Object driver. @@ -236,7 +236,7 @@ RTE_INIT(dpaa2objinitfn_ ##nm) \ (dpaa2_obj).name = RTE_STR(nm);\ rte_fslmc_object_register(&dpaa2_obj); \ } \ -RTE_PMD_EXPORT_NAME(nm, __COUNTER__) +RTE_PMD_EXPORT_NAME(nm) #ifdef __cplusplus } diff --git a/drivers/bus/ifpga/bus_ifpga_driver.h b/drivers/bus/ifpga/bus_ifpga_driver.h index 56ce34c91d..d34ab8cec1 100644 --- a/drivers/bus/ifpga/bus_ifpga_driver.h +++ b/drivers/bus/ifpga/bus_ifpga_driver.h @@ -154,7 +154,7 @@ RTE_INIT(afudrvinitfn_ ##afudrv)\ (afudrv).driver.alias = afudrvinit_ ## nm ## _alias;\ rte_ifpga_driver_register(&afudrv);\ } \ -RTE_PMD_EXPORT_NAME(nm, __COUNTER__) +RTE_PMD_EXPORT_NAME(nm) #define RTE_PMD_REGISTER_AFU_ALIAS(nm, alias)\ static const char *afudrvinit_ ## nm ## _alias = RTE_STR(alias) diff --git a/drivers/bus/pci/bus_pci_driver.h b/drivers/bus/pci/bus_pci_driver.h index 2cc1119072..54e25c8c2a 100644 --- a/drivers/bus/pci/bus_pci_driver.h +++ b/drivers/bus/pci/bus_pci_driver.h @@ -171,7 +171,7 @@ RTE_INIT(pciinitfn_ ##nm) \ (pci_drv).driver.name = RTE_STR(nm);\ rte_pci_register(&pci_drv); \ } \ -RTE_PMD_EXPORT_NAME(nm, __COUNTER__) +RTE_PMD_EXPORT_NAME(nm) /** * Unregister a PCI driver. diff --git a/drivers/bus/platform/bus_platform_driver.h b/drivers/bus/platform/bus_platform_driver.h index a6f246f7c4..ef4b27c0c0 100644 --- a/drivers/bus/platform/bus_platform_driver.h +++ b/drivers/bus/platform/bus_platform_driver.h @@ -138,7 +138,7 @@ RTE_INIT(pdrvinitfn_ ##nm) \ (platform_drv).driver.alias = pdrvinit_ ## nm ## _alias; \ rte_platform_register(&(platform_drv)); \ } \ -RTE_PMD_EXPORT_NAME(nm, __COUNTER__) +RTE_PMD_EXPORT_NAME(nm) /** Helper for setting platform driver alias. */ #define RTE_PMD_REGISTER_ALIAS(nm, alias) \ diff --git a/drivers/bus/uacce/bus_uacce_driver.h b/drivers/bus/uacce/bus_uacce_driver.h index c8e177d44f..618e0f9b76 100644 --- a/drivers/bus/uacce/bus_uacce_driver.h +++ b/drivers/bus/uacce/bus_uacce_driver.h @@ -245,7 +245,7 @@ void rte_uacce_unregister(struct rte_uacce_driver *driver); (uacce_drv).driver.name = RTE_STR(nm);\ rte_uacce_register(&uacce_drv); \ } \ - RTE_PMD_EXPORT_NAME(nm, __COUNTER__) + RTE_PMD_EXPORT_NAME(nm) #ifdef __cplusplus } diff --git a/drivers/bus/vdev/bus_vdev_driver.h b/drivers/bus/vdev/bus_vdev_driver.h index cba1fb5269..17efec51a3 100644 --- a/drivers/bus/vdev/bus_vdev_driver.h +++ b/drivers/bus/vdev/bus_vdev_driver.h @@ -139,7 +139,7 @@ RTE_INIT(vdrvinitfn_ ##vdrv)\ (vdrv).driver.alias = vdrvinit_ ## nm ## _alias;\ rte_vdev_register(&vdrv);\ } \ -RTE_PMD_EXPORT_NAME(nm, __COUNTER__) +RTE_PMD_EXPORT_NAME(nm) #define RTE_PMD_REGISTER_ALIAS(nm, alias)\ static const char *vdrvinit_ ## nm ## _alias = RTE_STR(alias) diff --git a/drivers/bus/vmbus/bus_vmbus_driver.h b/drivers/bus/vmbus/bus_vmbus_driver.h index 0a56275437..485bfde720 100644 --- a/drivers/bus/vmbus/bus_vmbus_driver.h +++ b/drivers/bus/vmbus/bus_vmbus_driver.h @@ -101,7 +101,7 @@ void rte_vmbus_unregister(struct rte_vmbus_driver *driver); (vmbus_drv).driver.name = RTE_STR(nm); \ rte_vmbus_register(&vmbus_drv); \ } \ - RTE_PMD_EXPORT_NAME(nm, __COUNTER__) + RTE_PMD_EXPORT_NAME(nm) #ifdef __cplusplus } diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c index 4f25127582..0c95aa2993 100644 --- a/drivers/common/mlx5/mlx5_common.c +++ b/drivers/common/mlx5/mlx5_common.c @@ -1452,4 +1452,4 @@ mlx5_devx_uar_prepare(struct mlx5_common_device *cdev, struct mlx5_uar *uar) return 0; } -RTE_PMD_EXPORT_NAME(mlx5_common_driver, __COUNTER__); +RTE_PMD_EXPORT_NAME(mlx5_common_driver); diff --git a/drivers/common/mlx5/mlx5_common_pci.c b/drivers/common/mlx5/mlx5_common_pci.c index 819b799bb8..8bd43bc166 100644 --- a/drivers/common/mlx5/mlx5_common_pci.c +++ b/drivers/common/mlx5/mlx5_common_pci.c @@ -245,4 +245,4 @@ RTE_FINI(mlx5_common_pci_finish) } } -RTE_PMD_EXPORT_NAME(mlx5_common_pci, __COUNTER__); +RTE_PMD_EXPORT_NAME(mlx5_common_pci); diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index 82105bfebd..e5325c6150 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -937,6 +937,6 @@ RTE_INIT(rte_mlx5_compress_init) } RTE_LOG_REGISTER_DEFAULT(mlx5_compress_logtype, NOTICE) -RTE_PMD_EXPORT_NAME(MLX5_COMPRESS_DRIVER_NAME, __COUNTER__); +RTE_PMD_EXPORT_NAME(MLX5_COMPRESS_DRIVER_NAME); RTE_PMD_REGISTER_PCI_TABLE(MLX5_COMPRESS_DRIVER_NAME, mlx5_compress_pci_id_map); RTE_PMD_REGISTER_KMOD_DEP(MLX5_COMPRESS_DRIVER_NAME, "* ib_uverbs & mlx5_core & mlx5_ib"); diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c index 2319c6920d..78a9e3d0fe 100644 --- a/drivers/crypto/mlx5/mlx5_crypto.c +++ b/drivers/crypto/mlx5/mlx5_crypto.c @@ -514,6 +514,6 @@ RTE_PMD_REGISTER_CRYPTO_DRIVER(mlx5_cryptodev_driver, mlx5_drv, mlx5_crypto_driver_id); RTE_LOG_REGISTER_DEFAULT(mlx5_crypto_logtype, NOTICE) -RTE_PMD_EXPORT_NAME(MLX5_CRYPTO_DRIVER_NAME, __COUNTER__); +RTE_PMD_EXPORT_NAME(MLX5_CRYPTO_DRIVER_NAME); RTE_PMD_REGISTER_PCI_TABLE(MLX5_CRYPTO_DRIVER_NAME, mlx5_crypto_pci_id_map); RTE_PMD_REGISTER_KMOD_DEP(MLX5_CRYPTO_DRIVER_NAME, "* ib_uverbs & mlx5_core & mlx5_ib"); diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index 9c2872429f..997829a107 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -1385,7 +1385,7 @@ RTE_INIT(rte_mlx4_pmd_init) rte_pci_register(&mlx4_driver); } -RTE_PMD_EXPORT_NAME(net_mlx4, __COUNTER__); +RTE_PMD_EXPORT_NAME(net_mlx4); RTE_PMD_REGISTER_PCI_TABLE(net_mlx4, mlx4_pci_id_map); RTE_PMD_REGISTER_KMOD_DEP(net_mlx4, "* ib_uverbs & mlx4_en & mlx4_core & mlx4_ib"); diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index b4bd43aae2..8cf8322b34 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -3819,6 +3819,6 @@ RTE_INIT(rte_mlx5_pmd_init) mlx5_class_driver_register(&mlx5_net_driver); } -RTE_PMD_EXPORT_NAME(MLX5_ETH_DRIVER_NAME, __COUNTER__); +RTE_PMD_EXPORT_NAME(MLX5_ETH_DRIVER_NAME); RTE_PMD_REGISTER_PCI_TABLE(MLX5_ETH_DRIVER_NAME, mlx5_pci_id_map); RTE_PMD_REGISTER_KMOD_DEP(MLX5_ETH_DRIVER_NAME, "* ib_uverbs & mlx5_core & mlx5_ib"); diff --git a/drivers/net/virtio/virtio_pci_ethdev.c b/drivers/net/virtio/virtio_pci_ethdev.c index 9b4b846f8a..daf513d04d 100644 --- a/drivers/net/virtio/virtio_pci_ethdev.c +++ b/drivers/net/virtio/virtio_pci_ethdev.c @@ -239,4 +239,4 @@ RTE_INIT(rte_virtio_net_pci_pmd_init) RTE_PMD_REGISTER_PCI_TABLE(net_virtio, pci_id_virtio_map); RTE_PMD_REGISTER_KMOD_DEP(net_virtio, "* igb_uio | uio_pci_generic | vfio-pci"); -RTE_PMD_EXPORT_NAME(net_virtio, __COUNTER__); +RTE_PMD_EXPORT_NAME(net_virtio); diff --git a/drivers/regex/mlx5/mlx5_regex.c b/drivers/regex/mlx5/mlx5_regex.c index 4ed62b538b..042f585abd 100644 --- a/drivers/regex/mlx5/mlx5_regex.c +++ b/drivers/regex/mlx5/mlx5_regex.c @@ -183,6 +183,6 @@ RTE_INIT(rte_mlx5_regex_init) } RTE_LOG_REGISTER_DEFAULT(mlx5_regex_logtype, NOTICE) -RTE_PMD_EXPORT_NAME(MLX5_REGEX_DRIVER_NAME, __COUNTER__); +RTE_PMD_EXPORT_NAME(MLX5_REGEX_DRIVER_NAME); RTE_PMD_REGISTER_PCI_TABLE(MLX5_REGEX_DRIVER_NAME, mlx5_regex_pci_id_map); RTE_PMD_REGISTER_KMOD_DEP(MLX5_REGEX_DRIVER_NAME, "* ib_uverbs & mlx5_core & mlx5_ib"); diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c index 98c39a5e64..11708e2005 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa.c @@ -1003,6 +1003,6 @@ RTE_INIT(rte_mlx5_vdpa_init) mlx5_class_driver_register(&mlx5_vdpa_driver); } -RTE_PMD_EXPORT_NAME(MLX5_VDPA_DRIVER_NAME, __COUNTER__); +RTE_PMD_EXPORT_NAME(MLX5_VDPA_DRIVER_NAME); RTE_PMD_REGISTER_PCI_TABLE(MLX5_VDPA_DRIVER_NAME, mlx5_vdpa_pci_id_map); RTE_PMD_REGISTER_KMOD_DEP(MLX5_VDPA_DRIVER_NAME, "* ib_uverbs & mlx5_core & mlx5_ib"); diff --git a/lib/eal/include/dev_driver.h b/lib/eal/include/dev_driver.h index 22e48226f9..7766038b1b 100644 --- a/lib/eal/include/dev_driver.h +++ b/lib/eal/include/dev_driver.h @@ -30,11 +30,8 @@ struct rte_device { struct rte_devargs *devargs; /**< Arguments for latest probing */ }; -#define RTE_PMD_EXPORT_NAME_ARRAY(n, idx) n##idx[] - -#define RTE_PMD_EXPORT_NAME(name, idx) \ -static const char RTE_PMD_EXPORT_NAME_ARRAY(this_pmd_name, idx) \ -__rte_used = RTE_STR(name) +#define RTE_PMD_EXPORT_NAME(name) \ +static const char this_pmd_name ## name __rte_used = RTE_STR(name) #define DRV_EXP_TAG(name, tag) __##name##_##tag -- 2.49.0