| From 4731e5c2fd12e1faf421d63b715c538d43c1dddb Mon Sep 17 00:00:00 2001 |
| Message-Id: <4731e5c2fd12e1faf421d63b715c538d43c1dddb.1387298827.git.minovotn@redhat.com> |
| In-Reply-To: <3ed0fb61a3dc912ef036d7ef450bed192090709e.1387298827.git.minovotn@redhat.com> |
| References: <3ed0fb61a3dc912ef036d7ef450bed192090709e.1387298827.git.minovotn@redhat.com> |
| From: "Michael S. Tsirkin" <mst@redhat.com> |
| Date: Tue, 17 Dec 2013 15:18:15 +0100 |
| Subject: [PATCH 33/56] acpi: add rules to compile ASL source |
| |
| RH-Author: Michael S. Tsirkin <mst@redhat.com> |
| Message-id: <1387293161-4085-34-git-send-email-mst@redhat.com> |
| Patchwork-id: 56339 |
| O-Subject: [PATCH qemu-kvm RHEL7.0 v2 33/57] acpi: add rules to compile ASL source |
| Bugzilla: 1034876 |
| RH-Acked-by: Igor Mammedov <imammedo@redhat.com> |
| RH-Acked-by: Marcel Apfelbaum <marcel.a@redhat.com> |
| RH-Acked-by: Laszlo Ersek <lersek@redhat.com> |
| |
| 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. |
| |
| Note: distros are known to silently update iasl |
| so detect correct iasl flags for the installed version on each run as |
| opposed to at configure time. |
| |
| Reviewed-by: Laszlo Ersek <lersek@redhat.com> |
| Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> |
| Tested-by: Gerd Hoffmann <kraxel@redhat.com> |
| Reviewed-by: Igor Mammedov <imammedo@redhat.com> |
| Tested-by: Igor Mammedov <imammedo@redhat.com> |
| Signed-off-by: Michael S. Tsirkin <mst@redhat.com> |
| (cherry picked from commit a31a864273bb501851a4d52a366c645d06a53991) |
| |
| Conflicts: |
| configure |
| |
| 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 |
| |
| Signed-off-by: Michal Novotny <minovotn@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 1af1079..f86793d 100755 |
| |
| |
| @@ -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="" |
| @@ -252,6 +253,8 @@ for opt do |
| ;; |
| --cc=*) CC="$optarg" |
| ;; |
| + --iasl=*) iasl="$optarg" |
| + ;; |
| --source-path=*) source_path="$optarg" |
| ;; |
| --cpu=*) cpu="$optarg" |
| @@ -1074,6 +1077,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]" |
| @@ -4056,6 +4060,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 |
| @@ -4544,7 +4551,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 |
| |
| |
| @@ -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 |
| |
| |
| @@ -0,0 +1,4 @@ |
| +cd x86_64-softmmu |
| +for file in hw/i386/*.hex; do |
| + cp -f $file ../$file.generated |
| +done |
| -- |
| 1.7.11.7 |
| |