From: Laszlo Ersek <lersek@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 repost 3/9] acpi: add rules to compile ASL source
Date: Thu, 11 Jul 2013 18:55:37 +0200 [thread overview]
Message-ID: <51DEE389.4080201@redhat.com> (raw)
In-Reply-To: <1373464153-18979-4-git-send-email-mst@redhat.com>
On 07/10/13 15:51, Michael S. Tsirkin wrote:
> Detect presence of IASL compiler and use it
> to process ASL source. If not there, use pre-compiled
> files in-tree. Add script to update the in-tree files.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> configure | 9 ++++++++-
> hw/i386/Makefile.objs | 22 ++++++++++++++++++++++
> scripts/update-acpi.sh | 4 ++++
> 3 files changed, 34 insertions(+), 1 deletion(-)
> create mode 100644 scripts/update-acpi.sh
>
> diff --git a/configure b/configure
> index 0e0adde..4fb54e2 100755
> --- a/configure
> +++ b/configure
> @@ -119,6 +119,7 @@ path_of() {
> # default parameters
> source_path=`dirname "$0"`
> cpu=""
> +iasl="iasl"
> interp_prefix="/usr/gnemul/qemu-%M"
> static="no"
> cross_prefix=""
> @@ -251,6 +252,8 @@ for opt do
> ;;
> --cc=*) CC="$optarg"
> ;;
> + --iasl=*) iasl="$optarg"
> + ;;
> --source-path=*) source_path="$optarg"
> ;;
> --cpu=*) cpu="$optarg"
> @@ -1020,6 +1023,7 @@ echo "Advanced options (experts only):"
> echo " --source-path=PATH path of source code [$source_path]"
> echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
> echo " --cc=CC use C compiler CC [$cc]"
> +echo " --iasl=IASL use ACPI compiler IASL [$iasl]"
> echo " --host-cc=CC use C compiler CC [$host_cc] for code run at"
> echo " build time"
> echo " --objcc=OBJCC use Objective-C compiler OBJCC [$objcc]"
> @@ -4037,6 +4041,9 @@ else
> fi
> echo "PYTHON=$python" >> $config_host_mak
> echo "CC=$cc" >> $config_host_mak
> +if $iasl -h > /dev/null 2>&1; then
> + echo "IASL=$iasl" >> $config_host_mak
> +fi
> echo "CC_I386=$cc_i386" >> $config_host_mak
> echo "HOST_CC=$host_cc" >> $config_host_mak
> echo "OBJCC=$objcc" >> $config_host_mak
> @@ -4509,7 +4516,7 @@ for rom in seabios vgabios ; do
> echo "BCC=bcc" >> $config_mak
> echo "CPP=$cpp" >> $config_mak
> echo "OBJCOPY=objcopy" >> $config_mak
> - echo "IASL=iasl" >> $config_mak
> + echo "IASL=$iasl" >> $config_mak
> echo "LD=$ld" >> $config_mak
> done
>
> diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
> index 205d22e..013d250 100644
> --- a/hw/i386/Makefile.objs
> +++ b/hw/i386/Makefile.objs
> @@ -4,3 +4,25 @@ obj-y += pc.o pc_piix.o pc_q35.o
> obj-$(CONFIG_XEN) += xen_domainbuild.o xen_machine_pv.o
>
> obj-y += kvmvapic.o
> +
> +iasl-option=$(shell if test -z "`$(1) $(2) 2>&1 > /dev/null`" \
> + ; then echo "$(2)"; else echo "$(3)"; fi ;)
> +
> +ifdef IASL
> +#IASL Present. Generate hex files from .dsl
> +hw/i386/%.hex: $(SRC_PATH)/hw/i386/%.dsl $(SRC_PATH)/scripts/acpi_extract_preprocess.py $(SRC_PATH)/scripts/acpi_extract.py
> + $(call quiet-command, cpp -P $< -o $*.dsl.i.orig, " CPP $(TARGET_DIR)$*.dsl.i.orig")
> + $(call quiet-command, $(PYTHON) $(SRC_PATH)/scripts/acpi_extract_preprocess.py $*.dsl.i.orig > $*.dsl.i, " ACPI_PREPROCESS $(TARGET_DIR)$*.dsl.i")
> + $(call quiet-command, $(IASL) $(call iasl-option,$(IASL),-Pn,) -vs -l -tc -p $* $*.dsl.i $(if $(V), , > /dev/null) 2>&1 ," IASL $(TARGET_DIR)$*.dsl.i")
> + $(call quiet-command, $(SRC_PATH)/scripts/acpi_extract.py $*.lst > $*.off, " ACPI_EXTRACT $(TARGET_DIR)$*.off")
> + $(call quiet-command, cat $*.off > $@, " CAT $(TARGET_DIR)$@")
> +else
> +#IASL Not present. Restore pre-generated hex files.
> +hw/i386/%.hex: $(SRC_PATH)/hw/i386/%.hex.generated
> + $(call quiet-command, cp -f $< $@, " CP $(TARGET_DIR)$@")
> +endif
> +
> +.PHONY: cleanhex
> +cleanhex:
> + rm -f hw/i386/*hex
> +clean: cleanhex
> diff --git a/scripts/update-acpi.sh b/scripts/update-acpi.sh
> new file mode 100644
> index 0000000..b5f05ff
> --- /dev/null
> +++ b/scripts/update-acpi.sh
> @@ -0,0 +1,4 @@
> +cd x86_64-softmmu
> +for file in hw/i386/*.hex; do
> + cp -f $file ../$file.generated
> +done
>
I think:
- this patch (3/9) should be swapped with the next one (4/9), so that
the pre-generated files are available earlier than the build code
potentially relying on them,
- the "iasl-option" trick should be moved to ./configure perhaps.
Patches 1 & 2 look OK to me.
Laszlo
next prev parent reply other threads:[~2013-07-11 16:53 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-10 13:51 [Qemu-devel] [PATCH v2 repost 0/9] qemu: generate acpi tables for the guest Michael S. Tsirkin
2013-07-10 13:51 ` [Qemu-devel] [PATCH v2 repost 1/9] hw/i386/pc.c: move IO_APIC_DEFAULT_ADDRESS to include/hw/i386/apic.h Michael S. Tsirkin
2013-07-11 16:57 ` Laszlo Ersek
2013-07-15 7:11 ` Hu Tao
2013-07-10 13:51 ` [Qemu-devel] [PATCH v2 repost 2/9] i386: add ACPI table files from seabios Michael S. Tsirkin
2013-07-11 16:57 ` Laszlo Ersek
2013-07-15 7:49 ` Hu Tao
2013-07-15 10:14 ` Michael S. Tsirkin
2013-07-10 13:51 ` [Qemu-devel] [PATCH v2 repost 3/9] acpi: add rules to compile ASL source Michael S. Tsirkin
2013-07-11 16:55 ` Laszlo Ersek [this message]
2013-07-11 16:58 ` Laszlo Ersek
2013-07-11 17:10 ` Michael S. Tsirkin
2013-07-15 8:00 ` Hu Tao
2013-07-15 8:19 ` Michael S. Tsirkin
2013-07-10 13:51 ` [Qemu-devel] [PATCH v2 repost 4/9] acpi: pre-compiled ASL files Michael S. Tsirkin
2013-07-11 16:59 ` Laszlo Ersek
2013-07-10 13:51 ` [Qemu-devel] [PATCH v2 repost 5/9] i386: add bios linker/loader Michael S. Tsirkin
2013-07-12 14:17 ` Laszlo Ersek
2013-07-14 11:41 ` Michael S. Tsirkin
2013-07-15 7:33 ` Laszlo Ersek
2013-07-15 9:01 ` Michael S. Tsirkin
2013-07-10 13:51 ` [Qemu-devel] [PATCH v2 repost 6/9] loader: support for unmapped ROM blobs Michael S. Tsirkin
2013-07-15 13:22 ` Laszlo Ersek
2013-07-15 16:03 ` Michael S. Tsirkin
2013-07-15 18:30 ` Laszlo Ersek
2013-07-17 12:20 ` Laszlo Ersek
2013-07-10 13:51 ` [Qemu-devel] [PATCH v2 repost 7/9] loader: allow adding ROMs in done callbacks Michael S. Tsirkin
2013-07-17 12:23 ` Laszlo Ersek
2013-07-10 13:51 ` [Qemu-devel] [PATCH v2 repost 8/9] i386: generate pc guest info Michael S. Tsirkin
2013-07-17 15:07 ` Laszlo Ersek
2013-07-24 15:36 ` Laszlo Ersek
2013-07-24 15:47 ` Michael S. Tsirkin
2013-07-19 3:55 ` Hu Tao
2013-07-10 13:51 ` [Qemu-devel] [PATCH v2 repost 9/9] i386: ACPI table generation code from seabios 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=51DEE389.4080201@redhat.com \
--to=lersek@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/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.