Fixes for various build configurations. Ali Alnubani (1): net/mlx: fix build with clang 9 ^ what it says Kevin Traynor (2): kni: fix ethtool build for gcc 9 pmdinfogen: fix freebsd build ^ 18.11 branch specific Stephen Hemminger (3): eal: drop unused macros for primary process check eventdev: use same log macro for all unsupported calls eal: remove legacy PMD log macro ^ Removes unused code that was causing build failure with clang 9 Thomas Monjalon (1): net/mlx: allow build only on Linux ^ As libmnl requirement was removed, mlx4 build was being attempted on FreeBSD with meson Ali Alnubani (1): net/mlx: fix build with clang 9 Kevin Traynor (2): kni: fix ethtool build for gcc 9 pmdinfogen: fix freebsd build Stephen Hemminger (3): eal: drop unused macros for primary process check eventdev: use same log macro for all unsupported calls eal: remove legacy PMD log macro Thomas Monjalon (1): net/mlx: allow build only on Linux buildtools/pmdinfogen/meson.build | 5 ++ drivers/net/mlx4/meson.build | 11 +++- drivers/net/mlx4/mlx4_utils.h | 5 +- drivers/net/mlx5/meson.build | 10 +++- drivers/net/mlx5/mlx5_utils.h | 5 +- kernel/linux/kni/ethtool/igb/e1000_82575.c | 3 +- kernel/linux/kni/ethtool/igb/e1000_mbx.c | 1 + kernel/linux/kni/ethtool/igb/e1000_phy.c | 1 + kernel/linux/kni/ethtool/igb/igb_ethtool.c | 4 ++ kernel/linux/kni/ethtool/igb/igb_main.c | 4 ++ kernel/linux/kni/ethtool/igb/igb_param.c | 1 + kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c | 2 + kernel/linux/kni/ethtool/ixgbe/ixgbe_common.c | 1 + .../linux/kni/ethtool/ixgbe/ixgbe_ethtool.c | 1 + kernel/linux/kni/ethtool/ixgbe/ixgbe_main.c | 4 ++ lib/librte_eal/common/include/rte_dev.h | 56 +------------------ lib/librte_eventdev/rte_eventdev.c | 4 +- 17 files changed, 54 insertions(+), 64 deletions(-) -- 2.21.1
From: Stephen Hemminger <stephen@networkplumber.org> [ upstream commit e37aad5ed3f52be57a8b6e20809994c803578b13 ] No usage in current DPDK code base. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> --- lib/librte_eal/common/include/rte_dev.h | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h index 24e637d27..850b03e13 100644 --- a/lib/librte_eal/common/include/rte_dev.h +++ b/lib/librte_eal/common/include/rte_dev.h @@ -77,19 +77,4 @@ rte_pmd_debug_trace(const char *func_name, const char *fmt, ...) #endif -/* Macros for checking for restricting functions to primary instance only */ -#define RTE_PROC_PRIMARY_OR_ERR_RET(retval) do { \ - if (rte_eal_process_type() != RTE_PROC_PRIMARY) { \ - RTE_PMD_DEBUG_TRACE("Cannot run in secondary processes\n"); \ - return retval; \ - } \ -} while (0) - -#define RTE_PROC_PRIMARY_OR_RET() do { \ - if (rte_eal_process_type() != RTE_PROC_PRIMARY) { \ - RTE_PMD_DEBUG_TRACE("Cannot run in secondary processes\n"); \ - return; \ - } \ -} while (0) - /* Macros to check for invalid function pointers */ #define RTE_FUNC_PTR_OR_ERR_RET(func, retval) do { \ -- 2.21.1
From: Stephen Hemminger <stephen@networkplumber.org> [ upstream commit b5af9abaa74fc610726c631b58312cc8d77801df ] The driver already has RTE_EDEV_XXX log macros so use them in two more places. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> --- lib/librte_eventdev/rte_eventdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c index 677850cd0..6396a9649 100644 --- a/lib/librte_eventdev/rte_eventdev.c +++ b/lib/librte_eventdev/rte_eventdev.c @@ -893,5 +893,5 @@ rte_event_port_link(uint8_t dev_id, uint8_t port_id, if (*dev->dev_ops->port_link == NULL) { - RTE_PMD_DEBUG_TRACE("Function not supported\n"); + RTE_EDEV_LOG_ERR("Function not supported\n"); rte_errno = ENOTSUP; return 0; @@ -952,5 +952,5 @@ rte_event_port_unlink(uint8_t dev_id, uint8_t port_id, if (*dev->dev_ops->port_unlink == NULL) { - RTE_PMD_DEBUG_TRACE("Function not supported\n"); + RTE_EDEV_LOG_ERR("Function not supported"); rte_errno = ENOTSUP; return 0; -- 2.21.1
From: Stephen Hemminger <stephen@networkplumber.org> [ upstream commit e7d798172f911b1af74f3c54ef67e8bb18b36284 ] The RTE_PMD_DEBUG_TRACE was only enabled for EVENTDEV_DEBUG and that configuration is now handled by RTE_EDEV_LOG macros. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> --- lib/librte_eal/common/include/rte_dev.h | 41 ++----------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h index 850b03e13..d006b5743 100644 --- a/lib/librte_eal/common/include/rte_dev.h +++ b/lib/librte_eal/common/include/rte_dev.h @@ -44,50 +44,13 @@ typedef void (*rte_dev_event_cb_fn)(const char *device_name, void *cb_arg); -__attribute__((format(printf, 2, 0))) -static inline void -rte_pmd_debug_trace(const char *func_name, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - - { - char buffer[vsnprintf(NULL, 0, fmt, ap) + 1]; - - va_end(ap); - - va_start(ap, fmt); - vsnprintf(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - rte_log(RTE_LOG_ERR, RTE_LOGTYPE_PMD, "%s: %s", - func_name, buffer); - } -} - -/* - * Enable RTE_PMD_DEBUG_TRACE() when at least one component relying on the - * RTE_*_RET() macros defined below is compiled in debug mode. - */ -#if defined(RTE_LIBRTE_EVENTDEV_DEBUG) -#define RTE_PMD_DEBUG_TRACE(...) \ - rte_pmd_debug_trace(__func__, __VA_ARGS__) -#else -#define RTE_PMD_DEBUG_TRACE(...) (void)0 -#endif - /* Macros to check for invalid function pointers */ #define RTE_FUNC_PTR_OR_ERR_RET(func, retval) do { \ - if ((func) == NULL) { \ - RTE_PMD_DEBUG_TRACE("Function not supported\n"); \ + if ((func) == NULL) \ return retval; \ - } \ } while (0) #define RTE_FUNC_PTR_OR_RET(func) do { \ - if ((func) == NULL) { \ - RTE_PMD_DEBUG_TRACE("Function not supported\n"); \ + if ((func) == NULL) \ return; \ - } \ } while (0) -- 2.21.1
From: Ali Alnubani <alialnu@mellanox.com> [ upstream commit c3e89f69facbbfe131b6a6723665d48801ac943d ] This rewrites the MKSTR macro appending an empty string to its arguments to resolve build failures similar to: drivers/net/mlx4/mlx4.c:461:14: fatal error: format string is not a string literal [-Wformat-nonliteral] MKSTR(path, "%s/device/uevent", device->ibdev_path); drivers/net/mlx4/mlx4_utils.h:82:30: note: expanded from macro 'MKSTR' char name[snprintf(NULL, 0, __VA_ARGS__) + 1]; \ drivers/net/mlx5/mlx5_stats.c:144:15: fatal error: format string is not a string literal [-Wformat-nonliteral] MKSTR(path, "%s/ports/%d/hw_counters/%s", drivers/net/mlx5/mlx5_utils.h:149:30: note: expanded from macro 'MKSTR' char name[snprintf(NULL, 0, __VA_ARGS__) + 1]; \ The errors reproduce with clang version 9.0.0, and the release notes don't mention what could have caused them. Fixes: 7fae69eeff13 ("mlx4: new poll mode driver") Fixes: 771fa900b73a ("mlx5: introduce new driver for Mellanox ConnectX-4 adapters") Signed-off-by: Ali Alnubani <alialnu@mellanox.com> Signed-off-by: Matan Azrad <matan@mellanox.com> --- drivers/net/mlx4/mlx4_utils.h | 5 +++-- drivers/net/mlx5/mlx5_utils.h | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/mlx4/mlx4_utils.h b/drivers/net/mlx4/mlx4_utils.h index 2a550df88..a774ccba3 100644 --- a/drivers/net/mlx4/mlx4_utils.h +++ b/drivers/net/mlx4/mlx4_utils.h @@ -78,7 +78,8 @@ pmd_drv_log_basename(const char *s) /** Allocate a buffer on the stack and fill it with a printf format string. */ #define MKSTR(name, ...) \ - char name[snprintf(NULL, 0, __VA_ARGS__) + 1]; \ + int mkstr_size_##name = snprintf(NULL, 0, "" __VA_ARGS__); \ + char name[mkstr_size_##name + 1]; \ \ - snprintf(name, sizeof(name), __VA_ARGS__) + snprintf(name, sizeof(name), "" __VA_ARGS__) /** Generate a string out of the provided arguments. */ diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h index 97092c749..fa495b378 100644 --- a/drivers/net/mlx5/mlx5_utils.h +++ b/drivers/net/mlx5/mlx5_utils.h @@ -147,7 +147,8 @@ extern int mlx5_logtype; /* Allocate a buffer on the stack and fill it with a printf format string. */ #define MKSTR(name, ...) \ - char name[snprintf(NULL, 0, __VA_ARGS__) + 1]; \ + int mkstr_size_##name = snprintf(NULL, 0, "" __VA_ARGS__); \ + char name[mkstr_size_##name + 1]; \ \ - snprintf(name, sizeof(name), __VA_ARGS__) + snprintf(name, sizeof(name), "" __VA_ARGS__) /** -- 2.21.1
Add fall through comments to switch statements. This is not an issue on DPDK master branch as ethtool for KNI has been removed. Signed-off-by: Kevin Traynor <ktraynor@redhat.com> Cc: Ferruh Yigit <ferruh.yigit@intel.com> --- kernel/linux/kni/ethtool/igb/e1000_82575.c | 3 ++- kernel/linux/kni/ethtool/igb/e1000_mbx.c | 1 + kernel/linux/kni/ethtool/igb/e1000_phy.c | 1 + kernel/linux/kni/ethtool/igb/igb_ethtool.c | 4 ++++ kernel/linux/kni/ethtool/igb/igb_main.c | 4 ++++ kernel/linux/kni/ethtool/igb/igb_param.c | 1 + kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c | 2 ++ kernel/linux/kni/ethtool/ixgbe/ixgbe_common.c | 1 + kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c | 1 + kernel/linux/kni/ethtool/ixgbe/ixgbe_main.c | 4 ++++ 10 files changed, 21 insertions(+), 1 deletion(-) diff --git a/kernel/linux/kni/ethtool/igb/e1000_82575.c b/kernel/linux/kni/ethtool/igb/e1000_82575.c index 98346709d..7ab4b44a8 100644 --- a/kernel/linux/kni/ethtool/igb/e1000_82575.c +++ b/kernel/linux/kni/ethtool/igb/e1000_82575.c @@ -1634,5 +1634,5 @@ static s32 e1000_setup_serdes_link_82575(struct e1000_hw *hw) /* disable PCS autoneg and support parallel detect only */ pcs_autoneg = false; - /* fall through to default case */ + /* fallthrough */ default: if (hw->mac.type == e1000_82575 || @@ -1761,4 +1761,5 @@ static s32 e1000_get_media_type_82575(struct e1000_hw *hw) } /* fall through for I2C based SGMII */ + /* fallthrough */ case E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES: /* read media type from SFP EEPROM */ diff --git a/kernel/linux/kni/ethtool/igb/e1000_mbx.c b/kernel/linux/kni/ethtool/igb/e1000_mbx.c index 1be443491..18e660532 100644 --- a/kernel/linux/kni/ethtool/igb/e1000_mbx.c +++ b/kernel/linux/kni/ethtool/igb/e1000_mbx.c @@ -505,4 +505,5 @@ s32 e1000_init_mbx_params_pf(struct e1000_hw *hw) mbx->stats.acks = 0; mbx->stats.rsts = 0; + /* fallthrough */ default: return E1000_SUCCESS; diff --git a/kernel/linux/kni/ethtool/igb/e1000_phy.c b/kernel/linux/kni/ethtool/igb/e1000_phy.c index 1934a309c..5257b9141 100644 --- a/kernel/linux/kni/ethtool/igb/e1000_phy.c +++ b/kernel/linux/kni/ethtool/igb/e1000_phy.c @@ -1206,4 +1206,5 @@ s32 e1000_copper_link_setup_m88_gen2(struct e1000_hw *hw) break; } + /* fallthrough */ case 0: default: diff --git a/kernel/linux/kni/ethtool/igb/igb_ethtool.c b/kernel/linux/kni/ethtool/igb/igb_ethtool.c index b6bddc025..a35f3da7d 100644 --- a/kernel/linux/kni/ethtool/igb/igb_ethtool.c +++ b/kernel/linux/kni/ethtool/igb/igb_ethtool.c @@ -2565,7 +2565,9 @@ static int igb_get_rss_hash_opts(struct igb_adapter *adapter, case TCP_V4_FLOW: cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; + /* fallthrough */ case UDP_V4_FLOW: if (adapter->flags & IGB_FLAG_RSS_FIELD_IPV4_UDP) cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; + /* fallthrough */ case SCTP_V4_FLOW: case AH_ESP_V4_FLOW: @@ -2577,7 +2579,9 @@ static int igb_get_rss_hash_opts(struct igb_adapter *adapter, case TCP_V6_FLOW: cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; + /* fallthrough */ case UDP_V6_FLOW: if (adapter->flags & IGB_FLAG_RSS_FIELD_IPV6_UDP) cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; + /* fallthrough */ case SCTP_V6_FLOW: case AH_ESP_V6_FLOW: diff --git a/kernel/linux/kni/ethtool/igb/igb_main.c b/kernel/linux/kni/ethtool/igb/igb_main.c index 69d3ea5fa..cb1b53677 100644 --- a/kernel/linux/kni/ethtool/igb/igb_main.c +++ b/kernel/linux/kni/ethtool/igb/igb_main.c @@ -1042,4 +1042,5 @@ static void igb_set_interrupt_capability(struct igb_adapter *adapter, bool msix) "Falling back to MSI interrupts.\n"); igb_reset_interrupt_capability(adapter); + /* fallthrough */ case IGB_INT_MODE_MSI: if (!pci_enable_msi(pdev)) @@ -4586,4 +4587,5 @@ bool igb_has_link(struct igb_adapter *adapter) if (!hw->mac.get_link_status) return true; + /* fallthrough */ case e1000_media_type_internal_serdes: e1000_check_for_link(hw); @@ -9562,4 +9564,5 @@ static void igb_vmm_control(struct igb_adapter *adapter) E1000_DTXCTL_SPOOF_INT); E1000_WRITE_REG(hw, E1000_DTXCTL, reg); + /* fallthrough */ case e1000_82580: /* enable replication vlan tag stripping */ @@ -9567,4 +9570,5 @@ static void igb_vmm_control(struct igb_adapter *adapter) reg |= E1000_RPLOLR_STRVLAN; E1000_WRITE_REG(hw, E1000_RPLOLR, reg); + /* fallthrough */ case e1000_i350: case e1000_i354: diff --git a/kernel/linux/kni/ethtool/igb/igb_param.c b/kernel/linux/kni/ethtool/igb/igb_param.c index 98209a101..2aca46ca1 100644 --- a/kernel/linux/kni/ethtool/igb/igb_param.c +++ b/kernel/linux/kni/ethtool/igb/igb_param.c @@ -610,4 +610,5 @@ void igb_check_options(struct igb_adapter *adapter) if (adapter->rss_queues) break; + /* fallthrough */ case 0: adapter->rss_queues = min_t(u32, opt.arg.r.max, num_online_cpus()); diff --git a/kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c index 3f1591230..10e670663 100644 --- a/kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c +++ b/kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c @@ -1582,4 +1582,5 @@ s32 ixgbe_fdir_set_input_mask_82599(struct ixgbe_hw *hw, /* mask VLAN ID, fall through to mask VLAN priority */ fdirm |= IXGBE_FDIRM_VLANID; + /* fallthrough */ case 0x0FFF: /* mask VLAN priority */ @@ -1762,4 +1763,5 @@ s32 ixgbe_fdir_add_perfect_filter_82599(struct ixgbe_hw *hw, return IXGBE_ERR_CONFIG; } + /* fallthrough */ case IXGBE_ATR_FLOW_TYPE_TCPV4: case IXGBE_ATR_FLOW_TYPE_UDPV4: diff --git a/kernel/linux/kni/ethtool/ixgbe/ixgbe_common.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_common.c index e9b9529a2..f17562dd8 100644 --- a/kernel/linux/kni/ethtool/ixgbe/ixgbe_common.c +++ b/kernel/linux/kni/ethtool/ixgbe/ixgbe_common.c @@ -3852,4 +3852,5 @@ void ixgbe_set_rxpba_generic(struct ixgbe_hw *hw, int num_pb, u32 headroom, IXGBE_WRITE_REG(hw, IXGBE_RXPBSIZE(i), rxpktsize); /* Fall through to configure remaining packet buffers */ + /* fallthrough */ case PBA_STRATEGY_EQUAL: rxpktsize = (pbsize / (num_pb - i)) << IXGBE_RXPBSIZE_SHIFT; diff --git a/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c index f2ded19e9..a03a77ff2 100644 --- a/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c +++ b/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c @@ -1781,4 +1781,5 @@ static int ixgbe_wol_exclusion(struct ixgbe_adapter *adapter, break; } + /* fallthrough */ case IXGBE_SUBDEV_ID_82599_SFP: retval = 0; diff --git a/kernel/linux/kni/ethtool/ixgbe/ixgbe_main.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_main.c index a5acf19c5..c9b255345 100644 --- a/kernel/linux/kni/ethtool/ixgbe/ixgbe_main.c +++ b/kernel/linux/kni/ethtool/ixgbe/ixgbe_main.c @@ -841,4 +841,5 @@ static bool ixgbe_is_sfp(struct ixgbe_hw *hw) if (hw->mac.type == ixgbe_mac_82598EB) return true; + /* fallthrough */ default: return false; @@ -1419,4 +1420,5 @@ static int ixgbe_sw_init(struct ixgbe_adapter *adapter) case ixgbe_mac_X540: adapter->flags2 |= IXGBE_FLAG2_TEMP_SENSOR_CAPABLE; + /* fallthrough */ case ixgbe_mac_82599EB: adapter->flags |= IXGBE_FLAG_MSI_CAPABLE | @@ -2034,4 +2036,5 @@ void ixgbe_update_stats(struct ixgbe_adapter *adapter) hwstats->b2ospc += IXGBE_READ_REG(hw, IXGBE_B2OSPC); hwstats->b2ogprc += IXGBE_READ_REG(hw, IXGBE_B2OGPRC); + /* fallthrough */ case ixgbe_mac_82599EB: for (i = 0; i < 16; i++) @@ -2682,4 +2685,5 @@ int ixgbe_kni_probe(struct pci_dev *pdev, if (hw->bus.func != 0) break; + /* fallthrough */ case IXGBE_SUBDEV_ID_82599_SFP: adapter->wol = IXGBE_WUFC_MAG; -- 2.21.1
rte_compat.h is needed as part of the fixed commit but it could not be found with meson on FreeBSD causing a build failure. Add it's include directory. This is not an issue on DPDK master branch since rte_compat.h was moved under lib/eal. Fixes: 3e41c8bc7584 ("eal: add ack interrupt API") Signed-off-by: Kevin Traynor <ktraynor@redhat.com> Cc: Neil Horman <nhorman@tuxdriver.com> --- buildtools/pmdinfogen/meson.build | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/buildtools/pmdinfogen/meson.build b/buildtools/pmdinfogen/meson.build index a219a8e96..ab2b20032 100644 --- a/buildtools/pmdinfogen/meson.build +++ b/buildtools/pmdinfogen/meson.build @@ -4,4 +4,9 @@ pmdinfogen_inc = eal_inc pmdinfogen_inc += include_directories('../../lib/librte_pci') + +if host_machine.system() == 'freebsd' + pmdinfogen_inc += include_directories('../../lib/librte_compat') +endif + pmdinfogen = executable('pmdinfogen', 'pmdinfogen.c', -- 2.21.1
From: Thomas Monjalon <thomas@monjalon.net> [ upstream commit 3dee3f1b52127fac8943cbcb08e11328ef666046 ] Currently mlx4/mlx5 support only Linux. Fixes: 39a7ab1c14e2 ("net/mlx4: remove dependency on libmnl in meson") Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Matan Azrad <matan@mellanox.com> --- drivers/net/mlx4/meson.build | 11 +++++++++-- drivers/net/mlx5/meson.build | 10 +++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build index 4145f5db3..ebad30a04 100644 --- a/drivers/net/mlx4/meson.build +++ b/drivers/net/mlx4/meson.build @@ -3,4 +3,11 @@ # Copyright 2018 Mellanox Technologies, Ltd +if host_machine.system() != 'linux' + build = false + reason = 'only supported on Linux' + subdir_done() +endif +build = true + pmd_dlopen = get_option('enable_driver_mlx_glue') LIB_GLUE_BASE = 'librte_pmd_mlx4_glue.so' @@ -14,9 +21,9 @@ if pmd_dlopen ] endif + libs = [ cc.find_library('mlx4', required:false), cc.find_library('ibverbs', required:false), ] -build = true foreach lib:libs if not lib.found() @@ -24,5 +31,5 @@ foreach lib:libs endif endforeach -# Compile PMD + if build allow_experimental_apis = true diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build index 81965bddc..87b267a25 100644 --- a/drivers/net/mlx5/meson.build +++ b/drivers/net/mlx5/meson.build @@ -3,4 +3,11 @@ # Copyright 2018 Mellanox Technologies, Ltd +if host_machine.system() != 'linux' + build = false + reason = 'only supported on Linux' + subdir_done() +endif +build = true + pmd_dlopen = get_option('enable_driver_mlx_glue') LIB_GLUE_BASE = 'librte_pmd_mlx5_glue.so' @@ -14,4 +21,5 @@ if pmd_dlopen ] endif + libs = [ cc.find_library('mnl', required:false), @@ -19,5 +27,4 @@ libs = [ cc.find_library('ibverbs', required:false), ] -build = true foreach lib:libs if not lib.found() @@ -25,4 +32,5 @@ foreach lib:libs endif endforeach + if build allow_experimental_apis = true -- 2.21.1
On Thu, Jan 09, 2020 at 01:34:32PM +0000, Kevin Traynor wrote:
> rte_compat.h is needed as part of the fixed commit
> but it could not be found with meson on FreeBSD causing
> a build failure. Add it's include directory.
>
> This is not an issue on DPDK master branch since
> rte_compat.h was moved under lib/eal.
>
> Fixes: 3e41c8bc7584 ("eal: add ack interrupt API")
>
> Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
> Cc: Neil Horman <nhorman@tuxdriver.com>
> ---
> buildtools/pmdinfogen/meson.build | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/buildtools/pmdinfogen/meson.build b/buildtools/pmdinfogen/meson.build
> index a219a8e96..ab2b20032 100644
> --- a/buildtools/pmdinfogen/meson.build
> +++ b/buildtools/pmdinfogen/meson.build
> @@ -4,4 +4,9 @@
> pmdinfogen_inc = eal_inc
> pmdinfogen_inc += include_directories('../../lib/librte_pci')
> +
> +if host_machine.system() == 'freebsd'
> + pmdinfogen_inc += include_directories('../../lib/librte_compat')
> +endif
> +
> pmdinfogen = executable('pmdinfogen',
> 'pmdinfogen.c',
> --
> 2.21.1
>
>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
On Thu, Jan 09, 2020 at 01:34:32PM +0000, Kevin Traynor wrote: > rte_compat.h is needed as part of the fixed commit > but it could not be found with meson on FreeBSD causing > a build failure. Add it's include directory. > > This is not an issue on DPDK master branch since > rte_compat.h was moved under lib/eal. > > Fixes: 3e41c8bc7584 ("eal: add ack interrupt API") > > Signed-off-by: Kevin Traynor <ktraynor@redhat.com> > Cc: Neil Horman <nhorman@tuxdriver.com> > --- > buildtools/pmdinfogen/meson.build | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/buildtools/pmdinfogen/meson.build b/buildtools/pmdinfogen/meson.build > index a219a8e96..ab2b20032 100644 > --- a/buildtools/pmdinfogen/meson.build > +++ b/buildtools/pmdinfogen/meson.build > @@ -4,4 +4,9 @@ > pmdinfogen_inc = eal_inc > pmdinfogen_inc += include_directories('../../lib/librte_pci') > + > +if host_machine.system() == 'freebsd' > + pmdinfogen_inc += include_directories('../../lib/librte_compat') > +endif > + Actually, is there a corresponding Makefile change that needs to be made here too? Neil > pmdinfogen = executable('pmdinfogen', > 'pmdinfogen.c', > -- > 2.21.1 > >
On 09/01/2020 15:53, Neil Horman wrote: > On Thu, Jan 09, 2020 at 01:34:32PM +0000, Kevin Traynor wrote: >> rte_compat.h is needed as part of the fixed commit >> but it could not be found with meson on FreeBSD causing >> a build failure. Add it's include directory. >> >> This is not an issue on DPDK master branch since >> rte_compat.h was moved under lib/eal. >> >> Fixes: 3e41c8bc7584 ("eal: add ack interrupt API") >> >> Signed-off-by: Kevin Traynor <ktraynor@redhat.com> >> Cc: Neil Horman <nhorman@tuxdriver.com> >> --- >> buildtools/pmdinfogen/meson.build | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/buildtools/pmdinfogen/meson.build b/buildtools/pmdinfogen/meson.build >> index a219a8e96..ab2b20032 100644 >> --- a/buildtools/pmdinfogen/meson.build >> +++ b/buildtools/pmdinfogen/meson.build >> @@ -4,4 +4,9 @@ >> pmdinfogen_inc = eal_inc >> pmdinfogen_inc += include_directories('../../lib/librte_pci') >> + >> +if host_machine.system() == 'freebsd' >> + pmdinfogen_inc += include_directories('../../lib/librte_compat') >> +endif >> + > Actually, is there a corresponding Makefile change that needs to be made here > too? > It is building ok with make, so the header seems to getting pulled in already along the way with the make build system. Kevin. > Neil > >> pmdinfogen = executable('pmdinfogen', >> 'pmdinfogen.c', >> -- >> 2.21.1 >> >> >
On 09/01/2020 13:34, Kevin Traynor wrote:
> Fixes for various build configurations.
>
> Ali Alnubani (1):
> net/mlx: fix build with clang 9
>
> ^ what it says
>
> Kevin Traynor (2):
> kni: fix ethtool build for gcc 9
> pmdinfogen: fix freebsd build
>
> ^ 18.11 branch specific
>
> Stephen Hemminger (3):
> eal: drop unused macros for primary process check
> eventdev: use same log macro for all unsupported calls
> eal: remove legacy PMD log macro
>
> ^ Removes unused code that was causing build failure with clang 9
>
> Thomas Monjalon (1):
> net/mlx: allow build only on Linux
>
> ^ As libmnl requirement was removed, mlx4 build was being attempted on FreeBSD with meson
>
> Ali Alnubani (1):
> net/mlx: fix build with clang 9
>
> Kevin Traynor (2):
> kni: fix ethtool build for gcc 9
> pmdinfogen: fix freebsd build
>
> Stephen Hemminger (3):
> eal: drop unused macros for primary process check
> eventdev: use same log macro for all unsupported calls
> eal: remove legacy PMD log macro
>
> Thomas Monjalon (1):
> net/mlx: allow build only on Linux
>
> buildtools/pmdinfogen/meson.build | 5 ++
> drivers/net/mlx4/meson.build | 11 +++-
> drivers/net/mlx4/mlx4_utils.h | 5 +-
> drivers/net/mlx5/meson.build | 10 +++-
> drivers/net/mlx5/mlx5_utils.h | 5 +-
> kernel/linux/kni/ethtool/igb/e1000_82575.c | 3 +-
> kernel/linux/kni/ethtool/igb/e1000_mbx.c | 1 +
> kernel/linux/kni/ethtool/igb/e1000_phy.c | 1 +
> kernel/linux/kni/ethtool/igb/igb_ethtool.c | 4 ++
> kernel/linux/kni/ethtool/igb/igb_main.c | 4 ++
> kernel/linux/kni/ethtool/igb/igb_param.c | 1 +
> kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c | 2 +
> kernel/linux/kni/ethtool/ixgbe/ixgbe_common.c | 1 +
> .../linux/kni/ethtool/ixgbe/ixgbe_ethtool.c | 1 +
> kernel/linux/kni/ethtool/ixgbe/ixgbe_main.c | 4 ++
> lib/librte_eal/common/include/rte_dev.h | 56 +------------------
> lib/librte_eventdev/rte_eventdev.c | 4 +-
> 17 files changed, 54 insertions(+), 64 deletions(-)
>
Will push tomorrow if there are no objections.
On 13/01/2020 16:16, Kevin Traynor wrote:
> On 09/01/2020 13:34, Kevin Traynor wrote:
>> Fixes for various build configurations.
>>
>> Ali Alnubani (1):
>> net/mlx: fix build with clang 9
>>
>> ^ what it says
>>
>> Kevin Traynor (2):
>> kni: fix ethtool build for gcc 9
>> pmdinfogen: fix freebsd build
>>
>> ^ 18.11 branch specific
>>
>> Stephen Hemminger (3):
>> eal: drop unused macros for primary process check
>> eventdev: use same log macro for all unsupported calls
>> eal: remove legacy PMD log macro
>>
>> ^ Removes unused code that was causing build failure with clang 9
>>
>> Thomas Monjalon (1):
>> net/mlx: allow build only on Linux
>>
>> ^ As libmnl requirement was removed, mlx4 build was being attempted on FreeBSD with meson
>>
>> Ali Alnubani (1):
>> net/mlx: fix build with clang 9
>>
>> Kevin Traynor (2):
>> kni: fix ethtool build for gcc 9
>> pmdinfogen: fix freebsd build
>>
>> Stephen Hemminger (3):
>> eal: drop unused macros for primary process check
>> eventdev: use same log macro for all unsupported calls
>> eal: remove legacy PMD log macro
>>
>> Thomas Monjalon (1):
>> net/mlx: allow build only on Linux
>>
>> buildtools/pmdinfogen/meson.build | 5 ++
>> drivers/net/mlx4/meson.build | 11 +++-
>> drivers/net/mlx4/mlx4_utils.h | 5 +-
>> drivers/net/mlx5/meson.build | 10 +++-
>> drivers/net/mlx5/mlx5_utils.h | 5 +-
>> kernel/linux/kni/ethtool/igb/e1000_82575.c | 3 +-
>> kernel/linux/kni/ethtool/igb/e1000_mbx.c | 1 +
>> kernel/linux/kni/ethtool/igb/e1000_phy.c | 1 +
>> kernel/linux/kni/ethtool/igb/igb_ethtool.c | 4 ++
>> kernel/linux/kni/ethtool/igb/igb_main.c | 4 ++
>> kernel/linux/kni/ethtool/igb/igb_param.c | 1 +
>> kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c | 2 +
>> kernel/linux/kni/ethtool/ixgbe/ixgbe_common.c | 1 +
>> .../linux/kni/ethtool/ixgbe/ixgbe_ethtool.c | 1 +
>> kernel/linux/kni/ethtool/ixgbe/ixgbe_main.c | 4 ++
>> lib/librte_eal/common/include/rte_dev.h | 56 +------------------
>> lib/librte_eventdev/rte_eventdev.c | 4 +-
>> 17 files changed, 54 insertions(+), 64 deletions(-)
>>
>
> Will push tomorrow if there are no objections.
>
Pushed these fixes.