tools/libacpi: fix sed usage
authorRoger Pau Monne <roger.pau@citrix.com>
Mon, 31 Oct 2016 10:05:20 +0000 (11:05 +0100)
committerWei Liu <wei.liu2@citrix.com>
Mon, 31 Oct 2016 10:33:11 +0000 (10:33 +0000)
Current usage of sed in the libacpi Makefile make uses of non-POSIX options,
that are not available on all the OSes supported by the Xen tools.

The '-i' option has slightly different semantics between GNU and BSD sed
implementations, while on the GNU version the suffix is optional, on the BSD
one it is not. Also BSD sed seems to have problems parsing the script
itself, reporting "extra characters at the end of d command".

Fix those issues by using a temporary intermediate file, and replace the
script with a simpler version that achieves the same purpose (removing the
initial license header comment).

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
tools/libacpi/Makefile

index 18a5cd43b81a7502d704192bac707e92d0d57120..b79db470b83289c45095014a2dc92a7640d81d9e 100644 (file)
@@ -47,9 +47,11 @@ $(MK_DSDT): mk_dsdt.c
 
 ifeq ($(GPL),y)
 $(ACPI_BUILD_DIR)/dsdt_anycpu_qemu_xen.asl: dsdt.asl dsdt_acpi_info.asl gpl/mk_dsdt_gpl.sh $(MK_DSDT)
-       awk 'NR > 1 {print s} {s=$$0}' $< > $@.$(TMP_SUFFIX)
+       # Remove last bracket
+       awk 'NR > 1 {print s} {s=$$0}' $< > $@.1.$(TMP_SUFFIX)
        # Strip license comment
-       sed -i '1,/\*\//{/\/\*/,/\*\//d}' $@.$(TMP_SUFFIX)
+       sed '1,/\*\//d' $@.1.$(TMP_SUFFIX) > $@.$(TMP_SUFFIX)
+       rm -f $@.1.$(TMP_SUFFIX)
        $(SHELL) gpl/mk_dsdt_gpl.sh >> $@.$(TMP_SUFFIX)
        cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX)
        $(MK_DSDT) --debug=$(debug) --dm-version qemu-xen >> $@.$(TMP_SUFFIX)
@@ -57,8 +59,11 @@ $(ACPI_BUILD_DIR)/dsdt_anycpu_qemu_xen.asl: dsdt.asl dsdt_acpi_info.asl gpl/mk_d
 
 # NB. awk invocation is a portable alternative to 'head -n -1'
 $(ACPI_BUILD_DIR)/dsdt_%cpu.asl: dsdt.asl dsdt_acpi_info.asl gpl/mk_dsdt_gpl.sh $(MK_DSDT)
-       awk 'NR > 1 {print s} {s=$$0}' $< > $@.$(TMP_SUFFIX)
-       sed -i '1,/\*\//{/\/\*/,/\*\//d}' $@.$(TMP_SUFFIX)
+       # Remove last bracket
+       awk 'NR > 1 {print s} {s=$$0}' $< > $@.1.$(TMP_SUFFIX)
+       # Strip license comment
+       sed '1,/\*\//d' $@.1.$(TMP_SUFFIX) > $@.$(TMP_SUFFIX)
+       rm -f $@.1.$(TMP_SUFFIX)
        $(SHELL) gpl/mk_dsdt_gpl.sh >> $@.$(TMP_SUFFIX)
        cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX)
        $(MK_DSDT) --debug=$(debug) --maxcpu $*  >> $@.$(TMP_SUFFIX)