All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	qemu-ppc <qemu-ppc@nongnu.org>,
	Eduardo Habkost <ehabkost@redhat.com>,
	Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] [PATCH for-1.1] arch_init: Fix AltiVec build on Darwin/ppc
Date: Sun, 27 May 2012 17:49:27 +0200	[thread overview]
Message-ID: <4FC24D07.2030006@suse.de> (raw)
In-Reply-To: <1338133059-43484-1-git-send-email-andreas.faerber@web.de>

Am 27.05.2012 17:37, schrieb Andreas Färber:
> Commit f29a56147b66845914d0a645bf9b4c5bb9a6af57 (implement
> -no-user-config command-line option (v3)) introduced uses of bool
> in arch_init.c. Shortly before that usage is support code for
> AltiVec (conditional to __ALTIVEC__).
> 
> GCC's altivec.h may in a !__APPLE_ALTIVEC__ code path redefine bool,
> leading to type mismatches. altivec.h recommends to #undef for C++
> compatibility, but doing so on C leads to bool remaining undefined.

"in C" - please fix when applying.

Thanks,
Andreas

> Fix by redefining bool to _Bool as mandated for stdbool.h by POSIX.
> 
> Signed-off-by: Andreas Färber <andreas.faerber@web.de>
> Cc: Eduardo Habkost <ehabkost@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Alexander Graf <agraf@suse.de>
> Cc: qemu-ppc <qemu-ppc@nongnu.org>

P.S. No such errors with gcc (SUSE Linux) 4.6.3, even with
--extra-cflags="-maltivec", so I'm guessing __bool differs.

> ---
>  arch_init.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/arch_init.c b/arch_init.c
> index 988adca..a9e8b74 100644
> --- a/arch_init.c
> +++ b/arch_init.c
> @@ -100,6 +100,10 @@ const uint32_t arch_type = QEMU_ARCH;
>  #define VECTYPE        vector unsigned char
>  #define SPLAT(p)       vec_splat(vec_ld(0, p), 0)
>  #define ALL_EQ(v1, v2) vec_all_eq(v1, v2)
> +/* altivec.h may redefine the bool macro as vector type.
> + * Reset it to POSIX semantics. */
> +#undef bool
> +#define bool _Bool
>  #elif defined __SSE2__
>  #include <emmintrin.h>
>  #define VECTYPE        __m128i

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

  reply	other threads:[~2012-05-27 15:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-27 15:37 [Qemu-devel] [PATCH for-1.1] arch_init: Fix AltiVec build on Darwin/ppc Andreas Färber
2012-05-27 15:49 ` Andreas Färber [this message]
2012-05-28  6:49 ` Paolo Bonzini

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=4FC24D07.2030006@suse.de \
    --to=afaerber@suse.de \
    --cc=agraf@suse.de \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /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.