All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/2] Use target_words_bigendian() for generic-loader
@ 2018-10-05 13:01 Thomas Huth
  2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header Thomas Huth
  2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 2/2] hw/core/generic-loader: Compile only once, not for each target Thomas Huth
  0 siblings, 2 replies; 8+ messages in thread
From: Thomas Huth @ 2018-10-05 13:01 UTC (permalink / raw)
  To: qemu-devel, Alistair Francis
  Cc: Paolo Bonzini, Peter Crosthwaite, Richard Henderson,
	Michael S. Tsirkin, Peter Maydell, Laszlo Ersek

Provide a proper prototype for target_words_bigendian(), and use
this function in the generic-loader to be able to move it to common-obj.

v2:
 - Split up the single patch into two
 - Add a proper comment in front of the prototype in the header

Thomas Huth (2):
  cpu: Provide a proper prototype for target_words_bigendian() in a
    header
  hw/core/generic-loader: Compile only once, not for each target

 exec.c                   |  5 -----
 hw/core/Makefile.objs    |  2 +-
 hw/core/generic-loader.c |  6 +-----
 hw/virtio/virtio.c       |  1 -
 include/qom/cpu.h        | 11 +++++++++++
 qom/cpu.c                |  1 -
 6 files changed, 13 insertions(+), 13 deletions(-)

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header
  2018-10-05 13:01 [Qemu-devel] [PATCH v2 0/2] Use target_words_bigendian() for generic-loader Thomas Huth
@ 2018-10-05 13:01 ` Thomas Huth
  2018-10-05 13:14   ` Philippe Mathieu-Daudé
  2018-10-05 13:20   ` Laszlo Ersek
  2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 2/2] hw/core/generic-loader: Compile only once, not for each target Thomas Huth
  1 sibling, 2 replies; 8+ messages in thread
From: Thomas Huth @ 2018-10-05 13:01 UTC (permalink / raw)
  To: qemu-devel, Alistair Francis
  Cc: Paolo Bonzini, Peter Crosthwaite, Richard Henderson,
	Michael S. Tsirkin, Peter Maydell, Laszlo Ersek

We've got three places already that provide a prototype for this
function in a .c file - that's ugly. Let's provide a proper prototype
in a header instead, with a proper description why this function should
not be used in most cases.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 NB: I've tried to replace the "utterly broken" comment with something
 better, as suggested by Laszlo... not sure whether I've really got the
 message right here, so feel free to provide some better wording if you
 like!

 exec.c             |  5 -----
 hw/virtio/virtio.c |  1 -
 include/qom/cpu.h  | 11 +++++++++++
 qom/cpu.c          |  1 -
 4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/exec.c b/exec.c
index d0821e6..5d99ef5 100644
--- a/exec.c
+++ b/exec.c
@@ -3906,11 +3906,6 @@ int qemu_target_page_bits_min(void)
 }
 #endif
 
-/*
- * A helper function for the _utterly broken_ virtio device model to find out if
- * it's running on a big endian machine. Don't do this at home kids!
- */
-bool target_words_bigendian(void);
 bool target_words_bigendian(void)
 {
 #if defined(TARGET_WORDS_BIGENDIAN)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 94f5c8e..4e61944 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1169,7 +1169,6 @@ int virtio_set_status(VirtIODevice *vdev, uint8_t val)
     return 0;
 }
 
-bool target_words_bigendian(void);
 static enum virtio_device_endian virtio_default_endian(void)
 {
     if (target_words_bigendian()) {
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index dc130cd..6d35c37 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -1085,6 +1085,17 @@ void cpu_exec_initfn(CPUState *cpu);
 void cpu_exec_realizefn(CPUState *cpu, Error **errp);
 void cpu_exec_unrealizefn(CPUState *cpu);
 
+/**
+ * target_words_bigendian:
+ * Returns true if the (default) endianness of the target is big endian,
+ * false otherwise. Note that in target-specifc code, you can use
+ * TARGET_WORDS_BIGENDIAN directly instead. On the other hand, common
+ * code should normally never need to know about the endianness of the
+ * target, so please do *not* use this function unless you know very well
+ * what you are doing!
+ */
+bool target_words_bigendian(void);
+
 #ifdef NEED_CPU_H
 
 #ifdef CONFIG_SOFTMMU
diff --git a/qom/cpu.c b/qom/cpu.c
index 92599f3..f774654 100644
--- a/qom/cpu.c
+++ b/qom/cpu.c
@@ -194,7 +194,6 @@ static bool cpu_common_debug_check_watchpoint(CPUState *cpu, CPUWatchpoint *wp)
     return true;
 }
 
-bool target_words_bigendian(void);
 static bool cpu_common_virtio_is_big_endian(CPUState *cpu)
 {
     return target_words_bigendian();
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH v2 2/2] hw/core/generic-loader: Compile only once, not for each target
  2018-10-05 13:01 [Qemu-devel] [PATCH v2 0/2] Use target_words_bigendian() for generic-loader Thomas Huth
  2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header Thomas Huth
@ 2018-10-05 13:01 ` Thomas Huth
  2018-10-05 13:16   ` Philippe Mathieu-Daudé
  2018-10-05 16:24   ` Alistair Francis
  1 sibling, 2 replies; 8+ messages in thread
From: Thomas Huth @ 2018-10-05 13:01 UTC (permalink / raw)
  To: qemu-devel, Alistair Francis
  Cc: Paolo Bonzini, Peter Crosthwaite, Richard Henderson,
	Michael S. Tsirkin, Peter Maydell, Laszlo Ersek

The generic-loader is currently compiled target specific due to one
single "#ifdef TARGET_WORDS_BIGENDIAN" in the file. We have already a
function called target_words_bigendian() for this instead, so we can
put the generic-loader into common-obj to save some compilation time.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/core/Makefile.objs    | 2 +-
 hw/core/generic-loader.c | 6 +-----
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs
index eb88ca9..b736ce2 100644
--- a/hw/core/Makefile.objs
+++ b/hw/core/Makefile.objs
@@ -20,6 +20,6 @@ common-obj-$(CONFIG_SOFTMMU) += register.o
 common-obj-$(CONFIG_SOFTMMU) += or-irq.o
 common-obj-$(CONFIG_SOFTMMU) += split-irq.o
 common-obj-$(CONFIG_PLATFORM_BUS) += platform-bus.o
+common-obj-$(CONFIG_SOFTMMU) += generic-loader.o
 
-obj-$(CONFIG_SOFTMMU) += generic-loader.o
 obj-$(CONFIG_SOFTMMU) += null-machine.o
diff --git a/hw/core/generic-loader.c b/hw/core/generic-loader.c
index be29ae1..fbae05f 100644
--- a/hw/core/generic-loader.c
+++ b/hw/core/generic-loader.c
@@ -130,11 +130,7 @@ static void generic_loader_realize(DeviceState *dev, Error **errp)
         s->cpu = first_cpu;
     }
 
-#ifdef TARGET_WORDS_BIGENDIAN
-    big_endian = 1;
-#else
-    big_endian = 0;
-#endif
+    big_endian = target_words_bigendian();
 
     if (s->file) {
         AddressSpace *as = s->cpu ? s->cpu->as :  NULL;
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header
  2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header Thomas Huth
@ 2018-10-05 13:14   ` Philippe Mathieu-Daudé
  2018-10-05 13:20   ` Laszlo Ersek
  1 sibling, 0 replies; 8+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-10-05 13:14 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel, Alistair Francis
  Cc: Peter Maydell, Michael S. Tsirkin, Peter Crosthwaite,
	Paolo Bonzini, Laszlo Ersek, Richard Henderson

On 05/10/2018 15:01, Thomas Huth wrote:
> We've got three places already that provide a prototype for this
> function in a .c file - that's ugly. Let's provide a proper prototype
> in a header instead, with a proper description why this function should
> not be used in most cases.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  NB: I've tried to replace the "utterly broken" comment with something
>  better, as suggested by Laszlo... not sure whether I've really got the
>  message right here, so feel free to provide some better wording if you
>  like!
> 
>  exec.c             |  5 -----
>  hw/virtio/virtio.c |  1 -
>  include/qom/cpu.h  | 11 +++++++++++
>  qom/cpu.c          |  1 -
>  4 files changed, 11 insertions(+), 7 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index d0821e6..5d99ef5 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3906,11 +3906,6 @@ int qemu_target_page_bits_min(void)
>  }
>  #endif
>  
> -/*
> - * A helper function for the _utterly broken_ virtio device model to find out if
> - * it's running on a big endian machine. Don't do this at home kids!
> - */
> -bool target_words_bigendian(void);
>  bool target_words_bigendian(void)
>  {
>  #if defined(TARGET_WORDS_BIGENDIAN)
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index 94f5c8e..4e61944 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -1169,7 +1169,6 @@ int virtio_set_status(VirtIODevice *vdev, uint8_t val)
>      return 0;
>  }
>  
> -bool target_words_bigendian(void);
>  static enum virtio_device_endian virtio_default_endian(void)
>  {
>      if (target_words_bigendian()) {
> diff --git a/include/qom/cpu.h b/include/qom/cpu.h
> index dc130cd..6d35c37 100644
> --- a/include/qom/cpu.h
> +++ b/include/qom/cpu.h
> @@ -1085,6 +1085,17 @@ void cpu_exec_initfn(CPUState *cpu);
>  void cpu_exec_realizefn(CPUState *cpu, Error **errp);
>  void cpu_exec_unrealizefn(CPUState *cpu);
>  
> +/**
> + * target_words_bigendian:
> + * Returns true if the (default) endianness of the target is big endian,
> + * false otherwise. Note that in target-specifc code, you can use
> + * TARGET_WORDS_BIGENDIAN directly instead. On the other hand, common
> + * code should normally never need to know about the endianness of the
> + * target, so please do *not* use this function unless you know very well
> + * what you are doing!
> + */

Thanks for this cleanup!

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> +bool target_words_bigendian(void);
> +
>  #ifdef NEED_CPU_H
>  
>  #ifdef CONFIG_SOFTMMU
> diff --git a/qom/cpu.c b/qom/cpu.c
> index 92599f3..f774654 100644
> --- a/qom/cpu.c
> +++ b/qom/cpu.c
> @@ -194,7 +194,6 @@ static bool cpu_common_debug_check_watchpoint(CPUState *cpu, CPUWatchpoint *wp)
>      return true;
>  }
>  
> -bool target_words_bigendian(void);
>  static bool cpu_common_virtio_is_big_endian(CPUState *cpu)
>  {
>      return target_words_bigendian();
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2 2/2] hw/core/generic-loader: Compile only once, not for each target
  2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 2/2] hw/core/generic-loader: Compile only once, not for each target Thomas Huth
@ 2018-10-05 13:16   ` Philippe Mathieu-Daudé
  2018-10-05 16:24   ` Alistair Francis
  1 sibling, 0 replies; 8+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-10-05 13:16 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel, Alistair Francis
  Cc: Peter Maydell, Michael S. Tsirkin, Peter Crosthwaite,
	Paolo Bonzini, Laszlo Ersek, Richard Henderson

On 05/10/2018 15:01, Thomas Huth wrote:
> The generic-loader is currently compiled target specific due to one
> single "#ifdef TARGET_WORDS_BIGENDIAN" in the file. We have already a
> function called target_words_bigendian() for this instead, so we can
> put the generic-loader into common-obj to save some compilation time.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> ---
>  hw/core/Makefile.objs    | 2 +-
>  hw/core/generic-loader.c | 6 +-----
>  2 files changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs
> index eb88ca9..b736ce2 100644
> --- a/hw/core/Makefile.objs
> +++ b/hw/core/Makefile.objs
> @@ -20,6 +20,6 @@ common-obj-$(CONFIG_SOFTMMU) += register.o
>  common-obj-$(CONFIG_SOFTMMU) += or-irq.o
>  common-obj-$(CONFIG_SOFTMMU) += split-irq.o
>  common-obj-$(CONFIG_PLATFORM_BUS) += platform-bus.o
> +common-obj-$(CONFIG_SOFTMMU) += generic-loader.o
>  
> -obj-$(CONFIG_SOFTMMU) += generic-loader.o
>  obj-$(CONFIG_SOFTMMU) += null-machine.o
> diff --git a/hw/core/generic-loader.c b/hw/core/generic-loader.c
> index be29ae1..fbae05f 100644
> --- a/hw/core/generic-loader.c
> +++ b/hw/core/generic-loader.c
> @@ -130,11 +130,7 @@ static void generic_loader_realize(DeviceState *dev, Error **errp)
>          s->cpu = first_cpu;
>      }
>  
> -#ifdef TARGET_WORDS_BIGENDIAN
> -    big_endian = 1;
> -#else
> -    big_endian = 0;
> -#endif
> +    big_endian = target_words_bigendian();
>  
>      if (s->file) {
>          AddressSpace *as = s->cpu ? s->cpu->as :  NULL;
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header
  2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header Thomas Huth
  2018-10-05 13:14   ` Philippe Mathieu-Daudé
@ 2018-10-05 13:20   ` Laszlo Ersek
  2018-10-05 13:32     ` Peter Maydell
  1 sibling, 1 reply; 8+ messages in thread
From: Laszlo Ersek @ 2018-10-05 13:20 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel, Alistair Francis
  Cc: Paolo Bonzini, Peter Crosthwaite, Richard Henderson,
	Michael S. Tsirkin, Peter Maydell

On 10/05/18 15:01, Thomas Huth wrote:
> We've got three places already that provide a prototype for this
> function in a .c file - that's ugly. Let's provide a proper prototype
> in a header instead, with a proper description why this function should
> not be used in most cases.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  NB: I've tried to replace the "utterly broken" comment with something
>  better, as suggested by Laszlo... not sure whether I've really got the
>  message right here, so feel free to provide some better wording if you
>  like!
> 
>  exec.c             |  5 -----
>  hw/virtio/virtio.c |  1 -
>  include/qom/cpu.h  | 11 +++++++++++
>  qom/cpu.c          |  1 -
>  4 files changed, 11 insertions(+), 7 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index d0821e6..5d99ef5 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3906,11 +3906,6 @@ int qemu_target_page_bits_min(void)
>  }
>  #endif
>  
> -/*
> - * A helper function for the _utterly broken_ virtio device model to find out if
> - * it's running on a big endian machine. Don't do this at home kids!
> - */
> -bool target_words_bigendian(void);
>  bool target_words_bigendian(void)
>  {
>  #if defined(TARGET_WORDS_BIGENDIAN)
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index 94f5c8e..4e61944 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -1169,7 +1169,6 @@ int virtio_set_status(VirtIODevice *vdev, uint8_t val)
>      return 0;
>  }
>  
> -bool target_words_bigendian(void);
>  static enum virtio_device_endian virtio_default_endian(void)
>  {
>      if (target_words_bigendian()) {
> diff --git a/include/qom/cpu.h b/include/qom/cpu.h
> index dc130cd..6d35c37 100644
> --- a/include/qom/cpu.h
> +++ b/include/qom/cpu.h
> @@ -1085,6 +1085,17 @@ void cpu_exec_initfn(CPUState *cpu);
>  void cpu_exec_realizefn(CPUState *cpu, Error **errp);
>  void cpu_exec_unrealizefn(CPUState *cpu);
>  
> +/**
> + * target_words_bigendian:
> + * Returns true if the (default) endianness of the target is big endian,
> + * false otherwise. Note that in target-specifc code, you can use
> + * TARGET_WORDS_BIGENDIAN directly instead. On the other hand, common
> + * code should normally never need to know about the endianness of the
> + * target, so please do *not* use this function unless you know very well
> + * what you are doing!
> + */
> +bool target_words_bigendian(void);
> +
>  #ifdef NEED_CPU_H
>  
>  #ifdef CONFIG_SOFTMMU
> diff --git a/qom/cpu.c b/qom/cpu.c
> index 92599f3..f774654 100644
> --- a/qom/cpu.c
> +++ b/qom/cpu.c
> @@ -194,7 +194,6 @@ static bool cpu_common_debug_check_watchpoint(CPUState *cpu, CPUWatchpoint *wp)
>      return true;
>  }
>  
> -bool target_words_bigendian(void);
>  static bool cpu_common_virtio_is_big_endian(CPUState *cpu)
>  {
>      return target_words_bigendian();
> 

This makes sense to me. First I wasn't convinced, because I didn't
immediately get "target-specifc code". However, after looking at the 2nd
patch, I think I understand better (= the obj-XXX vs. common-obj-XXX
distinction). I also think that distinction is clear to any practicing
QEMU developers.

So, for what it's worth (which is admittedly not too much), for the series:

Reviewed-by: Laszlo Ersek <lersek@redhat.com>

Thanks
Laszlo

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header
  2018-10-05 13:20   ` Laszlo Ersek
@ 2018-10-05 13:32     ` Peter Maydell
  0 siblings, 0 replies; 8+ messages in thread
From: Peter Maydell @ 2018-10-05 13:32 UTC (permalink / raw)
  To: Laszlo Ersek
  Cc: Thomas Huth, QEMU Developers, Alistair Francis, Paolo Bonzini,
	Peter Crosthwaite, Richard Henderson, Michael S. Tsirkin

On 5 October 2018 at 14:20, Laszlo Ersek <lersek@redhat.com> wrote:
> On 10/05/18 15:01, Thomas Huth wrote:
>> We've got three places already that provide a prototype for this
>> function in a .c file - that's ugly. Let's provide a proper prototype
>> in a header instead, with a proper description why this function should
>> not be used in most cases.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---

>> +/**
>> + * target_words_bigendian:
>> + * Returns true if the (default) endianness of the target is big endian,
>> + * false otherwise. Note that in target-specifc code, you can use

"specific"

>> + * TARGET_WORDS_BIGENDIAN directly instead. On the other hand, common
>> + * code should normally never need to know about the endianness of the
>> + * target, so please do *not* use this function unless you know very well
>> + * what you are doing!
>> + */
>> +bool target_words_bigendian(void);
>> +
>>  #ifdef NEED_CPU_H
>>
>>  #ifdef CONFIG_SOFTMMU
>> diff --git a/qom/cpu.c b/qom/cpu.c
>> index 92599f3..f774654 100644
>> --- a/qom/cpu.c
>> +++ b/qom/cpu.c
>> @@ -194,7 +194,6 @@ static bool cpu_common_debug_check_watchpoint(CPUState *cpu, CPUWatchpoint *wp)
>>      return true;
>>  }
>>
>> -bool target_words_bigendian(void);
>>  static bool cpu_common_virtio_is_big_endian(CPUState *cpu)
>>  {
>>      return target_words_bigendian();
>>
>
> This makes sense to me. First I wasn't convinced, because I didn't
> immediately get "target-specifc code". However, after looking at the 2nd
> patch, I think I understand better (= the obj-XXX vs. common-obj-XXX
> distinction). I also think that distinction is clear to any practicing
> QEMU developers.

Yes; target-specific code is compiled for each qemu-system-*
executable (and has access to #defines and so on that relate
specifically to that target); common code is built just once
and the same .o linked into each executable.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2 2/2] hw/core/generic-loader: Compile only once, not for each target
  2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 2/2] hw/core/generic-loader: Compile only once, not for each target Thomas Huth
  2018-10-05 13:16   ` Philippe Mathieu-Daudé
@ 2018-10-05 16:24   ` Alistair Francis
  1 sibling, 0 replies; 8+ messages in thread
From: Alistair Francis @ 2018-10-05 16:24 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel@nongnu.org Developers, Alistair Francis,
	Peter Maydell, Michael S. Tsirkin, Peter Crosthwaite,
	Paolo Bonzini, Laszlo Ersek, Richard Henderson

On Fri, Oct 5, 2018 at 6:05 AM Thomas Huth <thuth@redhat.com> wrote:
>
> The generic-loader is currently compiled target specific due to one
> single "#ifdef TARGET_WORDS_BIGENDIAN" in the file. We have already a
> function called target_words_bigendian() for this instead, so we can
> put the generic-loader into common-obj to save some compilation time.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
>  hw/core/Makefile.objs    | 2 +-
>  hw/core/generic-loader.c | 6 +-----
>  2 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs
> index eb88ca9..b736ce2 100644
> --- a/hw/core/Makefile.objs
> +++ b/hw/core/Makefile.objs
> @@ -20,6 +20,6 @@ common-obj-$(CONFIG_SOFTMMU) += register.o
>  common-obj-$(CONFIG_SOFTMMU) += or-irq.o
>  common-obj-$(CONFIG_SOFTMMU) += split-irq.o
>  common-obj-$(CONFIG_PLATFORM_BUS) += platform-bus.o
> +common-obj-$(CONFIG_SOFTMMU) += generic-loader.o
>
> -obj-$(CONFIG_SOFTMMU) += generic-loader.o
>  obj-$(CONFIG_SOFTMMU) += null-machine.o
> diff --git a/hw/core/generic-loader.c b/hw/core/generic-loader.c
> index be29ae1..fbae05f 100644
> --- a/hw/core/generic-loader.c
> +++ b/hw/core/generic-loader.c
> @@ -130,11 +130,7 @@ static void generic_loader_realize(DeviceState *dev, Error **errp)
>          s->cpu = first_cpu;
>      }
>
> -#ifdef TARGET_WORDS_BIGENDIAN
> -    big_endian = 1;
> -#else
> -    big_endian = 0;
> -#endif
> +    big_endian = target_words_bigendian();
>
>      if (s->file) {
>          AddressSpace *as = s->cpu ? s->cpu->as :  NULL;
> --
> 1.8.3.1
>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-10-05 16:25 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-05 13:01 [Qemu-devel] [PATCH v2 0/2] Use target_words_bigendian() for generic-loader Thomas Huth
2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header Thomas Huth
2018-10-05 13:14   ` Philippe Mathieu-Daudé
2018-10-05 13:20   ` Laszlo Ersek
2018-10-05 13:32     ` Peter Maydell
2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 2/2] hw/core/generic-loader: Compile only once, not for each target Thomas Huth
2018-10-05 13:16   ` Philippe Mathieu-Daudé
2018-10-05 16:24   ` Alistair Francis

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.