From: Greg Kurz <groug@kaod.org>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>
Subject: Re: [Qemu-devel] [PATCH] trace: fix group name generation
Date: Sat, 15 Oct 2016 00:06:00 +0200 [thread overview]
Message-ID: <20161015000600.1cc5d7a4@bahia> (raw)
In-Reply-To: <bea953b7-2f30-98b4-e488-dcbae6ae1e9e@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2706 bytes --]
On Fri, 14 Oct 2016 16:31:01 -0500
Eric Blake <eblake@redhat.com> wrote:
> On 10/14/2016 04:26 PM, Greg Kurz wrote:
> > Since commit "80dd5c4918ab trace: introduce a formal group name for trace
> > events", tracetool generates C variable names and macro definitions out
> > of the path to the trace-events-all file.
> >
> > The current code takes care of turning '/' and '-' characters into
> > underscores so that the resulting names are valid C tokens. This is
> > enough because these are the only illegal characters that appear in
> > a relative path within the QEMU source tree.
> >
> > Things are different for out of tree builds where the path may contain
> > arbitrary character combinations, causing tracetool to generate invalid
> > names.
> >
>
> > This patch ensures that only letters [A-Za-z], digits [0-9] and underscores
> > are kept. All other characters are turned into underscores. Also, since the
> > first character of C symbol names cannot be a digit, an underscore is
> > prepended to the group name.
> >
> > Signed-off-by: Greg Kurz <groug@kaod.org>
> > ---
> > scripts/tracetool.py | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/scripts/tracetool.py b/scripts/tracetool.py
> > index 629b2593c846..b81b834db924 100755
> > --- a/scripts/tracetool.py
> > +++ b/scripts/tracetool.py
> > @@ -70,7 +70,7 @@ def make_group_name(filename):
> >
> > if dirname == "":
> > return "common"
> > - return re.sub(r"/|-", "_", dirname)
> > + return "_" + re.sub(r"[^\w]", "_", dirname)
>
> This STILL doesn't solve the complaint that the build is now dependent
> on the location. Why can't we STRIP off any prefix prior to the in-tree
> portion of the naming that we know is sane, instead of munging the
> prefix but in the process creating source code that generates with
> different lengths?
>
Heh, because the complaint was about the build break :)
> Ideally, compiling twice, once in directory 'a', and the second time in
> directory 'aaaaaaaaaaaaaaaaaaaaaaaaaaaa', should not make a noticeable
> difference in the final size of the executable due to the difference in
> lengths of the debugging symbols used to record the longer name of the
> second directory being encoded into lots of macro names.
>
You're right. I'm okay to look for a way to fix the symbol variable size
issue, but I think this patch still makes sense as it makes tracetool
less fragile in case we add a directory with an illegal character to
the QEMU tree... and it fixes annoying build breaks (Paolo also hit
this and asked to revert 80dd5c4918ab in another mail).
Cc'ing Peter...
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
next prev parent reply other threads:[~2016-10-14 22:07 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-14 21:26 [Qemu-devel] [PATCH] trace: fix group name generation Greg Kurz
2016-10-14 21:31 ` Eric Blake
2016-10-14 22:06 ` Greg Kurz [this message]
2016-10-15 12:03 ` Peter Maydell
2016-10-16 9:20 ` Greg Kurz
2016-10-18 15:16 ` Daniel P. Berrange
2016-10-18 15:31 ` Daniel P. Berrange
2016-10-18 15:52 ` Greg Kurz
2016-10-20 14:25 ` Stefan Hajnoczi
2016-11-17 8:07 ` Fam Zheng
2016-11-17 9:10 ` Greg Kurz
2016-11-17 9:34 ` Fam Zheng
2016-11-17 9:48 ` Greg Kurz
2016-11-17 10:00 ` Fam Zheng
2016-11-17 10:05 ` Stefan Hajnoczi
2016-10-18 15:36 ` Greg Kurz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161015000600.1cc5d7a4@bahia \
--to=groug@kaod.org \
--cc=eblake@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.