On Mon, Nov 25, 2013 at 09:08:20PM +0100, Erik Rull wrote: > 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 >
where did you get this iasl btw?