* [PATCH v2 0/4] Minor perf build fixes
@ 2013-07-05 10:16 Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 1/4] perf/Makefile: do not open-code shell-sq Ramkumar Ramachandra
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-05 10:16 UTC (permalink / raw)
To: LKML
Hi,
After Namhyung's review of the first iteration, I realized that I'd
made a few mistakes. This iteration should be much better.
[1/4] is the same as before.
[2/4] is new, and is used in [4/4].
[3/4] introduces a util/perf-perl.h to include <perl.h> with #pragma
statements, hence eliminating duplication. It then updates Context.xs
and trace-event-perl.c to use this new header.
Also, notice that feature-tests.mak has not been touched in this
iteration: the Perl check passes without needing the #pragma
statements (although I'm not sure why exactly).
Thanks.
Ramkumar Ramachandra (4):
perf/Makefile: do not open-code shell-sq
perf/Perf-Trace-Util: fix broken include in Context.xs
perf: squelch warnings from perl.h to compile-pass
perf/Perf-Trace-Util: regenerate Context.c
tools/perf/Makefile | 2 +-
tools/perf/config/Makefile | 23 ++-
tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 215 +++++++++++++++++----
tools/perf/scripts/perl/Perf-Trace-Util/Context.xs | 6 +-
tools/perf/util/perf-perl.h | 10 +
.../perf/util/scripting-engines/trace-event-perl.c | 2 +-
6 files changed, 199 insertions(+), 59 deletions(-)
create mode 100644 tools/perf/util/perf-perl.h
--
1.8.3.1.643.gebeea52.dirty
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 1/4] perf/Makefile: do not open-code shell-sq
2013-07-05 10:16 [PATCH v2 0/4] Minor perf build fixes Ramkumar Ramachandra
@ 2013-07-05 10:16 ` Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 2/4] perf/Perf-Trace-Util: fix broken include in Context.xs Ramkumar Ramachandra
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-05 10:16 UTC (permalink / raw)
To: LKML; +Cc: Michael Witten, Ingo Molnar
d24e473e (perf_counter: copy in Git's top Makefile, 2009-04-20) started
by determining *_SQ variables (shell-quoted equivalents) by calling
subst by hand, with the rationale that $(call) must be avoided to
accommodate ancient setups. That reasoning does not hold true anymore,
as our Makefiles are filled with $(call) invocations now. So, use the
shell-sq function introduced in ced465c4 (perf tools: Makefile:
PYTHON{,_CONFIG} to bandage Python 3 incompatibility, 2011-04-02) in
place of open-coding.
Cc: Michael Witten <mfwitten@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
tools/perf/Makefile | 2 +-
tools/perf/config/Makefile | 23 +++++++++++------------
2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 203cb0e..ace1784 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -731,7 +731,7 @@ cscope:
$(FIND) . -name '*.[hcS]' -print | xargs cscope -b
### Detect prefix changes
-TRACK_CFLAGS = $(subst ','\'',$(CFLAGS)):\
+TRACK_CFLAGS = $(call escape-for-shell-sq,$(CFLAGS)):\
$(bindir_SQ):$(perfexecdir_SQ):$(template_dir_SQ):$(prefix_SQ)
$(OUTPUT)PERF-CFLAGS: .FORCE-PERF-CFLAGS
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index f139dcd..3025d87 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -457,21 +457,20 @@ ETC_PERFCONFIG = etc/perfconfig
endif
lib = lib
-# Shell quote (do not use $(call) to accommodate ancient setups);
-ETC_PERFCONFIG_SQ = $(subst ','\'',$(ETC_PERFCONFIG))
-DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
-bindir_SQ = $(subst ','\'',$(bindir))
-mandir_SQ = $(subst ','\'',$(mandir))
-infodir_SQ = $(subst ','\'',$(infodir))
-perfexecdir_SQ = $(subst ','\'',$(perfexecdir))
-template_dir_SQ = $(subst ','\'',$(template_dir))
-htmldir_SQ = $(subst ','\'',$(htmldir))
-prefix_SQ = $(subst ','\'',$(prefix))
-sysconfdir_SQ = $(subst ','\'',$(sysconfdir))
+ETC_PERFCONFIG_SQ = $(call shell-sq,$(ETC_PERFCONFIG))
+DESTDIR_SQ = $(call shell-sq,$(DESTDIR))
+bindir_SQ = $(call shell-sq,$(bindir))
+mandir_SQ = $(call shell-sq,$(mandir))
+infodir_SQ = $(call shell-sq,$(infodir))
+perfexecdir_SQ = $(call shell-sq,$(perfexecdir))
+template_dir_SQ = $(call shell-sq,$(template_dir))
+htmldir_SQ = $(call shell-sq,$(htmldir))
+prefix_SQ = $(call shell-sq,$(prefix))
+sysconfdir_SQ = $(call shell-sq,$(sysconfdir))
ifneq ($(filter /%,$(firstword $(perfexecdir))),)
perfexec_instdir = $(perfexecdir)
else
perfexec_instdir = $(prefix)/$(perfexecdir)
endif
-perfexec_instdir_SQ = $(subst ','\'',$(perfexec_instdir))
+perfexec_instdir_SQ = $(call shell-sq,$(perfexec_instdir))
--
1.8.3.1.643.gebeea52.dirty
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 2/4] perf/Perf-Trace-Util: fix broken include in Context.xs
2013-07-05 10:16 [PATCH v2 0/4] Minor perf build fixes Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 1/4] perf/Makefile: do not open-code shell-sq Ramkumar Ramachandra
@ 2013-07-05 10:16 ` Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 3/4] perf: squelch warnings from perl.h to compile-pass Ramkumar Ramachandra
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-05 10:16 UTC (permalink / raw)
To: LKML; +Cc: Arnaldo Carvalho de Melo
765532c8 (perf script: Finish the rename from trace to script,
2010-12-23) made a mistake during find-and-replace replacing
"../../../util/trace-event.h" with "../../../util/script-event.h", a
non-existent file. Fix this include.
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
tools/perf/scripts/perl/Perf-Trace-Util/Context.xs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs b/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs
index c1e2ed1..8c7ea42 100644
--- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs
+++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs
@@ -23,7 +23,7 @@
#include "perl.h"
#include "XSUB.h"
#include "../../../perf.h"
-#include "../../../util/script-event.h"
+#include "../../../util/trace-event.h"
MODULE = Perf::Trace::Context PACKAGE = Perf::Trace::Context
PROTOTYPES: ENABLE
--
1.8.3.1.643.gebeea52.dirty
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 3/4] perf: squelch warnings from perl.h to compile-pass
2013-07-05 10:16 [PATCH v2 0/4] Minor perf build fixes Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 1/4] perf/Makefile: do not open-code shell-sq Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 2/4] perf/Perf-Trace-Util: fix broken include in Context.xs Ramkumar Ramachandra
@ 2013-07-05 10:16 ` Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 4/4] perf/Perf-Trace-Util: regenerate Context.c Ramkumar Ramachandra
2013-07-09 5:22 ` [PATCH v2 0/4] Minor perf build fixes Namhyung Kim
4 siblings, 0 replies; 7+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-05 10:16 UTC (permalink / raw)
To: LKML; +Cc: Arnaldo Carvalho de Melo, Namhyung Kim
Currently, a simple
$ make
errors out because we compile with -Werror by default, turning all
warnings into errors. Although no warnings are emitted by our code
itself, two kinds of warnings are emitted by perl.h (perl 5.18.0):
-Wundef and -Wswitch-default
Use #pragma statements to squelch exactly those warnings. The next
patch will regenerate Context.c from Context.xs and make the compile
pass.
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
tools/perf/scripts/perl/Perf-Trace-Util/Context.xs | 4 ++--
tools/perf/util/perf-perl.h | 10 ++++++++++
tools/perf/util/scripting-engines/trace-event-perl.c | 2 +-
3 files changed, 13 insertions(+), 3 deletions(-)
create mode 100644 tools/perf/util/perf-perl.h
diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs b/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs
index 8c7ea42..509d22e 100644
--- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs
+++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs
@@ -19,8 +19,8 @@
*
*/
-#include "EXTERN.h"
-#include "perl.h"
+#include <EXTERN.h>
+#include "../../../util/perf-perl.h"
#include "XSUB.h"
#include "../../../perf.h"
#include "../../../util/trace-event.h"
diff --git a/tools/perf/util/perf-perl.h b/tools/perf/util/perf-perl.h
new file mode 100644
index 0000000..49995d2
--- /dev/null
+++ b/tools/perf/util/perf-perl.h
@@ -0,0 +1,10 @@
+#ifndef __PERF_PERL_H
+#define __PERF_PERL_H
+
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wswitch-default"
+#include <perl.h>
+#pragma GCC diagnostic error "-Wundef"
+#pragma GCC diagnostic error "-Wswitch-default"
+
+#endif
diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c
index eacec85..25fd2dc 100644
--- a/tools/perf/util/scripting-engines/trace-event-perl.c
+++ b/tools/perf/util/scripting-engines/trace-event-perl.c
@@ -27,7 +27,7 @@
#include "../util.h"
#include <EXTERN.h>
-#include <perl.h>
+#include "../perf-perl.h"
#include "../../perf.h"
#include "../thread.h"
--
1.8.3.1.643.gebeea52.dirty
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 4/4] perf/Perf-Trace-Util: regenerate Context.c
2013-07-05 10:16 [PATCH v2 0/4] Minor perf build fixes Ramkumar Ramachandra
` (2 preceding siblings ...)
2013-07-05 10:16 ` [PATCH v2 3/4] perf: squelch warnings from perl.h to compile-pass Ramkumar Ramachandra
@ 2013-07-05 10:16 ` Ramkumar Ramachandra
2013-07-09 5:22 ` [PATCH v2 0/4] Minor perf build fixes Namhyung Kim
4 siblings, 0 replies; 7+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-05 10:16 UTC (permalink / raw)
To: LKML; +Cc: Tom Zanussi, Arnaldo Carvalho de Melo
>From Context.xs, using the procedure described in the README. Now, a
simple
$ make
builds everything correctly.
Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 215 +++++++++++++++++-----
1 file changed, 173 insertions(+), 42 deletions(-)
diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
index 790ceba..7974f2b 100644
--- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
+++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
@@ -1,8 +1,8 @@
/*
- * This file was generated automatically by ExtUtils::ParseXS version 2.18_02 from the
+ * This file was generated automatically by ExtUtils::ParseXS version 3.18 from the
* contents of Context.xs. Do not edit this file, edit Context.xs instead.
*
- * ANY CHANGES MADE HERE WILL BE LOST!
+ * ANY CHANGES MADE HERE WILL BE LOST!
*
*/
@@ -28,31 +28,165 @@
*
*/
-#include "EXTERN.h"
-#include "perl.h"
+#include <EXTERN.h>
+#include "../../../util/perf-perl.h"
#include "XSUB.h"
#include "../../../perf.h"
#include "../../../util/trace-event.h"
+#line 38 "Context.c"
#ifndef PERL_UNUSED_VAR
# define PERL_UNUSED_VAR(var) if (0) var = var
#endif
-#line 42 "Context.c"
+#ifndef dVAR
+# define dVAR dNOOP
+#endif
+
+
+/* This stuff is not part of the API! You have been warned. */
+#ifndef PERL_VERSION_DECIMAL
+# define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s)
+#endif
+#ifndef PERL_DECIMAL_VERSION
+# define PERL_DECIMAL_VERSION \
+ PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)
+#endif
+#ifndef PERL_VERSION_GE
+# define PERL_VERSION_GE(r,v,s) \
+ (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s))
+#endif
+#ifndef PERL_VERSION_LE
+# define PERL_VERSION_LE(r,v,s) \
+ (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s))
+#endif
+
+/* XS_INTERNAL is the explicit static-linkage variant of the default
+ * XS macro.
+ *
+ * XS_EXTERNAL is the same as XS_INTERNAL except it does not include
+ * "STATIC", ie. it exports XSUB symbols. You probably don't want that
+ * for anything but the BOOT XSUB.
+ *
+ * See XSUB.h in core!
+ */
+
+
+/* TODO: This might be compatible further back than 5.10.0. */
+#if PERL_VERSION_GE(5, 10, 0) && PERL_VERSION_LE(5, 15, 1)
+# undef XS_EXTERNAL
+# undef XS_INTERNAL
+# if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
+# define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name)
+# define XS_INTERNAL(name) STATIC XSPROTO(name)
+# endif
+# if defined(__SYMBIAN32__)
+# define XS_EXTERNAL(name) EXPORT_C XSPROTO(name)
+# define XS_INTERNAL(name) EXPORT_C STATIC XSPROTO(name)
+# endif
+# ifndef XS_EXTERNAL
+# if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
+# define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__)
+# define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__)
+# else
+# ifdef __cplusplus
+# define XS_EXTERNAL(name) extern "C" XSPROTO(name)
+# define XS_INTERNAL(name) static XSPROTO(name)
+# else
+# define XS_EXTERNAL(name) XSPROTO(name)
+# define XS_INTERNAL(name) STATIC XSPROTO(name)
+# endif
+# endif
+# endif
+#endif
+
+/* perl >= 5.10.0 && perl <= 5.15.1 */
+
+
+/* The XS_EXTERNAL macro is used for functions that must not be static
+ * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL
+ * macro defined, the best we can do is assume XS is the same.
+ * Dito for XS_INTERNAL.
+ */
+#ifndef XS_EXTERNAL
+# define XS_EXTERNAL(name) XS(name)
+#endif
+#ifndef XS_INTERNAL
+# define XS_INTERNAL(name) XS(name)
+#endif
+
+/* Now, finally, after all this mess, we want an ExtUtils::ParseXS
+ * internal macro that we're free to redefine for varying linkage due
+ * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use
+ * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to!
+ */
+
+#undef XS_EUPXS
+#if defined(PERL_EUPXS_ALWAYS_EXPORT)
+# define XS_EUPXS(name) XS_EXTERNAL(name)
+#else
+ /* default to internal */
+# define XS_EUPXS(name) XS_INTERNAL(name)
+#endif
+
+#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
+#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)
+
+/* prototype to pass -Wmissing-prototypes */
+STATIC void
+S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params);
-XS(XS_Perf__Trace__Context_common_pc); /* prototype to pass -Wmissing-prototypes */
-XS(XS_Perf__Trace__Context_common_pc)
+STATIC void
+S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params)
{
-#ifdef dVAR
- dVAR; dXSARGS;
+ const GV *const gv = CvGV(cv);
+
+ PERL_ARGS_ASSERT_CROAK_XS_USAGE;
+
+ if (gv) {
+ const char *const gvname = GvNAME(gv);
+ const HV *const stash = GvSTASH(gv);
+ const char *const hvname = stash ? HvNAME(stash) : NULL;
+
+ if (hvname)
+ Perl_croak(aTHX_ "Usage: %s::%s(%s)", hvname, gvname, params);
+ else
+ Perl_croak(aTHX_ "Usage: %s(%s)", gvname, params);
+ } else {
+ /* Pants. I don't think that it should be possible to get here. */
+ Perl_croak(aTHX_ "Usage: CODE(0x%"UVxf")(%s)", PTR2UV(cv), params);
+ }
+}
+#undef PERL_ARGS_ASSERT_CROAK_XS_USAGE
+
+#ifdef PERL_IMPLICIT_CONTEXT
+#define croak_xs_usage(a,b) S_croak_xs_usage(aTHX_ a,b)
#else
- dXSARGS;
+#define croak_xs_usage S_croak_xs_usage
#endif
+
+#endif
+
+/* NOTE: the prototype of newXSproto() is different in versions of perls,
+ * so we define a portable version of newXSproto()
+ */
+#ifdef newXS_flags
+#define newXSproto_portable(name, c_impl, file, proto) newXS_flags(name, c_impl, file, proto, 0)
+#else
+#define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
+#endif /* !defined(newXS_flags) */
+
+#line 180 "Context.c"
+
+XS_EUPXS(XS_Perf__Trace__Context_common_pc); /* prototype to pass -Wmissing-prototypes */
+XS_EUPXS(XS_Perf__Trace__Context_common_pc)
+{
+ dVAR; dXSARGS;
if (items != 1)
- Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_pc", "context");
- PERL_UNUSED_VAR(cv); /* -W */
+ croak_xs_usage(cv, "context");
{
- struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0)));
+ struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0)))
+;
int RETVAL;
dXSTARG;
@@ -63,19 +197,15 @@ XS(XS_Perf__Trace__Context_common_pc)
}
-XS(XS_Perf__Trace__Context_common_flags); /* prototype to pass -Wmissing-prototypes */
-XS(XS_Perf__Trace__Context_common_flags)
+XS_EUPXS(XS_Perf__Trace__Context_common_flags); /* prototype to pass -Wmissing-prototypes */
+XS_EUPXS(XS_Perf__Trace__Context_common_flags)
{
-#ifdef dVAR
dVAR; dXSARGS;
-#else
- dXSARGS;
-#endif
if (items != 1)
- Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_flags", "context");
- PERL_UNUSED_VAR(cv); /* -W */
+ croak_xs_usage(cv, "context");
{
- struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0)));
+ struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0)))
+;
int RETVAL;
dXSTARG;
@@ -86,19 +216,15 @@ XS(XS_Perf__Trace__Context_common_flags)
}
-XS(XS_Perf__Trace__Context_common_lock_depth); /* prototype to pass -Wmissing-prototypes */
-XS(XS_Perf__Trace__Context_common_lock_depth)
+XS_EUPXS(XS_Perf__Trace__Context_common_lock_depth); /* prototype to pass -Wmissing-prototypes */
+XS_EUPXS(XS_Perf__Trace__Context_common_lock_depth)
{
-#ifdef dVAR
dVAR; dXSARGS;
-#else
- dXSARGS;
-#endif
if (items != 1)
- Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_lock_depth", "context");
- PERL_UNUSED_VAR(cv); /* -W */
+ croak_xs_usage(cv, "context");
{
- struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0)));
+ struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0)))
+;
int RETVAL;
dXSTARG;
@@ -111,25 +237,30 @@ XS(XS_Perf__Trace__Context_common_lock_depth)
#ifdef __cplusplus
extern "C"
#endif
-XS(boot_Perf__Trace__Context); /* prototype to pass -Wmissing-prototypes */
-XS(boot_Perf__Trace__Context)
+XS_EXTERNAL(boot_Perf__Trace__Context); /* prototype to pass -Wmissing-prototypes */
+XS_EXTERNAL(boot_Perf__Trace__Context)
{
-#ifdef dVAR
dVAR; dXSARGS;
+#if (PERL_REVISION == 5 && PERL_VERSION < 9)
+ char* file = __FILE__;
#else
- dXSARGS;
-#endif
const char* file = __FILE__;
+#endif
PERL_UNUSED_VAR(cv); /* -W */
PERL_UNUSED_VAR(items); /* -W */
- XS_VERSION_BOOTCHECK ;
+#ifdef XS_APIVERSION_BOOTCHECK
+ XS_APIVERSION_BOOTCHECK;
+#endif
+ XS_VERSION_BOOTCHECK;
- newXSproto("Perf::Trace::Context::common_pc", XS_Perf__Trace__Context_common_pc, file, "$");
- newXSproto("Perf::Trace::Context::common_flags", XS_Perf__Trace__Context_common_flags, file, "$");
- newXSproto("Perf::Trace::Context::common_lock_depth", XS_Perf__Trace__Context_common_lock_depth, file, "$");
- if (PL_unitcheckav)
- call_list(PL_scopestack_ix, PL_unitcheckav);
+ (void)newXSproto_portable("Perf::Trace::Context::common_pc", XS_Perf__Trace__Context_common_pc, file, "$");
+ (void)newXSproto_portable("Perf::Trace::Context::common_flags", XS_Perf__Trace__Context_common_flags, file, "$");
+ (void)newXSproto_portable("Perf::Trace::Context::common_lock_depth", XS_Perf__Trace__Context_common_lock_depth, file, "$");
+#if (PERL_REVISION == 5 && PERL_VERSION >= 9)
+ if (PL_unitcheckav)
+ call_list(PL_scopestack_ix, PL_unitcheckav);
+#endif
XSRETURN_YES;
}
--
1.8.3.1.643.gebeea52.dirty
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 0/4] Minor perf build fixes
2013-07-05 10:16 [PATCH v2 0/4] Minor perf build fixes Ramkumar Ramachandra
` (3 preceding siblings ...)
2013-07-05 10:16 ` [PATCH v2 4/4] perf/Perf-Trace-Util: regenerate Context.c Ramkumar Ramachandra
@ 2013-07-09 5:22 ` Namhyung Kim
2013-07-09 8:51 ` Ramkumar Ramachandra
4 siblings, 1 reply; 7+ messages in thread
From: Namhyung Kim @ 2013-07-09 5:22 UTC (permalink / raw)
To: Ramkumar Ramachandra; +Cc: LKML
Hi Ramkumar,
On Fri, 5 Jul 2013 15:46:13 +0530, Ramkumar Ramachandra wrote:
> Hi,
>
> After Namhyung's review of the first iteration, I realized that I'd
> made a few mistakes. This iteration should be much better.
>
> [1/4] is the same as before.
>
> [2/4] is new, and is used in [4/4].
>
> [3/4] introduces a util/perf-perl.h to include <perl.h> with #pragma
> statements, hence eliminating duplication. It then updates Context.xs
> and trace-event-perl.c to use this new header.
I prefer the name being "perl.h" and use #include_next as we include the
'util' directory in the compiler search path.
Other than that, the change looks good to me.
>
> Also, notice that feature-tests.mak has not been touched in this
> iteration: the Perl check passes without needing the #pragma
> statements (although I'm not sure why exactly).
I guess it's because FLAGS_PERL_EMBED doesn't contain the usual perf
CFLAGS which has -Werror.
Thanks,
Namhyung
>
> Thanks.
>
> Ramkumar Ramachandra (4):
> perf/Makefile: do not open-code shell-sq
> perf/Perf-Trace-Util: fix broken include in Context.xs
> perf: squelch warnings from perl.h to compile-pass
> perf/Perf-Trace-Util: regenerate Context.c
>
> tools/perf/Makefile | 2 +-
> tools/perf/config/Makefile | 23 ++-
> tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 215 +++++++++++++++++----
> tools/perf/scripts/perl/Perf-Trace-Util/Context.xs | 6 +-
> tools/perf/util/perf-perl.h | 10 +
> .../perf/util/scripting-engines/trace-event-perl.c | 2 +-
> 6 files changed, 199 insertions(+), 59 deletions(-)
> create mode 100644 tools/perf/util/perf-perl.h
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 0/4] Minor perf build fixes
2013-07-09 5:22 ` [PATCH v2 0/4] Minor perf build fixes Namhyung Kim
@ 2013-07-09 8:51 ` Ramkumar Ramachandra
0 siblings, 0 replies; 7+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-09 8:51 UTC (permalink / raw)
To: Namhyung Kim; +Cc: LKML
Hi Namhyung,
Namhyung Kim wrote:
> On Fri, 5 Jul 2013 15:46:13 +0530, Ramkumar Ramachandra wrote:
>> [3/4] introduces a util/perf-perl.h to include <perl.h> with #pragma
>> statements, hence eliminating duplication. It then updates Context.xs
>> and trace-event-perl.c to use this new header.
>
> I prefer the name being "perl.h" and use #include_next as we include the
> 'util' directory in the compiler search path.
>
> Other than that, the change looks good to me.
Thanks for teaching me about #include_next. I'll post a re-roll shortly.
>> Also, notice that feature-tests.mak has not been touched in this
>> iteration: the Perl check passes without needing the #pragma
>> statements (although I'm not sure why exactly).
>
> I guess it's because FLAGS_PERL_EMBED doesn't contain the usual perf
> CFLAGS which has -Werror.
Ah.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-07-09 8:52 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-05 10:16 [PATCH v2 0/4] Minor perf build fixes Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 1/4] perf/Makefile: do not open-code shell-sq Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 2/4] perf/Perf-Trace-Util: fix broken include in Context.xs Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 3/4] perf: squelch warnings from perl.h to compile-pass Ramkumar Ramachandra
2013-07-05 10:16 ` [PATCH v2 4/4] perf/Perf-Trace-Util: regenerate Context.c Ramkumar Ramachandra
2013-07-09 5:22 ` [PATCH v2 0/4] Minor perf build fixes Namhyung Kim
2013-07-09 8:51 ` Ramkumar Ramachandra
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).