All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Richard Henderson" <rth@twiddle.net>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	pbonzini@redhat.com, peter.maydell@linaro.org,
	"Markus Armbruster" <armbru@redhat.com>,
	qemu-ppc@nongnu.org
Subject: [Qemu-devel] [PATCH 1/2] include/hw/ppc: Fix compilation with clang -std=gnu99
Date: Wed,  9 Jan 2019 17:39:35 +0100	[thread overview]
Message-ID: <1547051976-13982-2-git-send-email-thuth@redhat.com> (raw)
In-Reply-To: <1547051976-13982-1-git-send-email-thuth@redhat.com>

When compiling with Clang and -std=gnu99, I get the following errors:

  CC      ppc64-softmmu/hw/intc/xics_spapr.o
In file included from hw/intc/xics_spapr.c:34:
include/hw/ppc/xics.h:46:25: error: redefinition of typedef 'ICSState' is a C11 feature
      [-Werror,-Wtypedef-redefinition]
typedef struct ICSState ICSState;
                        ^
include/hw/ppc/spapr.h:18:25: note: previous definition is here
typedef struct ICSState ICSState;
                        ^
In file included from hw/intc/xics_spapr.c:34:
include/hw/ppc/xics.h:203:34: error: redefinition of typedef 'sPAPRMachineState' is a C11 feature
      [-Werror,-Wtypedef-redefinition]
typedef struct sPAPRMachineState sPAPRMachineState;
                                 ^
include/hw/ppc/spapr_irq.h:25:34: note: previous definition is here
typedef struct sPAPRMachineState sPAPRMachineState;
                                 ^
  CC      ppc64-softmmu/hw/intc/spapr_xive.o
In file included from hw/intc/spapr_xive.c:19:
include/hw/ppc/spapr_xive.h:38:3: error: redefinition of typedef 'sPAPRXive' is a C11 feature
      [-Werror,-Wtypedef-redefinition]
} sPAPRXive;
  ^
include/hw/ppc/spapr.h:20:26: note: previous definition is here
typedef struct sPAPRXive sPAPRXive;
                         ^
In file included from hw/intc/spapr_xive.c:19:
include/hw/ppc/spapr_xive.h:45:34: error: redefinition of typedef 'sPAPRMachineState' is a C11 feature
      [-Werror,-Wtypedef-redefinition]
typedef struct sPAPRMachineState sPAPRMachineState;
                                 ^
include/hw/ppc/spapr_irq.h:25:34: note: previous definition is here
typedef struct sPAPRMachineState sPAPRMachineState;
                                 ^
  CC      ppc64-softmmu/hw/char/spapr_vty.o
In file included from hw/char/spapr_vty.c:8:
In file included from include/hw/ppc/spapr.h:12:
include/hw/ppc/spapr_xive.h:45:34: error: redefinition of typedef 'sPAPRMachineState' is a C11 feature
      [-Werror,-Wtypedef-redefinition]
typedef struct sPAPRMachineState sPAPRMachineState;
                                 ^
include/hw/ppc/spapr_irq.h:25:34: note: previous definition is here
typedef struct sPAPRMachineState sPAPRMachineState;
                                 ^

Since we're going to make -std=gnu99 mandatory, fix these issues
by including the right header files indead of typedeffing stuff twice.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 include/hw/ppc/spapr.h      | 4 ++--
 include/hw/ppc/spapr_xive.h | 2 +-
 include/hw/ppc/xics.h       | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index 2c77a8b..6a5ae4f 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -8,6 +8,8 @@
 #include "hw/mem/pc-dimm.h"
 #include "hw/ppc/spapr_ovec.h"
 #include "hw/ppc/spapr_irq.h"
+#include "hw/ppc/xics.h"
+#include "hw/ppc/spapr_xive.h"
 
 struct VIOsPAPRBus;
 struct sPAPRPHBState;
@@ -15,8 +17,6 @@ struct sPAPRNVRAM;
 typedef struct sPAPREventLogEntry sPAPREventLogEntry;
 typedef struct sPAPREventSource sPAPREventSource;
 typedef struct sPAPRPendingHPT sPAPRPendingHPT;
-typedef struct ICSState ICSState;
-typedef struct sPAPRXive sPAPRXive;
 
 #define HPTE64_V_HPTE_DIRTY     0x0000000000000040ULL
 #define SPAPR_ENTRY_POINT       0x100
diff --git a/include/hw/ppc/spapr_xive.h b/include/hw/ppc/spapr_xive.h
index 728735d..aff4366 100644
--- a/include/hw/ppc/spapr_xive.h
+++ b/include/hw/ppc/spapr_xive.h
@@ -42,7 +42,7 @@ bool spapr_xive_irq_free(sPAPRXive *xive, uint32_t lisn);
 void spapr_xive_pic_print_info(sPAPRXive *xive, Monitor *mon);
 qemu_irq spapr_xive_qirq(sPAPRXive *xive, uint32_t lisn);
 
-typedef struct sPAPRMachineState sPAPRMachineState;
+#include "hw/ppc/spapr.h"  /* for sPAPRMachineState */
 
 void spapr_xive_hcall_init(sPAPRMachineState *spapr);
 void spapr_dt_xive(sPAPRMachineState *spapr, uint32_t nr_servers, void *fdt,
diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h
index 14afda1..a7f49a4 100644
--- a/include/hw/ppc/xics.h
+++ b/include/hw/ppc/xics.h
@@ -47,6 +47,8 @@ typedef struct ICSState ICSState;
 typedef struct ICSIRQState ICSIRQState;
 typedef struct XICSFabric XICSFabric;
 
+#include "hw/ppc/spapr.h"
+
 #define TYPE_ICP "icp"
 #define ICP(obj) OBJECT_CHECK(ICPState, (obj), TYPE_ICP)
 
@@ -200,8 +202,6 @@ void ics_pic_print_info(ICSState *ics, Monitor *mon);
 void ics_resend(ICSState *ics);
 void icp_resend(ICPState *ss);
 
-typedef struct sPAPRMachineState sPAPRMachineState;
-
 void spapr_dt_xics(sPAPRMachineState *spapr, uint32_t nr_servers, void *fdt,
                    uint32_t phandle);
 int xics_kvm_init(sPAPRMachineState *spapr, Error **errp);
-- 
1.8.3.1

  reply	other threads:[~2019-01-09 16:39 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-09 16:39 [Qemu-devel] [PATCH v3 0/2] Force the C standard to gnu99 Thomas Huth
2019-01-09 16:39 ` Thomas Huth [this message]
2019-01-09 17:13   ` [Qemu-devel] [Qemu-ppc] [PATCH 1/2] include/hw/ppc: Fix compilation with clang -std=gnu99 Cédric Le Goater
2019-01-09 17:28     ` Daniel P. Berrangé
2019-01-09 17:40       ` Cédric Le Goater
2019-01-09 17:47         ` Greg Kurz
2019-01-10  6:47           ` Thomas Huth
2019-01-09 21:20       ` Paolo Bonzini
2019-01-09 21:25         ` Eric Blake
2019-01-09 21:31           ` Paolo Bonzini
2019-01-10 10:12           ` Daniel P. Berrangé
2019-01-10 12:12             ` Greg Kurz
2019-01-10  6:46         ` Thomas Huth
2019-01-09 17:46   ` Cédric Le Goater
2019-01-09 16:39 ` [Qemu-devel] [PATCH v3 2/2] configure: Force the C standard to gnu99 Thomas Huth
2019-01-09 18:10   ` Philippe Mathieu-Daudé
2019-01-09 21:26     ` Paolo Bonzini
2019-01-10  6:50       ` Thomas Huth
2019-01-09 21:23   ` Richard Henderson

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=1547051976-13982-2-git-send-email-thuth@redhat.com \
    --to=thuth@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=rth@twiddle.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.