On Wed, Aug 29, 2012 at 09:38:00PM -0400, Kevin O'Connor wrote:
Hi Michael,
I was running through the SeaBIOS release checks when I found that the new iasl-option code in the Makefile seems to choke on older versions of iasl (for example, version 20120123 as shipped with fc13). Can you verify if the iasl detection still works properly for you with the patch below?
-Kevin
So I think using -h is a bad idea: it failed once it might fail again. How about the following patch instead? Tested with latest iasl from git (which needs -Pn) and with F17 version (which does not).
-->
Makefile: fix iasl option detection
IASL option detection relied on iasl -h exit status which is not very robust: -h is not expected to be used from scripts. In particular combination of -h with any option seems to succeed with some old versions of iasl (e.g. version 20120123 as shipped with fc13).
Instead, supply a dummy input file and run iasl on it to test option support.
Signed-off-by: Michael S. Tsirkin mst@redhat.com
---
diff --git a/Makefile b/Makefile index 72ee152..0ab9f9f 100644 --- a/Makefile +++ b/Makefile @@ -221,14 +221,15 @@ $(OUT)vgabios.bin: $(OUT)vgabios.bin.raw tools/buildrom.py
################ DSDT build rules
-iasl-option=$(shell if "$(1)" "$(2)" -h > /dev/null 2>&1 \ - ; then echo "$(2)"; else echo "$(3)"; fi ;) +iasl-option=$(shell cp src/iasl-test.dsl $(1)/iasl-test.dsl; \ + if "$(2)" "$(3)" $(1)/iasl-test.dsl > /dev/null 2>&1 \ + ; then echo "$(3)"; else echo "$(4)"; fi ;)
$(OUT)%.hex: src/%.dsl ./tools/acpi_extract_preprocess.py ./tools/acpi_extract.py @echo " Compiling IASL $@" $(Q)cpp -P $< > $(OUT)$*.dsl.i.orig $(Q)$(PYTHON) ./tools/acpi_extract_preprocess.py $(OUT)$*.dsl.i.orig > $(OUT)$*.dsl.i - $(Q)$(IASL) $(call iasl-option,$(IASL),-Pn,) -vs -l -tc -p $(OUT)$* $(OUT)$*.dsl.i + $(Q)$(IASL) $(call iasl-option,$(OUT),$(IASL),-Pn,) -vs -l -tc -p $(OUT)$* $(OUT)$*.dsl.i $(Q)$(PYTHON) ./tools/acpi_extract.py $(OUT)$*.lst > $(OUT)$*.off $(Q)cat $(OUT)$*.off > $@
diff --git a/src/iasl-test.dsl b/src/iasl-test.dsl index e69de29..1a8b95e 100644 --- a/src/iasl-test.dsl +++ b/src/iasl-test.dsl @@ -0,0 +1,6 @@ +DefinitionBlock ("iasl-test.aml", "TEST", 0x01, "TSTC", "TESTIASLCMP", 0x1) +{ + + Device (TEST) { + } +}