[dpdk-dev] [PATCH v3 6/6] ena: fix for icc compiler
Ferruh Yigit
ferruh.yigit at intel.com
Fri Jul 8 16:07:02 CEST 2016
On 7/8/2016 2:23 PM, Bruce Richardson wrote:
> On Tue, Jul 05, 2016 at 09:52:09AM +0100, Ferruh Yigit wrote:
>> On 6/30/2016 4:04 PM, Jan Medala wrote:
>>> Signed-off-by: Alexander Matushevsky <matua at amazon.com>
>>> Signed-off-by: Jakub Palider <jpa at semihalf.com>
>>> Signed-off-by: Jan Medala <jan at semihalf.com>
>>
>> The compilation error to fix is [1], it may be good to add what to fix
>> into commit log.
>>
>> [1]
>> == Build drivers/net/ena
>> CC ena_ethdev.o
>> /tmp/dpdk_maintain/ena_v3/dpdk/drivers/net/ena/ena_ethdev.c(943): error
>> #188: enumerated type mixed with another type
>> struct ena_com_create_io_ctx ctx = { 0 };
>> ^
>>
>> /tmp/dpdk_maintain/ena_v3/dpdk/drivers/net/ena/ena_ethdev.c(1036): error
>> #188: enumerated type mixed with another type
>> struct ena_com_create_io_ctx ctx = { 0 };
>> ^
>> ...
>>
>>> --- a/drivers/net/ena/ena_ethdev.c
>>> +++ b/drivers/net/ena/ena_ethdev.c
>>> @@ -940,7 +940,10 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
>>> __rte_unused unsigned int socket_id,
>>> __rte_unused const struct rte_eth_txconf *tx_conf)
>>> {
>>> - struct ena_com_create_io_ctx ctx = { 0 };
>>> + struct ena_com_create_io_ctx ctx =
>>> + /* policy set to _HOST just to satisfy icc compiler */
>>> + { ENA_ADMIN_PLACEMENT_POLICY_HOST,
>>> + ENA_COM_IO_QUEUE_DIRECTION_TX, 0, 0, 0, 0 };
>>
>> Trailing "0" are not required, compiler will take care of them.
>>
> Actually, given that this is a structure init and not an array, the trailing
> zeros are actually required, since we are not using C99 designated initializers.
As far as I know same thing is valid for both array and struct.
uninitialized values set to default values.
c.c:
----
struct mys {
int a;
int b;
int c;
};
int main(int argc, char *argv[])
{
struct mys s = {99};
return 0;
}
gcc -S -std=c90 c.c
c.s:
----
...
movl %edi, -20(%rbp)
movq %rsi, -32(%rbp)
movq $0, -16(%rbp) <----
movl $0, -8(%rbp) <----
movl $99, -16(%rbp)
movl $0, %eax
popq %rbp
ret
...
> Therefore, I'll leave the zeros in - if anyone wants to convert the format of
> the initializers to c99 style later, and remove the trailing zeros then, it can
> go as a separate patch. I'll just merge this fix in with patch 1 that introduces
> the issue.
>
> /Bruce
>
More information about the dev
mailing list