[Qemu-devel] [PATCH] ppc: xics: fix compilation with CentOS 6

Paolo Bonzini posted 1 patch 6 years, 11 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1493977730-20581-1-git-send-email-pbonzini@redhat.com
Test checkpatch passed
Test docker passed
Test docker-next passed
Test s390x passed
include/hw/ppc/xics.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Qemu-devel] [PATCH] ppc: xics: fix compilation with CentOS 6
Posted by Paolo Bonzini 6 years, 11 months ago
The PowerPCCPU typedef is included twice if a file includes
both hw/ppc/xics.h and target/ppc/cpu-qom.h.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
	There are other failures but I don't have time to debug them today:

	In file included from /tmp/qemu-test/src/include/hw/ppc/pnv.h:26,
	                 from /tmp/qemu-test/src/hw/ppc/pnv.c:31:
	/tmp/qemu-test/src/include/hw/ppc/pnv_psi.h:50: error: redefinition of typedef ‘PnvPsi’
	/tmp/qemu-test/src/include/hw/ppc/pnv_lpc.h:26: note: previous declaration of ‘PnvPsi’ was here
	In file included from /tmp/qemu-test/src/include/hw/ppc/pnv.h:27,
	                 from /tmp/qemu-test/src/hw/ppc/pnv.c:31:
	/tmp/qemu-test/src/include/hw/ppc/pnv_occ.h:25: error: redefinition of typedef ‘PnvPsi’
	/tmp/qemu-test/src/include/hw/ppc/pnv_psi.h:50: note: previous declaration of ‘PnvPsi’ was here
	In file included from /tmp/qemu-test/src/hw/ppc/pnv.c:39:
	/tmp/qemu-test/src/include/hw/ipmi/ipmi.h:188: error: redefinition of typedef ‘IPMIBmc’
	/tmp/qemu-test/src/include/hw/ppc/pnv.h:121: note: previous declaration of ‘IPMIBmc’ was here
	make[1]: *** [hw/ppc/pnv.o] Error 1

	Please start including Docker-based tests in your pre-pull-request tests.

 include/hw/ppc/xics.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h
index c215dc7..ce1942b 100644
--- a/include/hw/ppc/xics.h
+++ b/include/hw/ppc/xics.h
@@ -29,6 +29,7 @@
 #define XICS_H
 
 #include "hw/qdev.h"
+#include "target/ppc/cpu-qom.h"
 
 #define XICS_IPI        0x2
 #define XICS_BUID       0x1
@@ -46,7 +47,6 @@ typedef struct ICSStateClass ICSStateClass;
 typedef struct ICSState ICSState;
 typedef struct ICSIRQState ICSIRQState;
 typedef struct XICSFabric XICSFabric;
-typedef struct PowerPCCPU PowerPCCPU;
 
 #define TYPE_ICP "icp"
 #define ICP(obj) OBJECT_CHECK(ICPState, (obj), TYPE_ICP)
-- 
1.8.3.1


Re: [Qemu-devel] [PATCH] ppc: xics: fix compilation with CentOS 6
Posted by Philippe Mathieu-Daudé 6 years, 11 months ago
On 05/05/2017 06:48 AM, Paolo Bonzini wrote:
> The PowerPCCPU typedef is included twice if a file includes
> both hw/ppc/xics.h and target/ppc/cpu-qom.h.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
> 	There are other failures but I don't have time to debug them today:
>
> 	In file included from /tmp/qemu-test/src/include/hw/ppc/pnv.h:26,
> 	                 from /tmp/qemu-test/src/hw/ppc/pnv.c:31:
> 	/tmp/qemu-test/src/include/hw/ppc/pnv_psi.h:50: error: redefinition of typedef ‘PnvPsi’
> 	/tmp/qemu-test/src/include/hw/ppc/pnv_lpc.h:26: note: previous declaration of ‘PnvPsi’ was here
> 	In file included from /tmp/qemu-test/src/include/hw/ppc/pnv.h:27,
> 	                 from /tmp/qemu-test/src/hw/ppc/pnv.c:31:
> 	/tmp/qemu-test/src/include/hw/ppc/pnv_occ.h:25: error: redefinition of typedef ‘PnvPsi’
> 	/tmp/qemu-test/src/include/hw/ppc/pnv_psi.h:50: note: previous declaration of ‘PnvPsi’ was here
> 	In file included from /tmp/qemu-test/src/hw/ppc/pnv.c:39:
> 	/tmp/qemu-test/src/include/hw/ipmi/ipmi.h:188: error: redefinition of typedef ‘IPMIBmc’
> 	/tmp/qemu-test/src/include/hw/ppc/pnv.h:121: note: previous declaration of ‘IPMIBmc’ was here
> 	make[1]: *** [hw/ppc/pnv.o] Error 1
>
> 	Please start including Docker-based tests in your pre-pull-request tests.
>
>  include/hw/ppc/xics.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h
> index c215dc7..ce1942b 100644
> --- a/include/hw/ppc/xics.h
> +++ b/include/hw/ppc/xics.h
> @@ -29,6 +29,7 @@
>  #define XICS_H
>
>  #include "hw/qdev.h"
> +#include "target/ppc/cpu-qom.h"
>
>  #define XICS_IPI        0x2
>  #define XICS_BUID       0x1
> @@ -46,7 +47,6 @@ typedef struct ICSStateClass ICSStateClass;
>  typedef struct ICSState ICSState;
>  typedef struct ICSIRQState ICSIRQState;
>  typedef struct XICSFabric XICSFabric;
> -typedef struct PowerPCCPU PowerPCCPU;
>
>  #define TYPE_ICP "icp"
>  #define ICP(obj) OBJECT_CHECK(ICPState, (obj), TYPE_ICP)
>

Re: [Qemu-devel] [PATCH] ppc: xics: fix compilation with CentOS 6
Posted by David Gibson 6 years, 11 months ago
On Fri, May 05, 2017 at 11:48:50AM +0200, Paolo Bonzini wrote:
> The PowerPCCPU typedef is included twice if a file includes
> both hw/ppc/xics.h and target/ppc/cpu-qom.h.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Applied to ppc-for-2.10, thanks.

> ---
> 	There are other failures but I don't have time to debug them today:
> 
> 	In file included from /tmp/qemu-test/src/include/hw/ppc/pnv.h:26,
> 	                 from /tmp/qemu-test/src/hw/ppc/pnv.c:31:
> 	/tmp/qemu-test/src/include/hw/ppc/pnv_psi.h:50: error: redefinition of typedef ‘PnvPsi’
> 	/tmp/qemu-test/src/include/hw/ppc/pnv_lpc.h:26: note: previous declaration of ‘PnvPsi’ was here
> 	In file included from /tmp/qemu-test/src/include/hw/ppc/pnv.h:27,
> 	                 from /tmp/qemu-test/src/hw/ppc/pnv.c:31:
> 	/tmp/qemu-test/src/include/hw/ppc/pnv_occ.h:25: error: redefinition of typedef ‘PnvPsi’
> 	/tmp/qemu-test/src/include/hw/ppc/pnv_psi.h:50: note: previous declaration of ‘PnvPsi’ was here
> 	In file included from /tmp/qemu-test/src/hw/ppc/pnv.c:39:
> 	/tmp/qemu-test/src/include/hw/ipmi/ipmi.h:188: error: redefinition of typedef ‘IPMIBmc’
> 	/tmp/qemu-test/src/include/hw/ppc/pnv.h:121: note: previous declaration of ‘IPMIBmc’ was here
> 	make[1]: *** [hw/ppc/pnv.o] Error 1
> 
> 	Please start including Docker-based tests in your pre-pull-request tests.

Um.. is there some doco on how to execute these.  I tried "make
docker-test" and "make docker-image" and they both just seem to hang
at:

umbus:~/src/qemu (ppc-for-2.10)$ make docker-image
  BUILD   travis

strace shows docker blocked on a futex.

>  include/hw/ppc/xics.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h
> index c215dc7..ce1942b 100644
> --- a/include/hw/ppc/xics.h
> +++ b/include/hw/ppc/xics.h
> @@ -29,6 +29,7 @@
>  #define XICS_H
>  
>  #include "hw/qdev.h"
> +#include "target/ppc/cpu-qom.h"
>  
>  #define XICS_IPI        0x2
>  #define XICS_BUID       0x1
> @@ -46,7 +47,6 @@ typedef struct ICSStateClass ICSStateClass;
>  typedef struct ICSState ICSState;
>  typedef struct ICSIRQState ICSIRQState;
>  typedef struct XICSFabric XICSFabric;
> -typedef struct PowerPCCPU PowerPCCPU;
>  
>  #define TYPE_ICP "icp"
>  #define ICP(obj) OBJECT_CHECK(ICPState, (obj), TYPE_ICP)

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson
Re: [Qemu-devel] [PATCH] ppc: xics: fix compilation with CentOS 6
Posted by Paolo Bonzini 6 years, 11 months ago

On 08/05/2017 08:13, David Gibson wrote:
>>
>> 	Please start including Docker-based tests in your pre-pull-request tests.
> Um.. is there some doco on how to execute these.  I tried "make
> docker-test" and "make docker-image" and they both just seem to hang
> at:
> 
> umbus:~/src/qemu (ppc-for-2.10)$ make docker-image
>   BUILD   travis
> 
> strace shows docker blocked on a futex.

Try "make docker-test-full@centos6 V=1".

Paolo

Re: [Qemu-devel] [PATCH] ppc: xics: fix compilation with CentOS 6
Posted by David Gibson 6 years, 11 months ago
On Mon, May 08, 2017 at 09:25:19AM +0200, Paolo Bonzini wrote:
> 
> 
> On 08/05/2017 08:13, David Gibson wrote:
> >>
> >> 	Please start including Docker-based tests in your pre-pull-request tests.
> > Um.. is there some doco on how to execute these.  I tried "make
> > docker-test" and "make docker-image" and they both just seem to hang
> > at:
> > 
> > umbus:~/src/qemu (ppc-for-2.10)$ make docker-image
> >   BUILD   travis
> > 
> > strace shows docker blocked on a futex.
> 
> Try "make docker-test-full@centos6 V=1".

So, the problem I hit above was just that it was taking time to
download all the image data - without V=1, it wasn't showing progress
so it looked like it wasn't doing anything.

With that done, I get further, but it's still a bit of a pain in the
arse.  If I run as a normal user things fail, because the sudo
authorization runs out before a test is complete.  If I run as root it
screws up permissions on my git tree so I have to re-chown before
operating as a normal user again.  And testing the full set of images
takes an age - I've been running this all day, and AFAICT it's barely
through half the available images.  If I'm testing for multiple days
it means what I'm finally sending a pullreq for is no longer against
the latest master, which I don't really like.

Any ideas to make this less painful?

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson