* [dpdk-stable] [RFC PATCH 1/5] app: fix missing dependencies [not found] <20200916164429.244847-1-bruce.richardson@intel.com> @ 2020-09-16 16:44 ` Bruce Richardson 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 2/5] examples/l2fwd-crypto: fix missing dependency Bruce Richardson ` (6 subsequent siblings) 7 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-09-16 16:44 UTC (permalink / raw) To: david.marchand; +Cc: dev, Bruce Richardson, stable A number of lib and driver dependencies for various apps were missed on build because the proper macro names for their use were mismatched between meson and make build systems. Before adding in equivalent compatibility macros we need to ensure to add the proper dependencies to ensure a valid build. Fixes: 16ade738fd0d ("app/testpmd: build with meson") Fixes: b5dc795a8a55 ("test: build app with meson as dpdk-test") Fixes: 996ef1176111 ("app: add all remaining apps to meson build") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- app/test-crypto-perf/meson.build | 3 +++ app/test-pmd/meson.build | 12 ++++++++++++ app/test/meson.build | 3 +++ 3 files changed, 18 insertions(+) diff --git a/app/test-crypto-perf/meson.build b/app/test-crypto-perf/meson.build index f394b75ba5..4bd71510dc 100644 --- a/app/test-crypto-perf/meson.build +++ b/app/test-crypto-perf/meson.build @@ -12,3 +12,6 @@ sources = files('cperf_ops.c', 'cperf_test_verify.c', 'main.c') deps += ['cryptodev', 'net', 'security'] +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build index ea56e547bb..ed7dddec7b 100644 --- a/app/test-pmd/meson.build +++ b/app/test-pmd/meson.build @@ -28,6 +28,18 @@ deps += ['ethdev', 'gro', 'gso', 'cmdline', 'metrics', 'meter', 'bus_pci'] if dpdk_conf.has('RTE_LIBRTE_PDUMP') deps += 'pdump' endif +if dpdk_conf.has('RTE_LIBRTE_BITRATESTATS') + deps += 'bitratestats' +endif +if dpdk_conf.has('RTE_LIBRTE_LATENCYSTATS') + deps += 'latencystats' +endif +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif +if dpdk_conf.has('RTE_LIBRTE_BOND_PMD') + deps += 'pmd_bond' +endif if dpdk_conf.has('RTE_LIBRTE_BNXT_PMD') deps += 'pmd_bnxt' endif diff --git a/app/test/meson.build b/app/test/meson.build index 786a213972..31e3de3724 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -344,6 +344,9 @@ endif if dpdk_conf.has('RTE_LIBRTE_SKELETON_EVENTDEV_PMD') test_deps += 'pmd_skeleton_event' endif +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + test_deps += 'pmd_crypto_scheduler' +endif if dpdk_conf.has('RTE_LIBRTE_TELEMETRY') test_sources += 'test_telemetry_json.c' fast_tests += [['telemetry_json_autotest', true]] -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [RFC PATCH 2/5] examples/l2fwd-crypto: fix missing dependency [not found] <20200916164429.244847-1-bruce.richardson@intel.com> 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 1/5] app: fix missing dependencies Bruce Richardson @ 2020-09-16 16:44 ` Bruce Richardson 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 3/5] meson: fix compatibility with make build defines Bruce Richardson ` (5 subsequent siblings) 7 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-09-16 16:44 UTC (permalink / raw) To: david.marchand; +Cc: dev, Bruce Richardson, stable When the crypto-scheduler support is enabled, we were missing the dependency on it as part of the meson build. Fixes: 89f0711f9ddf ("examples: build some samples with meson") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l2fwd-crypto/meson.build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/l2fwd-crypto/meson.build b/examples/l2fwd-crypto/meson.build index 6c852ad199..39e1604fac 100644 --- a/examples/l2fwd-crypto/meson.build +++ b/examples/l2fwd-crypto/meson.build @@ -7,6 +7,9 @@ # DPDK instance, use 'make' deps += 'cryptodev' +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif allow_experimental_apis = true sources = files( 'main.c' -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [RFC PATCH 3/5] meson: fix compatibility with make build defines [not found] <20200916164429.244847-1-bruce.richardson@intel.com> 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 1/5] app: fix missing dependencies Bruce Richardson 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 2/5] examples/l2fwd-crypto: fix missing dependency Bruce Richardson @ 2020-09-16 16:44 ` Bruce Richardson 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 4/5] build: add defines for compatibility with make build Bruce Richardson ` (4 subsequent siblings) 7 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-09-16 16:44 UTC (permalink / raw) To: david.marchand; +Cc: dev, Bruce Richardson, stable 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, and puts in a deprecation notice to allow future removal of the meson-original defines. This ensures compatibility for these macros with both meson and make from older versions. 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> --- doc/guides/rel_notes/deprecation.rst | 8 ++++++++ drivers/compress/meson.build | 2 +- drivers/crypto/meson.build | 2 +- drivers/event/meson.build | 2 +- drivers/meson.build | 15 +++++++++++++++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 52168f7751..5b5a52fa65 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -11,6 +11,14 @@ here. Deprecation Notices ------------------- +* build: The macros defined to indicate which crypto drivers, event drivers + and which compression drivers have been + included in the meson build are changing format from + ``RTE_LIBRTE_<name>_PMD`` to ``RTE_LIBRTE_PMD_<name>`` to match those + macros used for the drivers in the make build. Both sets of macros + are present in this release, but those ending in ``_PMD`` will be removed + in a future release, and should not be used. + * meson: The minimum supported version of meson for configuring and building DPDK will be increased to v0.47.1 (from 0.41) from DPDK 19.05 onwards. For those users with a version earlier than 0.47.1, an updated copy of meson diff --git a/drivers/compress/meson.build b/drivers/compress/meson.build index ee883c3f9f..bea1720a0b 100644 --- a/drivers/compress/meson.build +++ b/drivers/compress/meson.build @@ -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@' diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build index a2423507ad..25b99c19cb 100644 --- a/drivers/crypto/meson.build +++ b/drivers/crypto/meson.build @@ -26,5 +26,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@' diff --git a/drivers/event/meson.build b/drivers/event/meson.build index ebe76a75c4..f2a3431472 100644 --- a/drivers/event/meson.build +++ b/drivers/event/meson.build @@ -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' diff --git a/drivers/meson.build b/drivers/meson.build index 5f95265573..b5ac483d31 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -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 -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [RFC PATCH 4/5] build: add defines for compatibility with make build [not found] <20200916164429.244847-1-bruce.richardson@intel.com> ` (2 preceding siblings ...) 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 3/5] meson: fix compatibility with make build defines Bruce Richardson @ 2020-09-16 16:44 ` Bruce Richardson [not found] ` <20201002155855.622456-1-bruce.richardson@intel.com> ` (3 subsequent siblings) 7 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-09-16 16:44 UTC (permalink / raw) To: david.marchand; +Cc: dev, Bruce Richardson, stable While meson has standardized the names and macros used for the libraries and drivers in DPDK, the old macros used from the make system were not previously announced as deprecated. Therefore to ensure compatibility of apps being rebuilt, we add these defines back in when appropriate. Fixes: 5b9656b157d3 ("lib: build with meson") Fixes: 9314afb68a53 ("drivers: add infrastructure for meson build") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- config/meson.build | 3 +- config/rte_compatibility_defines.h | 129 +++++++++++++++++++++++++++ config/rte_config.h | 1 + doc/guides/rel_notes/deprecation.rst | 9 ++ 4 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 config/rte_compatibility_defines.h diff --git a/config/meson.build b/config/meson.build index 6996e5cbea..ef74cebaaa 100644 --- a/config/meson.build +++ b/config/meson.build @@ -245,7 +245,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 index 0000000000..47600052b6 --- /dev/null +++ b/config/rte_compatibility_defines.h @@ -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 + diff --git a/config/rte_config.h b/config/rte_config.h index 0bae630fd9..cacc1837cf 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -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 diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 5b5a52fa65..fe1b988bb8 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -19,6 +19,15 @@ Deprecation Notices are present in this release, but those ending in ``_PMD`` will be removed in a future release, and should not be used. +* build: A number of macros, which defined what DPDK components were being + built, are deprecated due to them not conforming to the standard naming + scheme for the relevant library template or driver class template. These + deprecated macros can be found in the file + ``config/rte_compatibility_defines.h``, listed in the format ``#ifdef + <NEW_DEFINE> \ #define <OLD_DEFINE> \ #endif``. When updating code, + ``OLD_DEFINE`` should be replaced with the relevant ``NEW_DEFINE`` from + that file. + * meson: The minimum supported version of meson for configuring and building DPDK will be increased to v0.47.1 (from 0.41) from DPDK 19.05 onwards. For those users with a version earlier than 0.47.1, an updated copy of meson -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <20201002155855.622456-1-bruce.richardson@intel.com>]
* [dpdk-stable] [RFC PATCH v2 1/8] app: fix missing dependencies [not found] ` <20201002155855.622456-1-bruce.richardson@intel.com> @ 2020-10-02 15:58 ` Bruce Richardson 2020-10-02 15:58 ` [dpdk-stable] [RFC PATCH v2 2/8] examples/l2fwd-crypto: fix missing dependency Bruce Richardson 2020-10-02 15:58 ` [dpdk-stable] [RFC PATCH v2 3/8] build: add defines for compatibility with make build Bruce Richardson 2 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-10-02 15:58 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, Bruce Richardson, stable A number of lib and driver dependencies for various apps were missed on build because the proper macro names for their use were mismatched between meson and make build systems. Before adding in equivalent compatibility macros we need to ensure to add the proper dependencies to ensure a valid build. Fixes: 16ade738fd0d ("app/testpmd: build with meson") Fixes: b5dc795a8a55 ("test: build app with meson as dpdk-test") Fixes: 996ef1176111 ("app: add all remaining apps to meson build") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- app/test-crypto-perf/meson.build | 3 +++ app/test-pmd/meson.build | 12 ++++++++++++ app/test/meson.build | 3 +++ 3 files changed, 18 insertions(+) diff --git a/app/test-crypto-perf/meson.build b/app/test-crypto-perf/meson.build index f394b75ba5..4bd71510dc 100644 --- a/app/test-crypto-perf/meson.build +++ b/app/test-crypto-perf/meson.build @@ -12,3 +12,6 @@ sources = files('cperf_ops.c', 'cperf_test_verify.c', 'main.c') deps += ['cryptodev', 'net', 'security'] +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build index f52ab148f6..0d9e450494 100644 --- a/app/test-pmd/meson.build +++ b/app/test-pmd/meson.build @@ -31,6 +31,18 @@ endif if dpdk_conf.has('RTE_LIBRTE_PDUMP') deps += 'pdump' endif +if dpdk_conf.has('RTE_LIBRTE_BITRATESTATS') + deps += 'bitratestats' +endif +if dpdk_conf.has('RTE_LIBRTE_LATENCYSTATS') + deps += 'latencystats' +endif +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif +if dpdk_conf.has('RTE_LIBRTE_BOND_PMD') + deps += 'pmd_bond' +endif if dpdk_conf.has('RTE_LIBRTE_BNXT_PMD') deps += 'pmd_bnxt' endif diff --git a/app/test/meson.build b/app/test/meson.build index 181e870290..781555f9de 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -346,6 +346,9 @@ endif if dpdk_conf.has('RTE_LIBRTE_SKELETON_EVENTDEV_PMD') test_deps += 'pmd_skeleton_event' endif +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + test_deps += 'pmd_crypto_scheduler' +endif if dpdk_conf.has('RTE_LIBRTE_TELEMETRY') test_sources += 'test_telemetry_json.c' fast_tests += [['telemetry_json_autotest', true]] -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [RFC PATCH v2 2/8] examples/l2fwd-crypto: fix missing dependency [not found] ` <20201002155855.622456-1-bruce.richardson@intel.com> 2020-10-02 15:58 ` [dpdk-stable] [RFC PATCH v2 1/8] app: fix missing dependencies Bruce Richardson @ 2020-10-02 15:58 ` Bruce Richardson 2020-10-02 15:58 ` [dpdk-stable] [RFC PATCH v2 3/8] build: add defines for compatibility with make build Bruce Richardson 2 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-10-02 15:58 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, Bruce Richardson, stable When the crypto-scheduler support is enabled, we were missing the dependency on it as part of the meson build. Fixes: 89f0711f9ddf ("examples: build some samples with meson") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l2fwd-crypto/meson.build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/l2fwd-crypto/meson.build b/examples/l2fwd-crypto/meson.build index 6c852ad199..39e1604fac 100644 --- a/examples/l2fwd-crypto/meson.build +++ b/examples/l2fwd-crypto/meson.build @@ -7,6 +7,9 @@ # DPDK instance, use 'make' deps += 'cryptodev' +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif allow_experimental_apis = true sources = files( 'main.c' -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [RFC PATCH v2 3/8] build: add defines for compatibility with make build [not found] ` <20201002155855.622456-1-bruce.richardson@intel.com> 2020-10-02 15:58 ` [dpdk-stable] [RFC PATCH v2 1/8] app: fix missing dependencies Bruce Richardson 2020-10-02 15:58 ` [dpdk-stable] [RFC PATCH v2 2/8] examples/l2fwd-crypto: fix missing dependency Bruce Richardson @ 2020-10-02 15:58 ` Bruce Richardson 2 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-10-02 15:58 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, Bruce Richardson, stable 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> --- config/meson.build | 3 +- config/rte_compatibility_defines.h | 129 +++++++++++++++++++++++++++++ config/rte_config.h | 1 + drivers/compress/meson.build | 2 +- drivers/crypto/meson.build | 2 +- drivers/event/meson.build | 2 +- drivers/meson.build | 15 ++++ 7 files changed, 150 insertions(+), 4 deletions(-) create mode 100644 config/rte_compatibility_defines.h diff --git a/config/meson.build b/config/meson.build index 69f2aeb605..3a36d9dd4c 100644 --- a/config/meson.build +++ b/config/meson.build @@ -254,7 +254,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 index 0000000000..47600052b6 --- /dev/null +++ b/config/rte_compatibility_defines.h @@ -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 + diff --git a/config/rte_config.h b/config/rte_config.h index 0bae630fd9..cacc1837cf 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -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 diff --git a/drivers/compress/meson.build b/drivers/compress/meson.build index ee883c3f9f..bea1720a0b 100644 --- a/drivers/compress/meson.build +++ b/drivers/compress/meson.build @@ -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@' diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build index a2423507ad..25b99c19cb 100644 --- a/drivers/crypto/meson.build +++ b/drivers/crypto/meson.build @@ -26,5 +26,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@' diff --git a/drivers/event/meson.build b/drivers/event/meson.build index ebe76a75c4..f2a3431472 100644 --- a/drivers/event/meson.build +++ b/drivers/event/meson.build @@ -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' diff --git a/drivers/meson.build b/drivers/meson.build index 5f95265573..b5ac483d31 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -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 -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <20201014141304.632120-1-bruce.richardson@intel.com>]
* [dpdk-stable] [PATCH v3 1/7] app: fix missing dependencies [not found] ` <20201014141304.632120-1-bruce.richardson@intel.com> @ 2020-10-14 14:12 ` Bruce Richardson 2020-10-15 10:32 ` Luca Boccassi 2020-10-14 14:12 ` [dpdk-stable] [PATCH v3 2/7] examples/l2fwd-crypto: fix missing dependency Bruce Richardson 2020-10-14 14:13 ` [dpdk-stable] [PATCH v3 3/7] build: add defines for compatibility with make build Bruce Richardson 2 siblings, 1 reply; 20+ messages in thread From: Bruce Richardson @ 2020-10-14 14:12 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, bluca, Bruce Richardson, stable A number of lib and driver dependencies for various apps were missed on build because the proper macro names for their use were mismatched between meson and make build systems. Before adding in equivalent compatibility macros we need to ensure to add the proper dependencies to ensure a valid build. Fixes: 16ade738fd0d ("app/testpmd: build with meson") Fixes: b5dc795a8a55 ("test: build app with meson as dpdk-test") Fixes: 996ef1176111 ("app: add all remaining apps to meson build") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- app/test-crypto-perf/meson.build | 3 +++ app/test-pmd/meson.build | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/app/test-crypto-perf/meson.build b/app/test-crypto-perf/meson.build index f394b75ba..4bd71510d 100644 --- a/app/test-crypto-perf/meson.build +++ b/app/test-crypto-perf/meson.build @@ -12,3 +12,6 @@ sources = files('cperf_ops.c', 'cperf_test_verify.c', 'main.c') deps += ['cryptodev', 'net', 'security'] +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build index f52ab148f..0d9e45049 100644 --- a/app/test-pmd/meson.build +++ b/app/test-pmd/meson.build @@ -31,6 +31,18 @@ endif if dpdk_conf.has('RTE_LIBRTE_PDUMP') deps += 'pdump' endif +if dpdk_conf.has('RTE_LIBRTE_BITRATESTATS') + deps += 'bitratestats' +endif +if dpdk_conf.has('RTE_LIBRTE_LATENCYSTATS') + deps += 'latencystats' +endif +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif +if dpdk_conf.has('RTE_LIBRTE_BOND_PMD') + deps += 'pmd_bond' +endif if dpdk_conf.has('RTE_LIBRTE_BNXT_PMD') deps += 'pmd_bnxt' endif -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-stable] [PATCH v3 1/7] app: fix missing dependencies 2020-10-14 14:12 ` [dpdk-stable] [PATCH v3 1/7] app: fix missing dependencies Bruce Richardson @ 2020-10-15 10:32 ` Luca Boccassi 0 siblings, 0 replies; 20+ messages in thread From: Luca Boccassi @ 2020-10-15 10:32 UTC (permalink / raw) To: Bruce Richardson, dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, stable On Wed, 2020-10-14 at 15:12 +0100, Bruce Richardson wrote: > A number of lib and driver dependencies for various apps were missed on > build because the proper macro names for their use were mismatched between > meson and make build systems. Before adding in equivalent compatibility > macros we need to ensure to add the proper dependencies to ensure a valid > build. > > Fixes: 16ade738fd0d ("app/testpmd: build with meson") > Fixes: b5dc795a8a55 ("test: build app with meson as dpdk-test") > Fixes: 996ef1176111 ("app: add all remaining apps to meson build") > Cc: stable@dpdk.org > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> > --- > app/test-crypto-perf/meson.build | 3 +++ > app/test-pmd/meson.build | 12 ++++++++++++ > 2 files changed, 15 insertions(+) Acked-by: Luca Boccassi <bluca@debian.org> -- Kind regards, Luca Boccassi ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [PATCH v3 2/7] examples/l2fwd-crypto: fix missing dependency [not found] ` <20201014141304.632120-1-bruce.richardson@intel.com> 2020-10-14 14:12 ` [dpdk-stable] [PATCH v3 1/7] app: fix missing dependencies Bruce Richardson @ 2020-10-14 14:12 ` Bruce Richardson 2020-10-15 10:32 ` Luca Boccassi 2020-10-14 14:13 ` [dpdk-stable] [PATCH v3 3/7] build: add defines for compatibility with make build Bruce Richardson 2 siblings, 1 reply; 20+ messages in thread From: Bruce Richardson @ 2020-10-14 14:12 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, bluca, Bruce Richardson, stable When the crypto-scheduler support is enabled, we were missing the dependency on it as part of the meson build. Fixes: 89f0711f9ddf ("examples: build some samples with meson") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l2fwd-crypto/meson.build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/l2fwd-crypto/meson.build b/examples/l2fwd-crypto/meson.build index 6c852ad19..39e1604fa 100644 --- a/examples/l2fwd-crypto/meson.build +++ b/examples/l2fwd-crypto/meson.build @@ -7,6 +7,9 @@ # DPDK instance, use 'make' deps += 'cryptodev' +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif allow_experimental_apis = true sources = files( 'main.c' -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-stable] [PATCH v3 2/7] examples/l2fwd-crypto: fix missing dependency 2020-10-14 14:12 ` [dpdk-stable] [PATCH v3 2/7] examples/l2fwd-crypto: fix missing dependency Bruce Richardson @ 2020-10-15 10:32 ` Luca Boccassi 0 siblings, 0 replies; 20+ messages in thread From: Luca Boccassi @ 2020-10-15 10:32 UTC (permalink / raw) To: Bruce Richardson, dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, stable On Wed, 2020-10-14 at 15:12 +0100, Bruce Richardson wrote: > When the crypto-scheduler support is enabled, we were missing the > dependency on it as part of the meson build. > > Fixes: 89f0711f9ddf ("examples: build some samples with meson") > Cc: stable@dpdk.org > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> > --- > examples/l2fwd-crypto/meson.build | 3 +++ > 1 file changed, 3 insertions(+) Acked-by: Luca Boccassi <bluca@debian.org> -- Kind regards, Luca Boccassi ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [PATCH v3 3/7] build: add defines for compatibility with make build [not found] ` <20201014141304.632120-1-bruce.richardson@intel.com> 2020-10-14 14:12 ` [dpdk-stable] [PATCH v3 1/7] app: fix missing dependencies Bruce Richardson 2020-10-14 14:12 ` [dpdk-stable] [PATCH v3 2/7] examples/l2fwd-crypto: fix missing dependency Bruce Richardson @ 2020-10-14 14:13 ` Bruce Richardson 2020-10-15 10:31 ` Luca Boccassi 2 siblings, 1 reply; 20+ messages in thread From: Bruce Richardson @ 2020-10-14 14:13 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, bluca, Bruce Richardson, stable 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> --- app/test/meson.build | 1 + config/meson.build | 3 +- config/rte_compatibility_defines.h | 129 +++++++++++++++++++++++++++++ config/rte_config.h | 1 + drivers/compress/meson.build | 2 +- drivers/crypto/meson.build | 2 +- drivers/event/meson.build | 2 +- drivers/meson.build | 15 ++++ 8 files changed, 151 insertions(+), 4 deletions(-) create mode 100644 config/rte_compatibility_defines.h diff --git a/app/test/meson.build b/app/test/meson.build index dedf29dd7..fc90a1909 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -415,6 +415,7 @@ endif if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') driver_test_names += 'cryptodev_scheduler_autotest' + test_deps += 'pmd_crypto_scheduler' endif foreach d:test_deps diff --git a/config/meson.build b/config/meson.build index d0e593226..89bffc85a 100644 --- a/config/meson.build +++ b/config/meson.build @@ -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 index 000000000..47600052b --- /dev/null +++ b/config/rte_compatibility_defines.h @@ -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 + diff --git a/config/rte_config.h b/config/rte_config.h index 03d90d78b..1bebab335 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -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 diff --git a/drivers/compress/meson.build b/drivers/compress/meson.build index ee883c3f9..bea1720a0 100644 --- a/drivers/compress/meson.build +++ b/drivers/compress/meson.build @@ -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@' diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build index a2423507a..25b99c19c 100644 --- a/drivers/crypto/meson.build +++ b/drivers/crypto/meson.build @@ -26,5 +26,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@' diff --git a/drivers/event/meson.build b/drivers/event/meson.build index ebe76a75c..f2a343147 100644 --- a/drivers/event/meson.build +++ b/drivers/event/meson.build @@ -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' diff --git a/drivers/meson.build b/drivers/meson.build index 5f9526557..b5ac483d3 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -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 -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-stable] [PATCH v3 3/7] build: add defines for compatibility with make build 2020-10-14 14:13 ` [dpdk-stable] [PATCH v3 3/7] build: add defines for compatibility with make build Bruce Richardson @ 2020-10-15 10:31 ` Luca Boccassi 2020-10-15 11:20 ` Bruce Richardson 0 siblings, 1 reply; 20+ messages in thread From: Luca Boccassi @ 2020-10-15 10:31 UTC (permalink / raw) To: Bruce Richardson, dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, stable On Wed, 2020-10-14 at 15:13 +0100, Bruce Richardson wrote: > 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> > --- > app/test/meson.build | 1 + > config/meson.build | 3 +- > config/rte_compatibility_defines.h | 129 +++++++++++++++++++++++++++++ > config/rte_config.h | 1 + > drivers/compress/meson.build | 2 +- > drivers/crypto/meson.build | 2 +- > drivers/event/meson.build | 2 +- > drivers/meson.build | 15 ++++ > 8 files changed, 151 insertions(+), 4 deletions(-) > create mode 100644 config/rte_compatibility_defines.h > > diff --git a/app/test/meson.build b/app/test/meson.build > index dedf29dd7..fc90a1909 100644 > --- a/app/test/meson.build > +++ b/app/test/meson.build > @@ -415,6 +415,7 @@ endif > > if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') > driver_test_names += 'cryptodev_scheduler_autotest' > + test_deps += 'pmd_crypto_scheduler' > endif > > foreach d:test_deps This change looks out of place in this patch? Was it supposed to be part of one of the previous commits maybe? Other than that, Acked-by: Luca Boccassi <bluca@debian.org> -- Kind regards, Luca Boccassi ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-stable] [PATCH v3 3/7] build: add defines for compatibility with make build 2020-10-15 10:31 ` Luca Boccassi @ 2020-10-15 11:20 ` Bruce Richardson 0 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-10-15 11:20 UTC (permalink / raw) To: Luca Boccassi Cc: dev, david.marchand, arybchenko, ferruh.yigit, thomas, stable On Thu, Oct 15, 2020 at 11:31:18AM +0100, Luca Boccassi wrote: > On Wed, 2020-10-14 at 15:13 +0100, Bruce Richardson wrote: > > 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> > > --- > > app/test/meson.build | 1 + > > config/meson.build | 3 +- > > config/rte_compatibility_defines.h | 129 +++++++++++++++++++++++++++++ > > config/rte_config.h | 1 + > > drivers/compress/meson.build | 2 +- > > drivers/crypto/meson.build | 2 +- > > drivers/event/meson.build | 2 +- > > drivers/meson.build | 15 ++++ > > 8 files changed, 151 insertions(+), 4 deletions(-) > > create mode 100644 config/rte_compatibility_defines.h > > > > diff --git a/app/test/meson.build b/app/test/meson.build > > index dedf29dd7..fc90a1909 100644 > > --- a/app/test/meson.build > > +++ b/app/test/meson.build > > @@ -415,6 +415,7 @@ endif > > > > if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') > > driver_test_names += 'cryptodev_scheduler_autotest' > > + test_deps += 'pmd_crypto_scheduler' > > endif > > > > foreach d:test_deps > > This change looks out of place in this patch? Was it supposed to be > part of one of the previous commits maybe? > > Other than that, > > Acked-by: Luca Boccassi <bluca@debian.org> > Yes, it looks like it probably should be. I'll investigate and do a v5 (since I had v4 already done before I saw this comment!) /Bruce ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <20201015110359.706644-1-bruce.richardson@intel.com>]
* [dpdk-stable] [PATCH v4 1/8] app: fix missing dependencies [not found] ` <20201015110359.706644-1-bruce.richardson@intel.com> @ 2020-10-15 11:03 ` Bruce Richardson 2020-10-15 11:03 ` [dpdk-stable] [PATCH v4 2/8] examples/l2fwd-crypto: fix missing dependency Bruce Richardson 2020-10-15 11:03 ` [dpdk-stable] [PATCH v4 3/8] build: add defines for compatibility with make build Bruce Richardson 2 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-10-15 11:03 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, bluca, Bruce Richardson, stable, Declan Doherty, Wenzhuo Lu, Beilei Xing, Bernard Iremonger, Keith Wiles, Luca Boccassi, Harry van Haaren A number of lib and driver dependencies for various apps were missed on build because the proper macro names for their use were mismatched between meson and make build systems. Before adding in equivalent compatibility macros we need to ensure to add the proper dependencies to ensure a valid build. Fixes: 16ade738fd0d ("app/testpmd: build with meson") Fixes: b5dc795a8a55 ("test: build app with meson as dpdk-test") Fixes: 996ef1176111 ("app: add all remaining apps to meson build") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- app/test-crypto-perf/meson.build | 3 +++ app/test-pmd/meson.build | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/app/test-crypto-perf/meson.build b/app/test-crypto-perf/meson.build index f394b75ba..4bd71510d 100644 --- a/app/test-crypto-perf/meson.build +++ b/app/test-crypto-perf/meson.build @@ -12,3 +12,6 @@ sources = files('cperf_ops.c', 'cperf_test_verify.c', 'main.c') deps += ['cryptodev', 'net', 'security'] +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build index f52ab148f..0d9e45049 100644 --- a/app/test-pmd/meson.build +++ b/app/test-pmd/meson.build @@ -31,6 +31,18 @@ endif if dpdk_conf.has('RTE_LIBRTE_PDUMP') deps += 'pdump' endif +if dpdk_conf.has('RTE_LIBRTE_BITRATESTATS') + deps += 'bitratestats' +endif +if dpdk_conf.has('RTE_LIBRTE_LATENCYSTATS') + deps += 'latencystats' +endif +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif +if dpdk_conf.has('RTE_LIBRTE_BOND_PMD') + deps += 'pmd_bond' +endif if dpdk_conf.has('RTE_LIBRTE_BNXT_PMD') deps += 'pmd_bnxt' endif -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [PATCH v4 2/8] examples/l2fwd-crypto: fix missing dependency [not found] ` <20201015110359.706644-1-bruce.richardson@intel.com> 2020-10-15 11:03 ` [dpdk-stable] [PATCH v4 1/8] app: fix missing dependencies Bruce Richardson @ 2020-10-15 11:03 ` Bruce Richardson 2020-10-15 11:03 ` [dpdk-stable] [PATCH v4 3/8] build: add defines for compatibility with make build Bruce Richardson 2 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-10-15 11:03 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, bluca, Bruce Richardson, stable, Declan Doherty When the crypto-scheduler support is enabled, we were missing the dependency on it as part of the meson build. Fixes: 89f0711f9ddf ("examples: build some samples with meson") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l2fwd-crypto/meson.build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/l2fwd-crypto/meson.build b/examples/l2fwd-crypto/meson.build index 6c852ad19..39e1604fa 100644 --- a/examples/l2fwd-crypto/meson.build +++ b/examples/l2fwd-crypto/meson.build @@ -7,6 +7,9 @@ # DPDK instance, use 'make' deps += 'cryptodev' +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif allow_experimental_apis = true sources = files( 'main.c' -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [PATCH v4 3/8] build: add defines for compatibility with make build [not found] ` <20201015110359.706644-1-bruce.richardson@intel.com> 2020-10-15 11:03 ` [dpdk-stable] [PATCH v4 1/8] app: fix missing dependencies Bruce Richardson 2020-10-15 11:03 ` [dpdk-stable] [PATCH v4 2/8] examples/l2fwd-crypto: fix missing dependency Bruce Richardson @ 2020-10-15 11:03 ` Bruce Richardson 2 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-10-15 11:03 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, bluca, Bruce Richardson, stable, Fiona Trahe, Ashish Gupta, Luca Boccassi, Harry van Haaren, Keith Wiles, Pablo de Lara, Lee Daly 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> --- app/test/meson.build | 1 + config/meson.build | 3 +- config/rte_compatibility_defines.h | 129 +++++++++++++++++++++++++++++ config/rte_config.h | 1 + drivers/compress/meson.build | 2 +- drivers/crypto/meson.build | 2 +- drivers/event/meson.build | 2 +- drivers/meson.build | 15 ++++ 8 files changed, 151 insertions(+), 4 deletions(-) create mode 100644 config/rte_compatibility_defines.h diff --git a/app/test/meson.build b/app/test/meson.build index dedf29dd7..fc90a1909 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -415,6 +415,7 @@ endif if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') driver_test_names += 'cryptodev_scheduler_autotest' + test_deps += 'pmd_crypto_scheduler' endif foreach d:test_deps diff --git a/config/meson.build b/config/meson.build index d0e593226..89bffc85a 100644 --- a/config/meson.build +++ b/config/meson.build @@ -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 index 000000000..47600052b --- /dev/null +++ b/config/rte_compatibility_defines.h @@ -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 + diff --git a/config/rte_config.h b/config/rte_config.h index 03d90d78b..1bebab335 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -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 diff --git a/drivers/compress/meson.build b/drivers/compress/meson.build index ee883c3f9..bea1720a0 100644 --- a/drivers/compress/meson.build +++ b/drivers/compress/meson.build @@ -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@' diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build index a2423507a..25b99c19c 100644 --- a/drivers/crypto/meson.build +++ b/drivers/crypto/meson.build @@ -26,5 +26,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@' diff --git a/drivers/event/meson.build b/drivers/event/meson.build index ebe76a75c..f2a343147 100644 --- a/drivers/event/meson.build +++ b/drivers/event/meson.build @@ -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' diff --git a/drivers/meson.build b/drivers/meson.build index 5f9526557..b5ac483d3 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -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 -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <20201015150554.950838-1-bruce.richardson@intel.com>]
* [dpdk-stable] [PATCH v5 1/8] app: fix missing dependencies [not found] ` <20201015150554.950838-1-bruce.richardson@intel.com> @ 2020-10-15 15:05 ` Bruce Richardson 2020-10-15 15:05 ` [dpdk-stable] [PATCH v5 2/8] examples/l2fwd-crypto: fix missing dependency Bruce Richardson 2020-10-15 15:05 ` [dpdk-stable] [PATCH v5 3/8] build: add defines for compatibility with make build Bruce Richardson 2 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-10-15 15:05 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, bluca, Bruce Richardson, stable, Declan Doherty, Wenzhuo Lu, Beilei Xing, Bernard Iremonger, Harry van Haaren, Luca Boccassi, Keith Wiles A number of lib and driver dependencies for various apps were missed on build because the proper macro names for their use were mismatched between meson and make build systems. Before adding in equivalent compatibility macros we need to ensure to add the proper dependencies to ensure a valid build. Fixes: 16ade738fd0d ("app/testpmd: build with meson") Fixes: b5dc795a8a55 ("test: build app with meson as dpdk-test") Fixes: 996ef1176111 ("app: add all remaining apps to meson build") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org> --- app/test-crypto-perf/meson.build | 3 +++ app/test-pmd/meson.build | 12 ++++++++++++ app/test/meson.build | 1 + 3 files changed, 16 insertions(+) diff --git a/app/test-crypto-perf/meson.build b/app/test-crypto-perf/meson.build index f394b75ba..4bd71510d 100644 --- a/app/test-crypto-perf/meson.build +++ b/app/test-crypto-perf/meson.build @@ -12,3 +12,6 @@ sources = files('cperf_ops.c', 'cperf_test_verify.c', 'main.c') deps += ['cryptodev', 'net', 'security'] +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build index f52ab148f..0d9e45049 100644 --- a/app/test-pmd/meson.build +++ b/app/test-pmd/meson.build @@ -31,6 +31,18 @@ endif if dpdk_conf.has('RTE_LIBRTE_PDUMP') deps += 'pdump' endif +if dpdk_conf.has('RTE_LIBRTE_BITRATESTATS') + deps += 'bitratestats' +endif +if dpdk_conf.has('RTE_LIBRTE_LATENCYSTATS') + deps += 'latencystats' +endif +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif +if dpdk_conf.has('RTE_LIBRTE_BOND_PMD') + deps += 'pmd_bond' +endif if dpdk_conf.has('RTE_LIBRTE_BNXT_PMD') deps += 'pmd_bnxt' endif diff --git a/app/test/meson.build b/app/test/meson.build index dedf29dd7..fc90a1909 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -415,6 +415,7 @@ endif if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') driver_test_names += 'cryptodev_scheduler_autotest' + test_deps += 'pmd_crypto_scheduler' endif foreach d:test_deps -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [PATCH v5 2/8] examples/l2fwd-crypto: fix missing dependency [not found] ` <20201015150554.950838-1-bruce.richardson@intel.com> 2020-10-15 15:05 ` [dpdk-stable] [PATCH v5 1/8] app: fix missing dependencies Bruce Richardson @ 2020-10-15 15:05 ` Bruce Richardson 2020-10-15 15:05 ` [dpdk-stable] [PATCH v5 3/8] build: add defines for compatibility with make build Bruce Richardson 2 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-10-15 15:05 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, bluca, Bruce Richardson, stable, Declan Doherty When the crypto-scheduler support is enabled, we were missing the dependency on it as part of the meson build. Fixes: 89f0711f9ddf ("examples: build some samples with meson") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org> --- examples/l2fwd-crypto/meson.build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/l2fwd-crypto/meson.build b/examples/l2fwd-crypto/meson.build index 6c852ad19..39e1604fa 100644 --- a/examples/l2fwd-crypto/meson.build +++ b/examples/l2fwd-crypto/meson.build @@ -7,6 +7,9 @@ # DPDK instance, use 'make' deps += 'cryptodev' +if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER') + deps += 'pmd_crypto_scheduler' +endif allow_experimental_apis = true sources = files( 'main.c' -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-stable] [PATCH v5 3/8] build: add defines for compatibility with make build [not found] ` <20201015150554.950838-1-bruce.richardson@intel.com> 2020-10-15 15:05 ` [dpdk-stable] [PATCH v5 1/8] app: fix missing dependencies Bruce Richardson 2020-10-15 15:05 ` [dpdk-stable] [PATCH v5 2/8] examples/l2fwd-crypto: fix missing dependency Bruce Richardson @ 2020-10-15 15:05 ` Bruce Richardson 2 siblings, 0 replies; 20+ messages in thread From: Bruce Richardson @ 2020-10-15 15:05 UTC (permalink / raw) To: dev Cc: david.marchand, arybchenko, ferruh.yigit, thomas, bluca, Bruce Richardson, stable, Fiona Trahe, Ashish Gupta, Harry van Haaren, Keith Wiles, Luca Boccassi, Lee Daly, Pablo de Lara 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 | 3 +- config/rte_compatibility_defines.h | 129 +++++++++++++++++++++++++++++ config/rte_config.h | 1 + drivers/compress/meson.build | 2 +- drivers/crypto/meson.build | 2 +- drivers/event/meson.build | 2 +- drivers/meson.build | 15 ++++ 7 files changed, 150 insertions(+), 4 deletions(-) create mode 100644 config/rte_compatibility_defines.h diff --git a/config/meson.build b/config/meson.build index e2ea9f1d8..258b01d06 100644 --- a/config/meson.build +++ b/config/meson.build @@ -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 index 000000000..47600052b --- /dev/null +++ b/config/rte_compatibility_defines.h @@ -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 + diff --git a/config/rte_config.h b/config/rte_config.h index 03d90d78b..1bebab335 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -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 diff --git a/drivers/compress/meson.build b/drivers/compress/meson.build index ee883c3f9..bea1720a0 100644 --- a/drivers/compress/meson.build +++ b/drivers/compress/meson.build @@ -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@' diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build index a2423507a..25b99c19c 100644 --- a/drivers/crypto/meson.build +++ b/drivers/crypto/meson.build @@ -26,5 +26,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@' diff --git a/drivers/event/meson.build b/drivers/event/meson.build index ebe76a75c..f2a343147 100644 --- a/drivers/event/meson.build +++ b/drivers/event/meson.build @@ -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' diff --git a/drivers/meson.build b/drivers/meson.build index 5f9526557..b5ac483d3 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -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 -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2020-10-15 15:07 UTC | newest] Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20200916164429.244847-1-bruce.richardson@intel.com> 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 1/5] app: fix missing dependencies Bruce Richardson 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 2/5] examples/l2fwd-crypto: fix missing dependency Bruce Richardson 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 3/5] meson: fix compatibility with make build defines Bruce Richardson 2020-09-16 16:44 ` [dpdk-stable] [RFC PATCH 4/5] build: add defines for compatibility with make build Bruce Richardson [not found] ` <20201002155855.622456-1-bruce.richardson@intel.com> 2020-10-02 15:58 ` [dpdk-stable] [RFC PATCH v2 1/8] app: fix missing dependencies Bruce Richardson 2020-10-02 15:58 ` [dpdk-stable] [RFC PATCH v2 2/8] examples/l2fwd-crypto: fix missing dependency Bruce Richardson 2020-10-02 15:58 ` [dpdk-stable] [RFC PATCH v2 3/8] build: add defines for compatibility with make build Bruce Richardson [not found] ` <20201014141304.632120-1-bruce.richardson@intel.com> 2020-10-14 14:12 ` [dpdk-stable] [PATCH v3 1/7] app: fix missing dependencies Bruce Richardson 2020-10-15 10:32 ` Luca Boccassi 2020-10-14 14:12 ` [dpdk-stable] [PATCH v3 2/7] examples/l2fwd-crypto: fix missing dependency Bruce Richardson 2020-10-15 10:32 ` Luca Boccassi 2020-10-14 14:13 ` [dpdk-stable] [PATCH v3 3/7] build: add defines for compatibility with make build Bruce Richardson 2020-10-15 10:31 ` Luca Boccassi 2020-10-15 11:20 ` Bruce Richardson [not found] ` <20201015110359.706644-1-bruce.richardson@intel.com> 2020-10-15 11:03 ` [dpdk-stable] [PATCH v4 1/8] app: fix missing dependencies Bruce Richardson 2020-10-15 11:03 ` [dpdk-stable] [PATCH v4 2/8] examples/l2fwd-crypto: fix missing dependency Bruce Richardson 2020-10-15 11:03 ` [dpdk-stable] [PATCH v4 3/8] build: add defines for compatibility with make build Bruce Richardson [not found] ` <20201015150554.950838-1-bruce.richardson@intel.com> 2020-10-15 15:05 ` [dpdk-stable] [PATCH v5 1/8] app: fix missing dependencies Bruce Richardson 2020-10-15 15:05 ` [dpdk-stable] [PATCH v5 2/8] examples/l2fwd-crypto: fix missing dependency Bruce Richardson 2020-10-15 15:05 ` [dpdk-stable] [PATCH v5 3/8] build: add defines for compatibility with make build Bruce Richardson
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).