It looks like that API file intentionally has an empty struct as a
placeholder:
/** ODP platform initialization data.
* @note ODP API does nothing with this data. It is the underlying
* implementation that requires it and any data passed here is not portable.
* It is required that the application takes care of identifying and
* passing any required platform specific data.
*/
typedef struct odp_platform_init_t {
} odp_platform_init_t;
Since it is an API file we shouldn't change this without Petri's
involvement and in any event its a separate issue from the strong type one
which covers the bulk of these warnings. My suggestion would be to go with
this linux-generic patch for now and then perhaps pick up an API patch to
cover the latter warning as part of v1.1.
Make sense?
On Fri, Mar 13, 2015 at 2:10 PM, Bill Fischofer <[email protected]>
wrote:
> Ok, thanks. I'll look into that.
>
> Bill
>
> On Fri, Mar 13, 2015 at 2:04 PM, Mike Holmes <[email protected]>
> wrote:
>
>> This patch removes nearly all the warnings, I observed one straggler
>> though
>>
>> In file included from ../../platform/linux-generic/include/odp/init.h:28:
>> ../../include/odp/api/init.h:121:9: warning: empty struct has size 0 in
>> C, size 1 in C++ [-Wextern-c-compat]
>> typedef struct odp_platform_init_t {
>>
>> my procedure:-
>>
>> ./bootstrap
>> ./configure --enable-test-perf --enable-test-vald --enable-test-cpp
>> make clean
>> make CXX=clang++
>>
>>
>> On 12 March 2015 at 17:36, Bill Fischofer <[email protected]>
>> wrote:
>>
>>> C++ doesn't like null structs so add a dummy variable to make it happy.
>>> Note that we only use these types as pseudo-pointers for strong typing
>>> so the contents of what they apparently point to is irrelevant since
>>> we never reference it.
>>>
>>> This addresses Bug https://bugs.linaro.org/show_bug.cgi?id=1267
>>>
>>> Signed-off-by: Bill Fischofer <[email protected]>
>>> ---
>>> platform/linux-generic/include/odp/plat/strong_types.h | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/platform/linux-generic/include/odp/plat/strong_types.h
>>> b/platform/linux-generic/include/odp/plat/strong_types.h
>>> index 7fe73d8..72db7c4 100644
>>> --- a/platform/linux-generic/include/odp/plat/strong_types.h
>>> +++ b/platform/linux-generic/include/odp/plat/strong_types.h
>>> @@ -16,7 +16,7 @@
>>> #define STRONG_TYPES_H_
>>>
>>> /** Use strong typing for ODP types */
>>> -#define odp_handle_t struct {} *
>>> +#define odp_handle_t struct { uint8_t unused_dummy_var; } *
>>>
>>> /** Internal macro to get value of an ODP handle */
>>> #define _odp_typeval(handle) ((uint32_t)(uintptr_t)(handle))
>>> --
>>> 2.1.0
>>>
>>>
>>
>>
>> --
>> Mike Holmes
>> Technical Manager - Linaro Networking Group
>> Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs
>>
>>
>>
>
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp