From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57034) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WLpGM-0000pi-7Q for qemu-devel@nongnu.org; Fri, 07 Mar 2014 02:32:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WLpGE-0000Yc-CZ for qemu-devel@nongnu.org; Fri, 07 Mar 2014 02:32:10 -0500 Sender: Paolo Bonzini Message-ID: <531975EA.70006@redhat.com> Date: Fri, 07 Mar 2014 08:31:54 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1394148857-19607-1-git-send-email-agraf@suse.de> <1394148857-19607-8-git-send-email-agraf@suse.de> In-Reply-To: <1394148857-19607-8-git-send-email-agraf@suse.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PULL 007/130] KVM: Split QEMUMachine typedef into separate header List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf , qemu-devel@nongnu.org Cc: blauwirbel@gmail.com, Peter Maydell , qemu-ppc@nongnu.org, aliguori@amazon.com, aurelien@aurel32.net Il 07/03/2014 00:32, Alexander Graf ha scritto: > Older gcc versions (such as the one in SLES11) get confused when you declare > a typedef on the same struct twice. > > To work around that limitation, let's extract the QEMUMachine typedef into a > separate header file that is guarded by preprocessor duplicate include checks. > > This fixes the following type of compile errors for me: > > In file included from vl.c:125: > include/hw/xen/xen.h:39: error: redefinition of typedef "QEMUMachine" > include/sysemu/kvm.h:155: error: previous declaration of "QEMUMachine" was here > > Signed-off-by: Alexander Graf When was this posted to the list? This is exactly the purpose of include/qemu/typedefs.h. Paolo > --- > include/hw/boards.h | 3 +-- > include/hw/xen/xen.h | 1 + > include/sysemu/kvm.h | 1 + > include/sysemu/qemumachine.h | 16 ++++++++++++++++ > include/sysemu/qtest.h | 1 + > kvm-stub.c | 1 + > 6 files changed, 21 insertions(+), 2 deletions(-) > create mode 100644 include/sysemu/qemumachine.h > > diff --git a/include/hw/boards.h b/include/hw/boards.h > index 2151460..ed6d9f8 100644 > --- a/include/hw/boards.h > +++ b/include/hw/boards.h > @@ -4,10 +4,9 @@ > #define HW_BOARDS_H > > #include "sysemu/blockdev.h" > +#include "sysemu/qemumachine.h" > #include "hw/qdev.h" > > -typedef struct QEMUMachine QEMUMachine; > - > typedef struct QEMUMachineInitArgs { > const QEMUMachine *machine; > ram_addr_t ram_size; > diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h > index e1f88bf..81e5bb1 100644 > --- a/include/hw/xen/xen.h > +++ b/include/hw/xen/xen.h > @@ -10,6 +10,7 @@ > > #include "hw/irq.h" > #include "qemu-common.h" > +#include "sysemu/qemumachine.h" > > /* xen-machine.c */ > enum xen_mode { > diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h > index a02d67c..c982570 100644 > --- a/include/sysemu/kvm.h > +++ b/include/sysemu/kvm.h > @@ -18,6 +18,7 @@ > #include "config-host.h" > #include "qemu/queue.h" > #include "qom/cpu.h" > +#include "sysemu/qemumachine.h" > > #ifdef CONFIG_KVM > #include > diff --git a/include/sysemu/qemumachine.h b/include/sysemu/qemumachine.h > new file mode 100644 > index 0000000..4cefd56 > --- /dev/null > +++ b/include/sysemu/qemumachine.h > @@ -0,0 +1,16 @@ > +/* > + * QEMU Machine typedef > + * > + * Copyright Alexander Graf > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + * > + */ > + > +#ifndef QEMUMACHINE_H > +#define QEMUMACHINE_H > + > +typedef struct QEMUMachine QEMUMachine; > + > +#endif /* !QEMUMACHINE_H */ > diff --git a/include/sysemu/qtest.h b/include/sysemu/qtest.h > index 28f4875..d6434cd 100644 > --- a/include/sysemu/qtest.h > +++ b/include/sysemu/qtest.h > @@ -16,6 +16,7 @@ > > #include "qemu-common.h" > #include "qapi/error.h" > +#include "sysemu/qemumachine.h" > > extern bool qtest_allowed; > > diff --git a/kvm-stub.c b/kvm-stub.c > index e979f76..b1c4429 100644 > --- a/kvm-stub.c > +++ b/kvm-stub.c > @@ -14,6 +14,7 @@ > #include "hw/hw.h" > #include "cpu.h" > #include "sysemu/kvm.h" > +#include "sysemu/qemumachine.h" > > #ifndef CONFIG_USER_ONLY > #include "hw/pci/msi.h" >