qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] GIT master fails compilation for ACPI


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] GIT master fails compilation for ACPI
Date: Sun, 24 Nov 2013 13:28:15 +0200

On Fri, Nov 22, 2013 at 09:19:49PM +0100, Erik Rull wrote:
> Paolo Bonzini wrote:
> >Il 22/11/2013 12:16, Erik Rull ha scritto:
> >>It's getting more and more complex to build qemu, is there a reason why 
> >>everyone
> >>needs to build the acpi stuff by himself?
> >
> >It is only attempted if iasl is installed but as you said below, your
> >version is too old.  Please run "make V=1" so that we can see what is
> >the problem.
> >
> >>It should be something static like the bios binary files, right?
> >
> >ACPI tables are now generated by QEMU, so the ACPI compilation step
> >happens while compiling QEMU.
> >
> >>So you could provide the defaults directly and everyone that wants to 
> >>modify the
> >>defaults is free to compile it by himself.
> >>
> >>And if these tools are required, please add an error message at configure
> >>runtime so that the successive errors at runtime will not appear, because
> >>compiling is then blocked by configure. And if the IASL is too old, a 
> >>version
> >>check at configure runtime would be helpful as well.
> >
> >Good idea.  Any chance you could help?  Version 20090123 should be new
> >enough.
> 
> Hi Paolo,
> 
> Sure, here the V=1 result - I tried already some make options to get
> the verbose output, but I didn't find this trivial option :-)
> 
> address@hidden:~/qemu-test/qemu$ make V=1
> make  BUILD_DIR=/home/erik/qemu-test/qemu -C pixman V="1" all
> make[1]: Entering directory `/home/erik/qemu-test/qemu/pixman'
> make  all-recursive
> make[2]: Entering directory `/home/erik/qemu-test/qemu/pixman'
> Making all in pixman
> make[3]: Entering directory `/home/erik/qemu-test/qemu/pixman/pixman'
> make  all-am
> make[4]: Entering directory `/home/erik/qemu-test/qemu/pixman/pixman'
> make[4]: Nothing to be done for `all-am'.
> make[4]: Leaving directory `/home/erik/qemu-test/qemu/pixman/pixman'
> make[3]: Leaving directory `/home/erik/qemu-test/qemu/pixman/pixman'
> Making all in test
> make[3]: Entering directory `/home/erik/qemu-test/qemu/pixman/test'
> make[3]: Nothing to be done for `all'.
> make[3]: Leaving directory `/home/erik/qemu-test/qemu/pixman/test'
> make[3]: Entering directory `/home/erik/qemu-test/qemu/pixman'
> make[3]: Nothing to be done for `all-am'.
> make[3]: Leaving directory `/home/erik/qemu-test/qemu/pixman'
> make[2]: Leaving directory `/home/erik/qemu-test/qemu/pixman'
> make[1]: Leaving directory `/home/erik/qemu-test/qemu/pixman'
> make  BUILD_DIR=/home/erik/qemu-test/qemu -C x86_64-softmmu V="1"
> TARGET_DIR="x86_64-softmmu/" all
> make[1]: Entering directory `/home/erik/qemu-test/qemu/x86_64-softmmu'
> cpp -P /home/erik/qemu-test/qemu/hw/i386/acpi-dsdt.dsl -o acpi-dsdt.dsl.i.orig
> python /home/erik/qemu-test/qemu/scripts/acpi_extract_preprocess.py
> acpi-dsdt.dsl.i.orig > acpi-dsdt.dsl.i
> iasl  -vs -l -tc -p acpi-dsdt acpi-dsdt.dsl.i   2>&1
> acpi-dsdt.dsl.i    84:             0x8000000000,
> Error    4094 -                   ^ Conversion error: AE_BAD_HEX_CONSTANT
> 
> 
> acpi-dsdt.dsl.i    85:             0xFFFFFFFFFF,
> Error    4094 -                   ^ Conversion error: AE_BAD_HEX_CONSTANT
> 
> 
> acpi-dsdt.dsl.i    87:             0x8000000000,
> Error    4094 -                   ^ Conversion error: AE_BAD_HEX_CONSTANT
> 
> 
> ASL Input:  acpi-dsdt.dsl.i - 476 lines, 19189 bytes, 316 keywords
> Compilation complete. 3 Errors, 0 Warnings, 0 Remarks, 246 Optimizations
> make[1]: *** [hw/i386/acpi-dsdt.hex] Error 1
> make[1]: Leaving directory `/home/erik/qemu-test/qemu/x86_64-softmmu'
> make: *** [subdir-x86_64-softmmu] Error 2
> address@hidden:~/qemu-test/qemu$
> 
> Best regards,
> 
> Erik

This IASL version seems broken: apparently it can't process 64 bit
constants?

The assumption is that if you have iasl installed you
are a developer that wants to hack on iasl, so
we are trying to build ACPI from source.

We did go out of our way to support systems without IASL
though, so as a quick work-around you can just remove iasl
from your system, or add an iasl binary early in the path
that will return an error code when called with the -h
flag, e.g. use a shell script that simply does "exit 1"
or manually remove IASL= from config-host.mak
after running configure.

This will tell the build that you don't have iasl
so it will now build acpi from source.

I also sent patches that let you bypass the installed iasl
by configuring with --iasl=

As for support for old IASL versions - I downloaded
acpica-unix-20060912 from debian etch unpacked the original
tarball and applied the patch acpica-unix_20060912-3.2.diff
that came with etch. I then built the source on Fedora 19.

I had to change $$ = to $<n>$ = in a bunch of places
to make it build with modern bison (patch attached
if you are curious).

Afterwards I got a version of iasl that compiled
QEMU just fine, so the issue appears not to be with too-old iasl
generally, it's the specific version that is broken, maybe your distro
applied a broken patch?

Maybe we should just figure out what confuses your iasl.
Is your iasl able to compile the following chunk of code?


DefinitionBlock (
    "iasl-test.aml",    // Output Filename 
    "DSDT",             // Signature
    0x01,               // DSDT Compliance Revision
    "BXPC",             // OEMID
    "BXDSDT",           // TABLE ID
    0x1                 // OEM Revision
    )
{


    Name(CR64, ResourceTemplate() {
        QWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, 
ReadWrite,
            0x00000000,          // Address Space Granularity
            0x8000000000,        // Address Range Minimum
            0xFFFFFFFFFF,        // Address Range Maximum
            0x00000000,          // Address Translation Offset
            0x8000000000,        // Address Length
            ,, PW64, AddressRangeMemory, TypeStatic)
    })

    CreateQWordField(CR64, PW64._MIN, PS64)

}

-- 
MST

Attachment: acpica-unix_20060912-build-on-fedora.patch
Description: Text document


reply via email to

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