On Thu, 2014-03-20 at 22:17 +0000, Peter Maydell wrote: > On 20 March 2014 22:06, Marcel Apfelbaum <marce...@redhat.com> wrote: > > On Thu, 2014-03-20 at 22:57 +0100, Paolo Bonzini wrote: > >> Il 20/03/2014 22:14, Marcel Apfelbaum ha scritto: > >> > +# All known versions of iasl on BE machines are broken. > >> > +# TODO: add detection code once a non-broken version makes an > >> > appearance. > >> > +if ($iasl -h > /dev/null 2>&1) && > >> > + (lscpu | grep "Byte Order" | grep --quiet "Little Endian" ); then > >> > >> lscpu is not portable. > > I am open to suggestions... > > echo "trivial iasl source" | iasl --compile-options | iasl > --disassemble-options | grep "error" > > Fill in the handwaving with actual syntax ;-) Thanks Peter!
Problem with this solution is that if we start from the source, it will compile into a *wrong* AML (e.g header length will be BE and not LE), then the disassemble will *succeed* (!!!). However, the expected AML file will be in the right format and fail :(. I can use one of the expected AML files, but it would not be elegant to use a test file in the configuration script. What about Laszlo's idea? Would something like: X=$(printf '\336\255\276\357' | od -A n -t x4) be acceptable ? Thanks, Marcel > > thanks > -- PMM