On Thu, 2014-03-20 at 23:26 +0100, Laszlo Ersek wrote: > On 03/20/14 23:06, Marcel Apfelbaum 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... > > I'll try to come up with something else. > > The printf and od utilities are portable. You can use printf to print a > character string, and use od to group that character string into > multibyte integers in the native byte order. > > Example: > > X=$(printf '\336\255\276\357' | od -A n -t x4) Hi Laszlo, Thanks for the help!
I've seen something like that somewhere, but I didn't quite like it. I was looking for something more elegant as I was *almost* sure this kind of solution will not pass the reviews :) But maybe I'll try this, let's see what happens, Thanks! Marcel > > This sets X to " efbeadde" on little endian, and " deadbeef" on big endian. > > Laszlo