Hi,

On 10/03, Dharmik Thakkar wrote:
>Compilation issue arises due to multiple definitions of 'bool'
>in 'ixgbe_ethdev.h'.

Which compiler would trigger this compilation issue?
And we have several "typedef int bool" in multiple drivers,

drivers/net/bnx2x/bnx2x_ethdev.h:50:typedef int bool;
drivers/net/cxgbe/cxgbe_compat.h:89:typedef int       bool;
drivers/net/e1000/base/e1000_osdep.h:61:typedef int             bool;
drivers/net/fm10k/base/fm10k_osdep.h:50:typedef int        bool;
drivers/net/ixgbe/base/ixgbe_osdep.h:86:typedef int             bool;
drivers/net/qede/base/bcm_osal.h:74:typedef int bool;
drivers/net/vmxnet3/base/vmxnet3_osdep.h:12:typedef int         bool;

Do you need to change them all?

Thanks,
Xiaolong

>
>Error:
>'/dpdk/drivers/net/ixgbe/ixgbe_ethdev.c: In function
>‘ixgbe_dev_setup_link_alarm_handler’:
>/dpdk/drivers/net/ixgbe/ixgbe_ethdev.c:4075:43:
>error: passing argument 3 of ‘ixgbe_get_link_capabilities’ from
>incompatible pointer type [-Werror=incompatible-pointer-types]
>   ixgbe_get_link_capabilities(hw, &speed, &autoneg);
>                                           ^
>In file included from /dpdk/drivers/net/ixgbe/ixgbe_ethdev.c:41:0:
>/dpdk/drivers/net/ixgbe/base/ixgbe_api.h:63:5: note: expected
>‘bool * {aka int *}’ but argument is of type ‘_Bool *’'
>
>Signed-off-by: Dharmik Thakkar <dharmik.thak...@arm.com>
>Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>
>---
> drivers/net/ixgbe/base/ixgbe_osdep.h | 4 +---
> drivers/net/ixgbe/ixgbe_ethdev.c     | 7 ++++---
> 2 files changed, 5 insertions(+), 6 deletions(-)
>
>diff --git a/drivers/net/ixgbe/base/ixgbe_osdep.h 
>b/drivers/net/ixgbe/base/ixgbe_osdep.h
>index ea8dc1cbe570..844d1701f595 100644
>--- a/drivers/net/ixgbe/base/ixgbe_osdep.h
>+++ b/drivers/net/ixgbe/base/ixgbe_osdep.h
>@@ -9,6 +9,7 @@
> #include <stdint.h>
> #include <stdio.h>
> #include <stdarg.h>
>+#include <stdbool.h>
> #include <rte_common.h>
> #include <rte_debug.h>
> #include <rte_cycles.h>
>@@ -82,9 +83,6 @@ typedef int16_t              s16;
> typedef uint32_t      u32;
> typedef int32_t               s32;
> typedef uint64_t      u64;
>-#ifndef __cplusplus
>-typedef int           bool;
>-#endif
> 
> #define mb()  rte_mb()
> #define wmb() rte_wmb()
>diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c 
>b/drivers/net/ixgbe/ixgbe_ethdev.c
>index 7eb3d0567b58..2c5d2e5f9295 100644
>--- a/drivers/net/ixgbe/ixgbe_ethdev.c
>+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>@@ -2589,7 +2589,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>       struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>       struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>       uint32_t intr_vector = 0;
>-      int err, link_up = 0, negotiate = 0;
>+      int err;
>+      bool link_up = 0, negotiate = 0;
>       uint32_t speed = 0;
>       uint32_t allowed_speeds = 0;
>       int mask = 0;
>@@ -3958,7 +3959,7 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev,
> 
> static int
> ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
>-                 int *link_up, int wait_to_complete)
>+                 bool *link_up, int wait_to_complete)
> {
>       struct ixgbe_adapter *adapter = container_of(hw,
>                                                    struct ixgbe_adapter, hw);
>@@ -4089,7 +4090,7 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
>       ixgbe_link_speed link_speed = IXGBE_LINK_SPEED_UNKNOWN;
>       struct ixgbe_interrupt *intr =
>               IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
>-      int link_up;
>+      bool link_up;
>       int diag;
>       int wait = 1;
> 
>-- 
>2.17.1
>

Reply via email to