Message ID | 1377619333-16062-1-git-send-email-james.hogan@imgtec.com |
---|---|
State | New |
Headers | show |
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~
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 --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
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(-)