From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39369) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vl2SO-00054r-Fh for qemu-devel@nongnu.org; Mon, 25 Nov 2013 15:08:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vl2SH-0005S5-5S for qemu-devel@nongnu.org; Mon, 25 Nov 2013 15:08:32 -0500 Received: from moutng.kundenserver.de ([212.227.126.186]:59974) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vl2SG-0005Ra-SR for qemu-devel@nongnu.org; Mon, 25 Nov 2013 15:08:25 -0500 Message-ID: <5293AE34.7030603@rdsoftware.de> Date: Mon, 25 Nov 2013 21:08:20 +0100 From: Erik Rull MIME-Version: 1.0 References: <250225497.60855.1385021203160.open-xchange@email.1und1.de> <20131121083648.GI24886@G08FNSTD100614.fnst.cn.fujitsu.com> <528E70AD.4050900@rdsoftware.de> <20131122105631.GE24388@stefanha-thinkpad.redhat.com> <54035371.127078.1385118997906.open-xchange@email.1und1.de> <528F8F43.4080202@redhat.com> <528FBC65.5050302@rdsoftware.de> <20131124112815.GA7528@redhat.com> In-Reply-To: <20131124112815.GA7528@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] GIT master fails compilation for ACPI List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" , Erik Rull Cc: Paolo Bonzini , Hu Tao , "qemu-devel@nongnu.org" , Stefan Hajnoczi 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 $$ = 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