diff mbox series

[v2,5/8] qemu/bswap: Use compiler __builtin_bswap() on Haiku

Message ID 20200928131934.739451-6-philmd@redhat.com
State New
Headers show
Series qemu/bswap: Use compiler __builtin_bswap() | expand

Commit Message

Philippe Mathieu-Daudé Sept. 28, 2020, 1:19 p.m. UTC
Since commit efc6c070aca ("configure: Add a test for the minimum
compiler version") the minimum compiler version required for GCC
is 4.8, which supports __builtin_bswap().
Remove the Haiku specific ifdef'ry.

This reverts commit 652a46ebba970017c7a23767dcc983265cdb8eb7
("bswap.h: Include <endian.h> on Haiku for bswap operations").

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
Cc: David Carlier <devnexen@gmail.com>
Cc: Carlo Arenas <carenas@gmail.com>
---
 include/qemu/bswap.h | 2 --
 1 file changed, 2 deletions(-)

Comments

David CARLIER Sept. 28, 2020, 2:09 p.m. UTC | #1
Unfortunately it breaks the build.
Regards.

On Mon, 28 Sep 2020 at 14:20, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
> Since commit efc6c070aca ("configure: Add a test for the minimum
> compiler version") the minimum compiler version required for GCC
> is 4.8, which supports __builtin_bswap().
> Remove the Haiku specific ifdef'ry.
>
> This reverts commit 652a46ebba970017c7a23767dcc983265cdb8eb7
> ("bswap.h: Include <endian.h> on Haiku for bswap operations").
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> Cc: David Carlier <devnexen@gmail.com>
> Cc: Carlo Arenas <carenas@gmail.com>
> ---
>  include/qemu/bswap.h | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
> index 55916670d39..719d620bfe6 100644
> --- a/include/qemu/bswap.h
> +++ b/include/qemu/bswap.h
> @@ -8,8 +8,6 @@
>  # include <machine/bswap.h>
>  #elif defined(__FreeBSD__)
>  # include <sys/endian.h>
> -#elif defined(__HAIKU__)
> -# include <endian.h>
>  #else
>  #undef  bswap16
>  #define bswap16(_x) __builtin_bswap16(_x)
> --
> 2.26.2
>
Daniel P. Berrangé Sept. 28, 2020, 2:13 p.m. UTC | #2
On Mon, Sep 28, 2020 at 03:09:01PM +0100, David CARLIER wrote:
> Unfortunately it breaks the build.

Can you provide details of the errors seen and toolchain versions.

I notice we don't have any CI support for Haiku right now, nor
any recipe in tests/vm/  for enabling users to setup a VM with
Haiku installed. This very much makes Haiku a second class
citizen right now in terms of QEMU's supported platforms, with
no expectation of whether it'll work at any point in time.


> On Mon, 28 Sep 2020 at 14:20, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
> >
> > Since commit efc6c070aca ("configure: Add a test for the minimum
> > compiler version") the minimum compiler version required for GCC
> > is 4.8, which supports __builtin_bswap().
> > Remove the Haiku specific ifdef'ry.
> >
> > This reverts commit 652a46ebba970017c7a23767dcc983265cdb8eb7
> > ("bswap.h: Include <endian.h> on Haiku for bswap operations").
> >
> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> > ---
> > Cc: David Carlier <devnexen@gmail.com>
> > Cc: Carlo Arenas <carenas@gmail.com>
> > ---
> >  include/qemu/bswap.h | 2 --
> >  1 file changed, 2 deletions(-)
> >
> > diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
> > index 55916670d39..719d620bfe6 100644
> > --- a/include/qemu/bswap.h
> > +++ b/include/qemu/bswap.h
> > @@ -8,8 +8,6 @@
> >  # include <machine/bswap.h>
> >  #elif defined(__FreeBSD__)
> >  # include <sys/endian.h>
> > -#elif defined(__HAIKU__)
> > -# include <endian.h>
> >  #else
> >  #undef  bswap16
> >  #define bswap16(_x) __builtin_bswap16(_x)
> > --
> > 2.26.2
> >
> 

Regards,
Daniel
Philippe Mathieu-Daudé Sept. 28, 2020, 2:18 p.m. UTC | #3
On 9/28/20 4:13 PM, Daniel P. Berrangé wrote:
> On Mon, Sep 28, 2020 at 03:09:01PM +0100, David CARLIER wrote:
>> Unfortunately it breaks the build.
> 
> Can you provide details of the errors seen and toolchain versions.
> 
> I notice we don't have any CI support for Haiku right now, nor
> any recipe in tests/vm/  for enabling users to setup a VM with
> Haiku installed. This very much makes Haiku a second class
> citizen right now in terms of QEMU's supported platforms, with
> no expectation of whether it'll work at any point in time.

I provided the tests/vm/ build script from Alexander as patch 8/8
of this series:
https://lists.gnu.org/archive/html/qemu-devel/2020-09/msg10022.html

This is what I used to test this patch/series.

> 
>> On Mon, 28 Sep 2020 at 14:20, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>>>
>>> Since commit efc6c070aca ("configure: Add a test for the minimum
>>> compiler version") the minimum compiler version required for GCC
>>> is 4.8, which supports __builtin_bswap().
>>> Remove the Haiku specific ifdef'ry.
>>>
>>> This reverts commit 652a46ebba970017c7a23767dcc983265cdb8eb7
>>> ("bswap.h: Include <endian.h> on Haiku for bswap operations").
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>> ---
>>> Cc: David Carlier <devnexen@gmail.com>
>>> Cc: Carlo Arenas <carenas@gmail.com>
>>> ---
>>>  include/qemu/bswap.h | 2 --
>>>  1 file changed, 2 deletions(-)
>>>
>>> diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
>>> index 55916670d39..719d620bfe6 100644
>>> --- a/include/qemu/bswap.h
>>> +++ b/include/qemu/bswap.h
>>> @@ -8,8 +8,6 @@
>>>  # include <machine/bswap.h>
>>>  #elif defined(__FreeBSD__)
>>>  # include <sys/endian.h>
>>> -#elif defined(__HAIKU__)
>>> -# include <endian.h>
>>>  #else
>>>  #undef  bswap16
>>>  #define bswap16(_x) __builtin_bswap16(_x)
>>> --
>>> 2.26.2
>>>
>>
> 
> Regards,
> Daniel
>
David CARLIER Sept. 28, 2020, 3 p.m. UTC | #4
errors as
...
expected '=',   ',', ';', 'asm' r "__attribute__' before "builtin_swap16'
...

base gcc 8.3

On Mon, 28 Sep 2020 at 15:14, Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Mon, Sep 28, 2020 at 03:09:01PM +0100, David CARLIER wrote:
> > Unfortunately it breaks the build.
>
> Can you provide details of the errors seen and toolchain versions.
>
> I notice we don't have any CI support for Haiku right now, nor
> any recipe in tests/vm/  for enabling users to setup a VM with
> Haiku installed. This very much makes Haiku a second class
> citizen right now in terms of QEMU's supported platforms, with
> no expectation of whether it'll work at any point in time.
>
>
> > On Mon, 28 Sep 2020 at 14:20, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
> > >
> > > Since commit efc6c070aca ("configure: Add a test for the minimum
> > > compiler version") the minimum compiler version required for GCC
> > > is 4.8, which supports __builtin_bswap().
> > > Remove the Haiku specific ifdef'ry.
> > >
> > > This reverts commit 652a46ebba970017c7a23767dcc983265cdb8eb7
> > > ("bswap.h: Include <endian.h> on Haiku for bswap operations").
> > >
> > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> > > ---
> > > Cc: David Carlier <devnexen@gmail.com>
> > > Cc: Carlo Arenas <carenas@gmail.com>
> > > ---
> > >  include/qemu/bswap.h | 2 --
> > >  1 file changed, 2 deletions(-)
> > >
> > > diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
> > > index 55916670d39..719d620bfe6 100644
> > > --- a/include/qemu/bswap.h
> > > +++ b/include/qemu/bswap.h
> > > @@ -8,8 +8,6 @@
> > >  # include <machine/bswap.h>
> > >  #elif defined(__FreeBSD__)
> > >  # include <sys/endian.h>
> > > -#elif defined(__HAIKU__)
> > > -# include <endian.h>
> > >  #else
> > >  #undef  bswap16
> > >  #define bswap16(_x) __builtin_bswap16(_x)
> > > --
> > > 2.26.2
> > >
> >
>
> Regards,
> Daniel
> --
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
>
Thomas Huth Sept. 28, 2020, 5:29 p.m. UTC | #5
On 28/09/2020 15.19, Philippe Mathieu-Daudé wrote:
> Since commit efc6c070aca ("configure: Add a test for the minimum
> compiler version") the minimum compiler version required for GCC
> is 4.8, which supports __builtin_bswap().
> Remove the Haiku specific ifdef'ry.
> 
> This reverts commit 652a46ebba970017c7a23767dcc983265cdb8eb7
> ("bswap.h: Include <endian.h> on Haiku for bswap operations").
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> Cc: David Carlier <devnexen@gmail.com>
> Cc: Carlo Arenas <carenas@gmail.com>
> ---
>  include/qemu/bswap.h | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
> index 55916670d39..719d620bfe6 100644
> --- a/include/qemu/bswap.h
> +++ b/include/qemu/bswap.h
> @@ -8,8 +8,6 @@
>  # include <machine/bswap.h>
>  #elif defined(__FreeBSD__)
>  # include <sys/endian.h>
> -#elif defined(__HAIKU__)
> -# include <endian.h>
>  #else
>  #undef  bswap16
>  #define bswap16(_x) __builtin_bswap16(_x)

Why don't we simply always use the builtin functions on all systems? I
assume the compiler can handle these the best in all cases... or do you
see any advantage in using <machine/bswap.h> or <sys/endian.h> in
certain cases?

 Thomas


 Thomas
Philippe Mathieu-Daudé Oct. 19, 2020, 11 a.m. UTC | #6
On 9/28/20 4:18 PM, Philippe Mathieu-Daudé wrote:
> On 9/28/20 4:13 PM, Daniel P. Berrangé wrote:
>> On Mon, Sep 28, 2020 at 03:09:01PM +0100, David CARLIER wrote:
>>> Unfortunately it breaks the build.
>>
>> Can you provide details of the errors seen and toolchain versions.
>>
>> I notice we don't have any CI support for Haiku right now, nor
>> any recipe in tests/vm/  for enabling users to setup a VM with
>> Haiku installed. This very much makes Haiku a second class
>> citizen right now in terms of QEMU's supported platforms, with
>> no expectation of whether it'll work at any point in time.
> 
> I provided the tests/vm/ build script from Alexander as patch 8/8
> of this series:
> https://lists.gnu.org/archive/html/qemu-devel/2020-09/msg10022.html
> 
> This is what I used to test this patch/series.

I suppose the Haiku VM patch got lost, so I'll repost it separate.

Which tree should I Cc:? Ah, Alex testing tree :)
diff mbox series

Patch

diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
index 55916670d39..719d620bfe6 100644
--- a/include/qemu/bswap.h
+++ b/include/qemu/bswap.h
@@ -8,8 +8,6 @@ 
 # include <machine/bswap.h>
 #elif defined(__FreeBSD__)
 # include <sys/endian.h>
-#elif defined(__HAIKU__)
-# include <endian.h>
 #else
 #undef  bswap16
 #define bswap16(_x) __builtin_bswap16(_x)