On 1/17/19 8:01 AM, Thomas Huth wrote: > On 2019-01-16 14:29, Cédric Le Goater wrote: >> On 1/16/19 12:47 PM, Thomas Huth wrote: >>> On 2019-01-16 12:43, Cédric Le Goater wrote: >>>> On 1/11/19 9:17 AM, Thomas Huth wrote: >>>>> When compiling the ppc code with clang and -std=gnu99, there are a >>>>> couple of warnings/errors like this one: >>>>> >>>>> CC ppc64-softmmu/hw/intc/xics.o >>>>> In file included from hw/intc/xics.c:35: >>>>> include/hw/ppc/xics.h:43:25: error: redefinition of typedef 'ICPState' is >>>>> a C11 feature >>>>> [-Werror,-Wtypedef-redefinition] >>>>> typedef struct ICPState ICPState; >>>>> ^ >>>>> target/ppc/cpu.h:1181:25: note: previous definition is here >>>>> typedef struct ICPState ICPState; >>>>> ^ >>>>> Work around the problems by including the proper headers instead. >>>> >>>> Thomas, >>>> >>>> >>>> After a closer look, I think we should use 'void *' under PowerPCCPU >>>> as it was the case before I introduced the second interrupt presenter. >>> >>> If you don't like the #includes, why not simply do anonymous struct >>> forward declarations here? I think that would be better than "void *". >> >> yes. >> >>>> That's a bigger change reverting bits of already merged patches. I can >>>> take care of it if you prefer. >>> >>> Could I keep the current patch in my series so that I can get the >>> patches finally merged? You could then do any clean up that you like on >>> top of it, ok? >> >> OK. >> >> See below the patch I would propose. Compiled tested with clang -std=gnu99. > [...] >> @@ -1204,8 +1199,8 @@ struct PowerPCCPU { >> int32_t node_id; /* NUMA node this CPU belongs to */ >> PPCHash64Options *hash64_opts; >> #ifndef CONFIG_USER_ONLY >> - ICPState *icp; >> - XiveTCTX *tctx; >> + struct ICPState *icp; >> + struct XiveTCTX *tctx; >> #endif > > That's pretty much what I had in an earlier version of my patch: > > https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg01810.html > > But Greg did not like it: > > https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg01893.html
yeah :/ Sorry for all the fuss. We have been tackling this problem for years now. I think the patchset I just sent is good step forward and I checked compilation with clang -std=gn99 ! Thanks, C.