When generating the trace-events-all file, the build system simply
concatenates all the individual trace-events files. If any one of those
files does not have a final newline, the printf format string will have
the contents of the first line of the next file appended to it, which is
usually a '#' comment.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
hw/gpio/trace-events | 2 +-
scripts/tracetool/__init__.py | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/hw/gpio/trace-events b/hw/gpio/trace-events
index cb41a89756..5d4dd200c2 100644
--- a/hw/gpio/trace-events
+++ b/hw/gpio/trace-events
@@ -4,4 +4,4 @@
nrf51_gpio_read(uint64_t offset, uint64_t r) "offset 0x%" PRIx64 " value 0x%" PRIx64
nrf51_gpio_write(uint64_t offset, uint64_t value) "offset 0x%" PRIx64 " value 0x%" PRIx64
nrf51_gpio_set(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64
-nrf51_gpio_update_output_irq(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64
\ No newline at end of file
+nrf51_gpio_update_output_irq(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64
diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
index 0e3c9e146c..3478ac93ab 100644
--- a/scripts/tracetool/__init__.py
+++ b/scripts/tracetool/__init__.py
@@ -350,6 +350,8 @@ def read_events(fobj, fname):
events = []
for lineno, line in enumerate(fobj, 1):
+ if line[-1] != '\n':
+ raise ValueError("%s does not end with a new line" % fname)
if not line.strip():
continue
if line.lstrip().startswith('#'):
--
2.20.1
On 1/18/19 11:31 AM, Daniel P. Berrangé wrote:
> When generating the trace-events-all file, the build system simply
> concatenates all the individual trace-events files. If any one of those
> files does not have a final newline, the printf format string will have
> the contents of the first line of the next file appended to it, which is
> usually a '#' comment.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> hw/gpio/trace-events | 2 +-
> scripts/tracetool/__init__.py | 2 ++
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
Reviewed-by: Eric Blake <eblake@redhat.com>
Does checkpatch and/or patchew flag what are intended to be text files
but which lack a trailing newline? If not, how hard would it be to get
them to do so?
> diff --git a/hw/gpio/trace-events b/hw/gpio/trace-events
> index cb41a89756..5d4dd200c2 100644
> --- a/hw/gpio/trace-events
> +++ b/hw/gpio/trace-events
> @@ -4,4 +4,4 @@
> nrf51_gpio_read(uint64_t offset, uint64_t r) "offset 0x%" PRIx64 " value 0x%" PRIx64
> nrf51_gpio_write(uint64_t offset, uint64_t value) "offset 0x%" PRIx64 " value 0x%" PRIx64
> nrf51_gpio_set(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64
> -nrf51_gpio_update_output_irq(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64
> \ No newline at end of file
> +nrf51_gpio_update_output_irq(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64
> diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
Fixes the problem file...
> index 0e3c9e146c..3478ac93ab 100644
> --- a/scripts/tracetool/__init__.py
> +++ b/scripts/tracetool/__init__.py
> @@ -350,6 +350,8 @@ def read_events(fobj, fname):
>
> events = []
> for lineno, line in enumerate(fobj, 1):
> + if line[-1] != '\n':
> + raise ValueError("%s does not end with a new line" % fname)
and ensures that no future trace-events files will have the problem,
whether or not checkpatch flags other such files.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
On Fri, Jan 18, 2019 at 11:42:14AM -0600, Eric Blake wrote: > On 1/18/19 11:31 AM, Daniel P. Berrangé wrote: > > When generating the trace-events-all file, the build system simply > > concatenates all the individual trace-events files. If any one of those > > files does not have a final newline, the printf format string will have > > the contents of the first line of the next file appended to it, which is > > usually a '#' comment. > > > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > > --- > > hw/gpio/trace-events | 2 +- > > scripts/tracetool/__init__.py | 2 ++ > > 2 files changed, 3 insertions(+), 1 deletion(-) > > > > Reviewed-by: Eric Blake <eblake@redhat.com> > > Does checkpatch and/or patchew flag what are intended to be text files > but which lack a trailing newline? If not, how hard would it be to get > them to do so? it probably should check for missing newlines at end of file, but I'm going to let someone else tackle that due to time pressures on what was supposed to be a quick enhancement :-) Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On Fri, Jan 18, 2019 at 05:31:01PM +0000, Daniel P. Berrangé wrote: > When generating the trace-events-all file, the build system simply > concatenates all the individual trace-events files. If any one of those > files does not have a final newline, the printf format string will have > the contents of the first line of the next file appended to it, which is > usually a '#' comment. > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > hw/gpio/trace-events | 2 +- > scripts/tracetool/__init__.py | 2 ++ > 2 files changed, 3 insertions(+), 1 deletion(-) Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
© 2016 - 2025 Red Hat, Inc.