qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-2.0 V3] tests/acpi-test: do not run iasl on


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH for-2.0 V3] tests/acpi-test: do not run iasl on big endian machines
Date: Sun, 23 Mar 2014 12:48:37 +0000

On 23 March 2014 12:32, Marcel Apfelbaum <address@hidden> wrote:
> On Sun, 2014-03-23 at 12:14 +0000, Peter Maydell wrote:
>> On 23 March 2014 09:49, Michael S. Tsirkin <address@hidden> wrote:
>> > At this point I'm confused.
>> > If iasl compiler is broken, we should detect and fix that.
>> > It might be ok to just detect endian-ness as a quick work-around.
>> > BTW configure already has code to detect endian-ness:
>> > if test "$bigendian" = "yes" ; then
>> >   echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
>> > fi
>>
>> That's the endianness of the machine we're compiling QEMU
>> for, not the endianness of the machine we're compiling QEMU
>> on. If for instance you're on x86_64 cross-compiling for PPC
>> then HOST_WORDS_BIGENDIAN is true, but the iasl you use
>> in the build process will be running on a little endian machine.
>
> Hi Peter, are you sure about this?
> I saw the 'target_bigendian' that does what you described above.
> $bigendian is the result of a little C program that checks *host's* 
> endian-ness.
> Of course I might have missed something.

"host" for QEMU means "the machine QEMU will run on"
(as opposed to "target" meaning "the machine QEMU is emulating").
Those can both be different from the machine you're building on.
Example: you can be on an x86_64 machine cross-compiling a
qemu-system-mips intended to run on PPC hosts:
 build system: x86_64 (we don't currently try to identify its endianness)
 host system: PPC ("$bigendian" is set to endianness)
 target system: mips ("$target_bigendian" is set to endianness)

bigendian is set by cross-compiling a test object, which produces
a PPC object file that we then examine to see which endianness
the PPC system we're building for is.
target_bigendian is set for the target machine by just hard-coding it --
in this case it would be set because 'mips' is a bigendian target.
The iasl we use in the build process is the x86_64 native binary,
so neither $bigendian nor $target_bigendian are correct.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]