From: Dharmik Thakkar <Dharmik.Thakkar@arm.com>
To: Ye Xiaolong <xiaolong.ye@intel.com>
Cc: Wenzhuo Lu <wenzhuo.lu@intel.com>,
Konstantin Ananyev <konstantin.ananyev@intel.com>,
dev <dev@dpdk.org>,
Stephen Hemminger <stephen@networkplumber.org>,
Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>,
nd <nd@arm.com>
Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: avoid multpile definitions of 'bool'
Date: Wed, 16 Oct 2019 16:22:34 +0000 [thread overview]
Message-ID: <85E0BB1B-964C-48A7-A703-0E6938EF3785@arm.com> (raw)
In-Reply-To: <20191016062317.GN3725@intel.com>
Hi Ye,
Thank you for the comments!
> On Oct 16, 2019, at 1:23 AM, Ye Xiaolong <xiaolong.ye@intel.com> wrote:
>
> 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?
gcc version 7.4.0
Compilation issue arises when ’stdbool.h’ gets included along with one of the header files with 'typedef int bool;’,
thereby leading to multiple definitions of ‘bool’.
I faced this issue while working on 'https://patches.dpdk.org/patch/58333/‘ wherein I included
‘rte_rcu_qsbr.h’ (which includes ’stdbool.h’) in ‘rte_hash.h’.
Now, ‘ixgbe_ethdev.c’ includes ’stdbool.h’ (<- rte_rcu_qsbr.h <- rte_hash.h) along with
‘ixgbe_osdep.h’ (<- ixgbe_type.h <- ixgbe_api.h <- ixgbe_ethdev.h) which has 'typedef int bool;’
> 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?
Yes, I will fix these and submit a patch series.
>
> 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.thakkar@arm.com>
>> Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@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
>>
next prev parent reply other threads:[~2019-10-16 16:22 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-03 22:44 Dharmik Thakkar
2019-10-16 6:23 ` Ye Xiaolong
2019-10-16 16:22 ` Dharmik Thakkar [this message]
2020-01-02 17:48 ` [dpdk-dev] [PATCH v2 0/7] remove 'typedef int bool' Dharmik Thakkar
2020-01-02 17:48 ` [dpdk-dev] [PATCH v2 1/7] net/ixgbe: avoid multpile definitions of 'bool' Dharmik Thakkar
2020-01-10 9:22 ` Ferruh Yigit
2020-01-10 20:55 ` Dharmik Thakkar
2020-01-02 17:48 ` [dpdk-dev] [PATCH v2 2/7] net/cxgbe: remove 'typedef int bool' Dharmik Thakkar
2020-01-02 17:48 ` [dpdk-dev] [PATCH v2 3/7] net/vmxnet3: " Dharmik Thakkar
2020-01-02 19:53 ` Yong Wang
2020-01-02 17:48 ` [dpdk-dev] [PATCH v2 4/7] net/bnx2x: " Dharmik Thakkar
2020-01-02 17:48 ` [dpdk-dev] [PATCH v2 5/7] net/e1000: " Dharmik Thakkar
2020-01-02 17:48 ` [dpdk-dev] [PATCH v2 6/7] net/fm10k: " Dharmik Thakkar
2020-01-03 1:34 ` Wang, Xiao W
2020-01-02 17:48 ` [dpdk-dev] [PATCH v2 7/7] net/qede: " Dharmik Thakkar
2020-01-10 20:51 ` [dpdk-dev] [PATCH v3 0/7] " Dharmik Thakkar
2020-01-10 20:51 ` [dpdk-dev] [PATCH v3 1/7] net/ixgbe: avoid multpile definitions of 'bool' Dharmik Thakkar
2020-01-10 20:51 ` [dpdk-dev] [PATCH v3 2/7] net/cxgbe: remove 'typedef int bool' Dharmik Thakkar
2020-01-10 20:51 ` [dpdk-dev] [PATCH v3 3/7] net/vmxnet3: " Dharmik Thakkar
2020-01-10 20:51 ` [dpdk-dev] [PATCH v3 4/7] net/bnx2x: " Dharmik Thakkar
2020-01-10 20:51 ` [dpdk-dev] [PATCH v3 5/7] net/e1000: " Dharmik Thakkar
2020-01-10 20:51 ` [dpdk-dev] [PATCH v3 6/7] net/fm10k: " Dharmik Thakkar
2020-01-10 20:51 ` [dpdk-dev] [PATCH v3 7/7] net/qede: " Dharmik Thakkar
2020-01-13 11:14 ` [dpdk-dev] [PATCH v3 0/7] " Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=85E0BB1B-964C-48A7-A703-0E6938EF3785@arm.com \
--to=dharmik.thakkar@arm.com \
--cc=Honnappa.Nagarahalli@arm.com \
--cc=dev@dpdk.org \
--cc=konstantin.ananyev@intel.com \
--cc=nd@arm.com \
--cc=stephen@networkplumber.org \
--cc=wenzhuo.lu@intel.com \
--cc=xiaolong.ye@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).