xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH for-4.8] tools/libacpi: fix sed usage
@ 2016-10-28 14:33 Roger Pau Monne
  2016-10-28 15:41 ` Ian Jackson
  2016-10-28 15:43 ` Boris Ostrovsky
  0 siblings, 2 replies; 3+ messages in thread
From: Roger Pau Monne @ 2016-10-28 14:33 UTC (permalink / raw)
  To: xen-devel
  Cc: Wei Liu, Boris Ostrovsky, Ian Jackson, Jan Beulich,
	Roger Pau Monne

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(-)

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)
-- 
2.7.4 (Apple Git-66)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH for-4.8] tools/libacpi: fix sed usage
  2016-10-28 14:33 [PATCH for-4.8] tools/libacpi: fix sed usage Roger Pau Monne
@ 2016-10-28 15:41 ` Ian Jackson
  2016-10-28 15:43 ` Boris Ostrovsky
  1 sibling, 0 replies; 3+ messages in thread
From: Ian Jackson @ 2016-10-28 15:41 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: xen-devel, Boris Ostrovsky, Wei Liu, Jan Beulich

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.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH for-4.8] tools/libacpi: fix sed usage
  2016-10-28 14:33 [PATCH for-4.8] tools/libacpi: fix sed usage Roger Pau Monne
  2016-10-28 15:41 ` Ian Jackson
@ 2016-10-28 15:43 ` Boris Ostrovsky
  1 sibling, 0 replies; 3+ messages in thread
From: Boris Ostrovsky @ 2016-10-28 15:43 UTC (permalink / raw)
  To: Roger Pau Monne, xen-devel; +Cc: Wei Liu, Ian Jackson, Jan Beulich

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>


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-10-28 15:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-28 14:33 [PATCH for-4.8] tools/libacpi: fix sed usage Roger Pau Monne
2016-10-28 15:41 ` Ian Jackson
2016-10-28 15:43 ` Boris Ostrovsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).