diff mbox

qemu: Fix cross compilation for mipsel

Message ID 1377619333-16062-1-git-send-email-james.hogan@imgtec.com
State New
Headers show

Commit Message

James Hogan Aug. 27, 2013, 4:02 p.m. UTC
The configure script was setting HOST_WORDS_BIGENDIAN for all $cpu =
mips|mips64 when cross compiling, since endianness cannot be detected by
running a test program. This includes little endian MIPS though. It
didn't cause any build errors but does prevent QEMU from working
correctly. Instead, detect the endianness similar to how we do for ARM,
by checking for the __MIPSEB__ builtin processor definition.

This is from a hunk in the "[PATCH 8/12] KVM/MIPS: Enable KVM/MIPS for
MIPS targets. Add MIPS GIC code to the build" patch by Sanjay Lal [1].

[1] https://patchwork.kernel.org/patch/2207251/

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Andreas Färber <afaerber@suse.de>
Cc: Sanjay Lal <sanjayl@kymasys.com>
Cc: qemu-stable@nongnu.org
---
 configure | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Richard Henderson Aug. 27, 2013, 6:39 p.m. UTC | #1
On 08/27/2013 09:02 AM, James Hogan wrote:
> The configure script was setting HOST_WORDS_BIGENDIAN for all $cpu =
> mips|mips64 when cross compiling, since endianness cannot be detected by
> running a test program. This includes little endian MIPS though. It
> didn't cause any build errors but does prevent QEMU from working
> correctly. Instead, detect the endianness similar to how we do for ARM,
> by checking for the __MIPSEB__ builtin processor definition.
> 
> This is from a hunk in the "[PATCH 8/12] KVM/MIPS: Enable KVM/MIPS for
> MIPS targets. Add MIPS GIC code to the build" patch by Sanjay Lal [1].

Redundant with Mike Frysinger's more general patch,

http://patchwork.ozlabs.org/patch/256001/


r~
James Hogan Aug. 28, 2013, 8:25 a.m. UTC | #2
On 27/08/13 19:39, Richard Henderson wrote:
> On 08/27/2013 09:02 AM, James Hogan wrote:
>> The configure script was setting HOST_WORDS_BIGENDIAN for all $cpu =
>> mips|mips64 when cross compiling, since endianness cannot be detected by
>> running a test program. This includes little endian MIPS though. It
>> didn't cause any build errors but does prevent QEMU from working
>> correctly. Instead, detect the endianness similar to how we do for ARM,
>> by checking for the __MIPSEB__ builtin processor definition.
>>
>> This is from a hunk in the "[PATCH 8/12] KVM/MIPS: Enable KVM/MIPS for
>> MIPS targets. Add MIPS GIC code to the build" patch by Sanjay Lal [1].
> 
> Redundant with Mike Frysinger's more general patch,
> 
> http://patchwork.ozlabs.org/patch/256001/

Even better. Thanks for pointing that out. I've added my tested-by.

Cheers
James
diff mbox

Patch

diff --git a/configure b/configure
index 0a55c20..a765a9f 100755
--- a/configure
+++ b/configure
@@ -1415,7 +1415,12 @@  case "$cpu" in
       bigendian=yes
     fi
   ;;
-  hppa|m68k|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64)
+  mips|mips64)
+    if check_define __MIPSEB__; then
+      bigendian=yes
+    fi
+  ;;
+  hppa|m68k|ppc|ppc64|s390|s390x|sparc|sparc64)
     bigendian=yes
   ;;
 esac