]> git.droids-corp.org - dpdk.git/commitdiff
build: add defines for compatibility with make build
authorBruce Richardson <bruce.richardson@intel.com>
Thu, 15 Oct 2020 15:05:49 +0000 (16:05 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 19 Oct 2020 20:12:28 +0000 (22:12 +0200)
The defines used to indicate what crypto, compression and eventdev drivers
were being built were different to those used in the make build, with meson
defining them with "_PMD" at the end, while make defined them with "_PMD"
in the middle and the specific driver name at the end. This might cause
compatibility issues for applications which used the older defines, which
switching to build against new DPDK releases.

As well as changing the default to match that of make, meson also
special-cases the crypto/compression/event drivers to have both defines
provided. This ensures compatibility for these macros with both meson and
make from older versions.

For a selection of other libraries and drivers, there were other
incompatibilities between the meson and make-defined macros which were not
previously highlighted in a deprecation notice, so we add per-macro
compatibility defines for these to ease the transition from make to meson.

Fixes: 5b9656b157d3 ("lib: build with meson")
Fixes: 9314afb68a53 ("drivers: add infrastructure for meson build")
Fixes: dcadbbde8e61 ("crypto/null: build with meson")
Fixes: 3c32e89f68e1 ("compress/isal: add skeleton ISA-L compression PMD")
Fixes: eca504f318db ("drivers/event: build skeleton and SW drivers with meson")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
config/meson.build
config/rte_compatibility_defines.h [new file with mode: 0644]
config/rte_config.h
drivers/compress/meson.build
drivers/crypto/meson.build
drivers/event/meson.build
drivers/meson.build

index e2ea9f1d8a0a604db736a8cda2c55f9f55906943..258b01d068b2e2053a22f178263c9e683f1aff19 100644 (file)
@@ -253,7 +253,8 @@ dpdk_conf.set('RTE_COMPILE_TIME_CPUFLAGS', ','.join(compile_time_cpuflags))
 # set the install path for the drivers
 dpdk_conf.set_quoted('RTE_EAL_PMD_PATH', eal_pmd_path)
 
-install_headers('rte_config.h', subdir: get_option('include_subdir_arch'))
+install_headers(['rte_config.h', 'rte_compatibility_defines.h'],
+               subdir: get_option('include_subdir_arch'))
 
 # enable VFIO only if it is linux OS
 dpdk_conf.set('RTE_EAL_VFIO', is_linux)
diff --git a/config/rte_compatibility_defines.h b/config/rte_compatibility_defines.h
new file mode 100644 (file)
index 0000000..4760005
--- /dev/null
@@ -0,0 +1,129 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2017 Intel Corporation
+ */
+
+#ifndef _RTE_CONFIG_H_
+#error "This file should only be included via rte_config.h"
+#endif
+
+/*
+ * NOTE: these defines are for compatibility only and will be removed in a
+ * future DPDK release.
+ */
+
+#ifdef RTE_LIBRTE_BITRATESTATS
+#define RTE_LIBRTE_BITRATE
+#endif
+
+#ifdef RTE_LIBRTE_LATENCYSTATS
+#define RTE_LIBRTE_LATENCY_STATS
+#endif
+
+#ifdef RTE_LIBRTE_DPAAX_COMMON
+#define RTE_LIBRTE_COMMON_DPAAX
+#endif
+
+#ifdef RTE_LIBRTE_VMBUS_BUS
+#define RTE_LIBRTE_VMBUS
+#endif
+
+#ifdef RTE_LIBRTE_BUCKET_MEMPOOL
+#define RTE_DRIVER_MEMPOOL_BUCKET
+#endif
+
+#ifdef RTE_LIBRTE_RING_MEMPOOL
+#define RTE_DRIVER_MEMPOOL_RING
+#endif
+
+#ifdef RTE_LIBRTE_STACK_MEMPOOL
+#define RTE_DRIVER_MEMPOOL_STACK
+#endif
+
+#ifdef RTE_LIBRTE_AF_PACKET_PMD
+#define RTE_LIBRTE_PMD_AF_PACKET
+#endif
+
+#ifdef RTE_LIBRTE_AF_XDP_PMD
+#define RTE_LIBRTE_PMD_AF_XDP
+#endif
+
+#ifdef RTE_LIBRTE_BOND_PMD
+#define RTE_LIBRTE_PMD_BOND
+#endif
+
+#ifdef RTE_LIBRTE_E1000_PMD
+#define RTE_LIBRTE_EM_PMD
+#endif
+
+#ifdef RTE_LIBRTE_E1000_PMD
+#define RTE_LIBRTE_IGB_PMD
+#endif
+
+#ifdef RTE_LIBRTE_FAILSAFE_PMD
+#define RTE_LIBRTE_PMD_FAILSAFE
+#endif
+
+#ifdef RTE_LIBRTE_KNI_PMD
+#define RTE_LIBRTE_PMD_KNI
+#endif
+
+#ifdef RTE_LIBRTE_LIQUIDIO_PMD
+#define RTE_LIBRTE_LIO_PMD
+#endif
+
+#ifdef RTE_LIBRTE_MEMIF_PMD
+#define RTE_LIBRTE_PMD_MEMIF
+#endif
+
+#ifdef RTE_LIBRTE_NULL_PMD
+#define RTE_LIBRTE_PMD_NULL
+#endif
+
+#ifdef RTE_LIBRTE_PCAP_PMD
+#define RTE_LIBRTE_PMD_PCAP
+#endif
+
+#ifdef RTE_LIBRTE_RING_PMD
+#define RTE_LIBRTE_PMD_RING
+#endif
+
+#ifdef RTE_LIBRTE_SFC_PMD
+#define RTE_LIBRTE_SFC_EFX_PMD
+#endif
+
+#ifdef RTE_LIBRTE_SOFTNIC_PMD
+#define RTE_LIBRTE_PMD_SOFTNIC
+#endif
+
+#ifdef RTE_LIBRTE_SZEDATA2_PMD
+#define RTE_LIBRTE_PMD_SZEDATA2
+#endif
+
+#ifdef RTE_LIBRTE_TAP_PMD
+#define RTE_LIBRTE_PMD_TAP
+#endif
+
+#ifdef RTE_LIBRTE_THUNDERX_PMD
+#define RTE_LIBRTE_THUNDERX_NICVF_PMD
+#endif
+
+#ifdef RTE_LIBRTE_VHOST_PMD
+#define RTE_LIBRTE_PMD_VHOST
+#endif
+
+#ifdef RTE_LIBRTE_PMD_ARMV8
+#define RTE_LIBRTE_PMD_ARMV8_CRYPTO
+#endif
+
+#ifdef RTE_LIBRTE_PMD_MVSAM
+#define RTE_LIBRTE_PMD_MVSAM_CRYPTO
+#endif
+
+#ifdef RTE_LIBRTE_PMD_OCTEONTX_COMPRESS
+#define RTE_LIBRTE_PMD_OCTEONTX_ZIPVF
+#endif
+
+#ifdef RTE_LIBRTE_PMD_OCTEONTX_EVENTDEV
+#define RTE_LIBRTE_PMD_OCTEONTX_SSOVF
+#endif
+
index 9ef3b759406df51325aa664b79f0e6b4fb22d6cb..f64b4d6341547c661f5289bbdd99093907e309d4 100644 (file)
@@ -13,6 +13,7 @@
 #define _RTE_CONFIG_H_
 
 #include <rte_build_config.h>
+#include <rte_compatibility_defines.h>
 
 /* legacy defines */
 #ifdef RTE_EXEC_ENV_LINUX
index ee883c3f9fb624d8d45a890566aecd244fde530d..bea1720a0beb115255cf46e0c902df5dead8075e 100644 (file)
@@ -8,5 +8,5 @@ endif
 drivers = ['isal', 'octeontx', 'qat', 'zlib']
 
 std_deps = ['compressdev'] # compressdev pulls in all other needed deps
-config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
+config_flag_fmt = 'RTE_LIBRTE_PMD_@0@'
 driver_name_fmt = 'rte_pmd_@0@'
index 93c2968acb81277e96d2ae9b7c3b644d9dbebc04..aef4c210ea7a7abc278232fa9526e1f0d35bb89e 100644 (file)
@@ -27,5 +27,5 @@ drivers = ['aesni_gcm',
           'zuc']
 
 std_deps = ['cryptodev'] # cryptodev pulls in all other needed deps
-config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
+config_flag_fmt = 'RTE_LIBRTE_PMD_@0@'
 driver_name_fmt = 'rte_pmd_@0@'
index ebe76a75c4cc89070e7fd8076f785186dd57cc33..f2a343147293990d8a8708268ac3e0af097ee1b2 100644 (file)
@@ -11,5 +11,5 @@ if not (toolchain == 'gcc' and cc.version().version_compare('<4.8.6') and
        drivers += 'octeontx'
 endif
 std_deps = ['eventdev', 'kvargs']
-config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD'
+config_flag_fmt = 'RTE_LIBRTE_PMD_@0@_EVENTDEV'
 driver_name_fmt = 'rte_pmd_@0@_event'
index 5f9526557371c2a1a35488b39766d4c7dc472896..b5ac483d3191a4d5e83f9cdef3e484833aea890c 100644 (file)
@@ -117,6 +117,21 @@ foreach subpath:subdirs
                                fmt_name = name
                        endif
                        dpdk_conf.set(config_flag_fmt.format(fmt_name.to_upper()),1)
+                       # for driver compatibility, since we changed the
+                       # default to match that of make. Remove in future release
+                       # after following deprecation process
+                       if config_flag_fmt.contains('_PMD_@0@') and (class == 'crypto'
+                                       or class == 'compress'
+                                       or class == 'event')
+                               alt_flag_fmt = '_@0@_PMD'.join(
+                                               config_flag_fmt.split('_PMD_@0@'))
+                               if config_flag_fmt.contains('EVENTDEV')
+                                       alt_flag_fmt = '_@0@_EVENTDEV_PMD'.join(
+                                               config_flag_fmt.split('_PMD_@0@_EVENTDEV'))
+                               endif
+                               dpdk_conf.set(alt_flag_fmt.format(
+                                               fmt_name.to_upper()), 1)
+                       endif
                        lib_name = driver_name_fmt.format(fmt_name)
 
                        dpdk_extra_ldflags += pkgconfig_extra_libs