Message ID | 20140917124715.GW6586@spoyarek.pnq.redhat.com |
---|---|
State | New |
Headers | show |
Ping! On Wed, Sep 17, 2014 at 06:17:16PM +0530, Siddhesh Poyarekar wrote: > Rebased on top of latest master. No changes to the patch. > > Siddhesh > > From b3ae47d0b34aa5d0366cf27cb944aa008e069186 Mon Sep 17 00:00:00 2001 > From: Siddhesh Poyarekar <siddhesh@redhat.com> > Date: Thu, 21 Aug 2014 11:55:35 +0530 > Subject: [PATCH] Use MODULE_NAME in stap-probe instead of IN_LIB > > Verified that the generated code is unchanged on x86_64. > > * scripts/gen-libc-modules.awk (END): Generate defines for > MODULE_NAME. > * include/stap-probe.h (LIBC_PROBE_1): Use MODULE_NAME instead > of IN_LIB. > (STAP_PROBE_ASM): Likewise. > --- > include/stap-probe.h | 6 +++--- > scripts/gen-libc-modules.awk | 9 ++++++++- > 2 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/include/stap-probe.h b/include/stap-probe.h > index 688646c..150fc1e 100644 > --- a/include/stap-probe.h > +++ b/include/stap-probe.h > @@ -30,7 +30,7 @@ > > Systemtap's header defines the macros STAP_PROBE (provider, name) and > STAP_PROBEn (provider, name, arg1, ..., argn). For "provider" we paste > - in the IN_LIB name (libc, libpthread, etc.) automagically. > + in MODULE_NAME (libc, libpthread, etc.) automagically. > > The format of the arg parameters is discussed here: > > @@ -53,7 +53,7 @@ > # endif > > # define LIBC_PROBE(name, n, ...) \ > - LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__) > + LIBC_PROBE_1 (MODULE_NAME, name, n, ## __VA_ARGS__) > > # define LIBC_PROBE_1(lib, name, n, ...) \ > STAP_PROBE##n (lib, name, ## __VA_ARGS__) > @@ -61,7 +61,7 @@ > # define STAP_PROBE0 STAP_PROBE > > # define LIBC_PROBE_ASM(name, template) \ > - STAP_PROBE_ASM (IN_LIB, name, template) > + STAP_PROBE_ASM (MODULE_NAME, name, template) > > # define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS > > diff --git a/scripts/gen-libc-modules.awk b/scripts/gen-libc-modules.awk > index d3382b6..1ae4af3 100644 > --- a/scripts/gen-libc-modules.awk > +++ b/scripts/gen-libc-modules.awk > @@ -32,9 +32,16 @@ match (FILENAME, ".*soversions.i") { > > # Finally, print out the header file. > END { > - printf ("/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT. */\n\n") > + printf ("/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT. */\n") > i = 1 > + print ("\n/* Allowed values for IN_MODULE. */") > for (l in libs) { > printf ("#define MODULE_%s %d\n", l, libs[l]) > } > + print ("\n/* Module names, used in stap-probe.h */") > + for (l in libs) { > + printf ("#if IN_MODULE == MODULE_%s\n", l) > + printf ("# define MODULE_NAME %s\n", l) > + printf ("#endif\n") > + } > } > -- > 1.9.3 >
Rebased against current master and the patch is unchanged. Ping! Siddhesh On Wed, Sep 17, 2014 at 06:17:16PM +0530, Siddhesh Poyarekar wrote: > Rebased on top of latest master. No changes to the patch. > > Siddhesh > > From b3ae47d0b34aa5d0366cf27cb944aa008e069186 Mon Sep 17 00:00:00 2001 > From: Siddhesh Poyarekar <siddhesh@redhat.com> > Date: Thu, 21 Aug 2014 11:55:35 +0530 > Subject: [PATCH] Use MODULE_NAME in stap-probe instead of IN_LIB > > Verified that the generated code is unchanged on x86_64. > > * scripts/gen-libc-modules.awk (END): Generate defines for > MODULE_NAME. > * include/stap-probe.h (LIBC_PROBE_1): Use MODULE_NAME instead > of IN_LIB. > (STAP_PROBE_ASM): Likewise. > --- > include/stap-probe.h | 6 +++--- > scripts/gen-libc-modules.awk | 9 ++++++++- > 2 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/include/stap-probe.h b/include/stap-probe.h > index 688646c..150fc1e 100644 > --- a/include/stap-probe.h > +++ b/include/stap-probe.h > @@ -30,7 +30,7 @@ > > Systemtap's header defines the macros STAP_PROBE (provider, name) and > STAP_PROBEn (provider, name, arg1, ..., argn). For "provider" we paste > - in the IN_LIB name (libc, libpthread, etc.) automagically. > + in MODULE_NAME (libc, libpthread, etc.) automagically. > > The format of the arg parameters is discussed here: > > @@ -53,7 +53,7 @@ > # endif > > # define LIBC_PROBE(name, n, ...) \ > - LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__) > + LIBC_PROBE_1 (MODULE_NAME, name, n, ## __VA_ARGS__) > > # define LIBC_PROBE_1(lib, name, n, ...) \ > STAP_PROBE##n (lib, name, ## __VA_ARGS__) > @@ -61,7 +61,7 @@ > # define STAP_PROBE0 STAP_PROBE > > # define LIBC_PROBE_ASM(name, template) \ > - STAP_PROBE_ASM (IN_LIB, name, template) > + STAP_PROBE_ASM (MODULE_NAME, name, template) > > # define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS > > diff --git a/scripts/gen-libc-modules.awk b/scripts/gen-libc-modules.awk > index d3382b6..1ae4af3 100644 > --- a/scripts/gen-libc-modules.awk > +++ b/scripts/gen-libc-modules.awk > @@ -32,9 +32,16 @@ match (FILENAME, ".*soversions.i") { > > # Finally, print out the header file. > END { > - printf ("/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT. */\n\n") > + printf ("/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT. */\n") > i = 1 > + print ("\n/* Allowed values for IN_MODULE. */") > for (l in libs) { > printf ("#define MODULE_%s %d\n", l, libs[l]) > } > + print ("\n/* Module names, used in stap-probe.h */") > + for (l in libs) { > + printf ("#if IN_MODULE == MODULE_%s\n", l) > + printf ("# define MODULE_NAME %s\n", l) > + printf ("#endif\n") > + } > } > -- > 1.9.3 >
Ping! On Wed, Oct 01, 2014 at 01:49:40PM +0530, Siddhesh Poyarekar wrote: > Rebased against current master and the patch is unchanged. > > Ping! > > Siddhesh > > On Wed, Sep 17, 2014 at 06:17:16PM +0530, Siddhesh Poyarekar wrote: > > Rebased on top of latest master. No changes to the patch. > > > > Siddhesh > > > > From b3ae47d0b34aa5d0366cf27cb944aa008e069186 Mon Sep 17 00:00:00 2001 > > From: Siddhesh Poyarekar <siddhesh@redhat.com> > > Date: Thu, 21 Aug 2014 11:55:35 +0530 > > Subject: [PATCH] Use MODULE_NAME in stap-probe instead of IN_LIB > > > > Verified that the generated code is unchanged on x86_64. > > > > * scripts/gen-libc-modules.awk (END): Generate defines for > > MODULE_NAME. > > * include/stap-probe.h (LIBC_PROBE_1): Use MODULE_NAME instead > > of IN_LIB. > > (STAP_PROBE_ASM): Likewise. > > --- > > include/stap-probe.h | 6 +++--- > > scripts/gen-libc-modules.awk | 9 ++++++++- > > 2 files changed, 11 insertions(+), 4 deletions(-) > > > > diff --git a/include/stap-probe.h b/include/stap-probe.h > > index 688646c..150fc1e 100644 > > --- a/include/stap-probe.h > > +++ b/include/stap-probe.h > > @@ -30,7 +30,7 @@ > > > > Systemtap's header defines the macros STAP_PROBE (provider, name) and > > STAP_PROBEn (provider, name, arg1, ..., argn). For "provider" we paste > > - in the IN_LIB name (libc, libpthread, etc.) automagically. > > + in MODULE_NAME (libc, libpthread, etc.) automagically. > > > > The format of the arg parameters is discussed here: > > > > @@ -53,7 +53,7 @@ > > # endif > > > > # define LIBC_PROBE(name, n, ...) \ > > - LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__) > > + LIBC_PROBE_1 (MODULE_NAME, name, n, ## __VA_ARGS__) > > > > # define LIBC_PROBE_1(lib, name, n, ...) \ > > STAP_PROBE##n (lib, name, ## __VA_ARGS__) > > @@ -61,7 +61,7 @@ > > # define STAP_PROBE0 STAP_PROBE > > > > # define LIBC_PROBE_ASM(name, template) \ > > - STAP_PROBE_ASM (IN_LIB, name, template) > > + STAP_PROBE_ASM (MODULE_NAME, name, template) > > > > # define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS > > > > diff --git a/scripts/gen-libc-modules.awk b/scripts/gen-libc-modules.awk > > index d3382b6..1ae4af3 100644 > > --- a/scripts/gen-libc-modules.awk > > +++ b/scripts/gen-libc-modules.awk > > @@ -32,9 +32,16 @@ match (FILENAME, ".*soversions.i") { > > > > # Finally, print out the header file. > > END { > > - printf ("/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT. */\n\n") > > + printf ("/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT. */\n") > > i = 1 > > + print ("\n/* Allowed values for IN_MODULE. */") > > for (l in libs) { > > printf ("#define MODULE_%s %d\n", l, libs[l]) > > } > > + print ("\n/* Module names, used in stap-probe.h */") > > + for (l in libs) { > > + printf ("#if IN_MODULE == MODULE_%s\n", l) > > + printf ("# define MODULE_NAME %s\n", l) > > + printf ("#endif\n") > > + } > > } > > -- > > 1.9.3 > > > >
> * scripts/gen-libc-modules.awk (END): Generate defines for > MODULE_NAME. Why is this better than just putting -DMODULE_NAME=... in CPPFLAGS as with IN_MODULE? In fact, you could pass only -DMODULE_NAME=... and then use PASTE(MODULE_,MODULE_NAME).
Sorry, I missed this one. On Fri, Nov 07, 2014 at 03:32:06PM -0800, Roland McGrath wrote: > > * scripts/gen-libc-modules.awk (END): Generate defines for > > MODULE_NAME. > > Why is this better than just putting -DMODULE_NAME=... in CPPFLAGS > as with IN_MODULE? In fact, you could pass only -DMODULE_NAME=... > and then use PASTE(MODULE_,MODULE_NAME). I don't think that is possible. We cannot paste macro definitions. That is, I cannot do: #define MODULE_ ## libc 42 Siddhesh
> > Why is this better than just putting -DMODULE_NAME=... in CPPFLAGS > > as with IN_MODULE? In fact, you could pass only -DMODULE_NAME=... > > and then use PASTE(MODULE_,MODULE_NAME). > > I don't think that is possible. We cannot paste macro definitions. > That is, I cannot do: > > #define MODULE_ ## libc 42 I'm not sure what you imagine I imagine that would do. What I'm talking about is -DMODULE_NAME=libc instead of -DIN_MODULE=MODULE_libc and: #define IN_MODULE PASTE(MODULE_, MODULE_NAME) #define PASTE(a, b) PASTE_1(a, b) #define PASTE_1(a, b) a##b instead of generating #if IN_MODULE == ... #define MODULE_NAME ... #endif. Of course the "#define MODULE_foo N" bit has to be generated.
diff --git a/include/stap-probe.h b/include/stap-probe.h index 688646c..150fc1e 100644 --- a/include/stap-probe.h +++ b/include/stap-probe.h @@ -30,7 +30,7 @@ Systemtap's header defines the macros STAP_PROBE (provider, name) and STAP_PROBEn (provider, name, arg1, ..., argn). For "provider" we paste - in the IN_LIB name (libc, libpthread, etc.) automagically. + in MODULE_NAME (libc, libpthread, etc.) automagically. The format of the arg parameters is discussed here: @@ -53,7 +53,7 @@ # endif # define LIBC_PROBE(name, n, ...) \ - LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__) + LIBC_PROBE_1 (MODULE_NAME, name, n, ## __VA_ARGS__) # define LIBC_PROBE_1(lib, name, n, ...) \ STAP_PROBE##n (lib, name, ## __VA_ARGS__) @@ -61,7 +61,7 @@ # define STAP_PROBE0 STAP_PROBE # define LIBC_PROBE_ASM(name, template) \ - STAP_PROBE_ASM (IN_LIB, name, template) + STAP_PROBE_ASM (MODULE_NAME, name, template) # define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS diff --git a/scripts/gen-libc-modules.awk b/scripts/gen-libc-modules.awk index d3382b6..1ae4af3 100644 --- a/scripts/gen-libc-modules.awk +++ b/scripts/gen-libc-modules.awk @@ -32,9 +32,16 @@ match (FILENAME, ".*soversions.i") { # Finally, print out the header file. END { - printf ("/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT. */\n\n") + printf ("/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT. */\n") i = 1 + print ("\n/* Allowed values for IN_MODULE. */") for (l in libs) { printf ("#define MODULE_%s %d\n", l, libs[l]) } + print ("\n/* Module names, used in stap-probe.h */") + for (l in libs) { + printf ("#if IN_MODULE == MODULE_%s\n", l) + printf ("# define MODULE_NAME %s\n", l) + printf ("#endif\n") + } }
Rebased on top of latest master. No changes to the patch. Siddhesh From b3ae47d0b34aa5d0366cf27cb944aa008e069186 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Thu, 21 Aug 2014 11:55:35 +0530 Subject: [PATCH] Use MODULE_NAME in stap-probe instead of IN_LIB Verified that the generated code is unchanged on x86_64. * scripts/gen-libc-modules.awk (END): Generate defines for MODULE_NAME. * include/stap-probe.h (LIBC_PROBE_1): Use MODULE_NAME instead of IN_LIB. (STAP_PROBE_ASM): Likewise. --- include/stap-probe.h | 6 +++--- scripts/gen-libc-modules.awk | 9 ++++++++- 2 files changed, 11 insertions(+), 4 deletions(-)