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)