Message ID | 1477665207-9211-1-git-send-email-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Roger Pau Monne writes ("[PATCH for-4.8] tools/libacpi: fix sed usage"): > 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. ... > - awk 'NR > 1 {print s} {s=$$0}' $< > $@.$(TMP_SUFFIX) > - # Strip license comment > - sed -i '1,/\*\//{/\/\*/,/\*\//d}' $@.$(TMP_SUFFIX) > + # Remove last bracket and strip license comment > + awk 'NR > 1 {print s} {s=$$0}' $< | sed '1,/\*\//d' > $@.$(TMP_SUFFIX) Sadly, unless countermeasures are taken, this pretends to succeed if awk fails. I don't think the obvious countermeasure (set -o pipefail) is remotely portable. I normally split this kind of thing up and just use .1.tmp .2.tmp etc. Ina.
On 10/28/2016 10:33 AM, Roger Pau Monne wrote: > 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 piping the output of awk into sed directly, and > replacing 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> > --- > Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> > Cc: Jan Beulich <jbeulich@suse.com> > Cc: Ian Jackson <ian.jackson@eu.citrix.com> > Cc: Wei Liu <wei.liu2@citrix.com> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile index 18a5cd4..c9eb514 100644 --- a/tools/libacpi/Makefile +++ b/tools/libacpi/Makefile @@ -47,9 +47,8 @@ $(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) - # Strip license comment - sed -i '1,/\*\//{/\/\*/,/\*\//d}' $@.$(TMP_SUFFIX) + # Remove last bracket and strip license comment + awk 'NR > 1 {print s} {s=$$0}' $< | sed '1,/\*\//d' > $@.$(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 +56,8 @@ $(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 and strip license comment + awk 'NR > 1 {print s} {s=$$0}' $< | sed '1,/\*\//d' > $@.$(TMP_SUFFIX) $(SHELL) gpl/mk_dsdt_gpl.sh >> $@.$(TMP_SUFFIX) cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX) $(MK_DSDT) --debug=$(debug) --maxcpu $* >> $@.$(TMP_SUFFIX)
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 piping the output of awk into sed directly, and replacing 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> --- Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> Cc: Jan Beulich <jbeulich@suse.com> Cc: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Wei Liu <wei.liu2@citrix.com> --- tools/libacpi/Makefile | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)