From: Erik Rull <erik.rull@rdsoftware.de>
To: "Michael S. Tsirkin" <mst@redhat.com>,
Erik Rull <erik.rull@rdsoftware.de>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Hu Tao <hutao@cn.fujitsu.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Stefan Hajnoczi <stefanha@gmail.com>
Subject: Re: [Qemu-devel] GIT master fails compilation for ACPI
Date: Mon, 25 Nov 2013 21:08:20 +0100 [thread overview]
Message-ID: <5293AE34.7030603@rdsoftware.de> (raw)
In-Reply-To: <20131124112815.GA7528@redhat.com>
Michael S. Tsirkin wrote:
> 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 :-)
>>
>> erik@debian:~/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
>> erik@debian:~/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)
>
> }
>
Hi all,
I disabled the iasl and it works now.
Thanks.
Best regards,
Erik
next prev parent reply other threads:[~2013-11-25 20:08 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-21 8:06 [Qemu-devel] GIT master fails compilation for ACPI Erik Rull
2013-11-21 8:36 ` Hu Tao
2013-11-21 20:44 ` Erik Rull
2013-11-22 10:56 ` Stefan Hajnoczi
2013-11-22 11:16 ` Erik Rull
2013-11-22 15:53 ` Stefan Hajnoczi
2013-11-22 17:07 ` Paolo Bonzini
2013-11-22 20:19 ` Erik Rull
2013-11-24 11:28 ` Michael S. Tsirkin
2013-11-25 20:08 ` Erik Rull [this message]
2013-11-25 20:34 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5293AE34.7030603@rdsoftware.de \
--to=erik.rull@rdsoftware.de \
--cc=hutao@cn.fujitsu.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.