On Thu, Nov 16, 2017 at 05:43:52PM +0100, Thomas Huth wrote:
> On 16.11.2017 17:15, Peter Maydell wrote:
> > On 16 November 2017 at 16:13, Daniel P. Berrange <[email protected]> 
> > wrote:
> >> On Thu, Nov 16, 2017 at 04:10:22PM +0000, Peter Maydell wrote:
> >>> If there are known-buggy iasl versions in the wild we could
> >>> consider a configure test and treat buggy-iasl like no-iasl.
> >>
> >> iasl has long been broken on big-endian, but it has also long contained
> >> code that simply makes it exit immediately in that case, and qemu copes
> >> with that. So if there's buggy iasl it would be a distro which removed
> >> this big-endian check and tried to make it work on big-endian but failed.
> >> Fedora tried the latter, but at least in rawhide it works properly now.
> >> I'm unclear if we shipped broken iasl with the BE check removed in stable
> >> versions though
> > 
> > In this case this is Ubuntu 16.04.2 LTS (xenial) on s390x, with
> > 
> > linux1@lxub05:~$ iasl -v
> > 
> > Intel ACPI Component Architecture
> > ASL+ Optimizing Compiler version 20160108-64
> > Copyright (c) 2000 - 2016 Intel Corporation
> 
> That's likely a broken version, indeed. I've noticed that the iasl that
> ships with the acpica-tools in RHEL7 is broken, too - it does not
> contain the big-endian check (yet?), and fails to byte-swap on big
> endian hosts.
> 
> If you compile the latest version from upstream, you get this instead:
> 
> $ iasl -v
> iASL is not currently supported on big-endian machines.
> 
> But as Daniel already wrote: The version from Fedora contains some
> patches that fix the endianess issue, so that iasl with these patches
> also works fine on big endian hosts:
> 
>  
> https://src.fedoraproject.org/rpms/acpica-tools/blob/master/f/big-endian.patch
>  
> https://src.fedoraproject.org/rpms/acpica-tools/blob/master/f/big-endian-v2.patch
> 
>  Thomas

For the record, I think we should remove the dependency on iasl for
tests too. It is still a handy tool for debugging, so the following
would be a good plan IMHO:

- compare binary actual to expected in memory
- on match pass and skip iasl
- on mismatch, generate aml, run iasl, show
  output in existing format.
  then fail
- when generating expected files, print diff
  and make it easy to append to commit log


-- 
MST

Reply via email to