Thx a lot for the quick fix, let's get it in and have some good builds, Acked-by: Alex Wang <[email protected]>
On Thu, Apr 16, 2015 at 1:02 PM, Andy Zhou <[email protected]> wrote: > Older Linux prior to version 2.6.32 do not support user mode > performance events, They also don't have 'linux/perf_event.h' header > file. Add check for those older Linux to conditionally compile > perf-counter.c > > Reported-by: Alex Wang <[email protected]> > Signed-off-by: Andy Zhou <[email protected]> > --- > configure.ac | 1 + > lib/perf-counter.c | 5 +++-- > lib/perf-counter.h | 4 ++-- > m4/openvswitch.m4 | 4 ++++ > 4 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/configure.ac b/configure.ac > index 8d47eb9..d1b48ca 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -111,6 +111,7 @@ OVS_CHECK_PKIDIR > OVS_CHECK_RUNDIR > OVS_CHECK_DBDIR > OVS_CHECK_BACKTRACE > +OVS_CHECK_PERF_EVENT > OVS_CHECK_VALGRIND > OVS_CHECK_SOCKET_LIBS > OVS_CHECK_XENSERVER_VERSION > diff --git a/lib/perf-counter.c b/lib/perf-counter.c > index 4188f6b..a6c4965 100644 > --- a/lib/perf-counter.c > +++ b/lib/perf-counter.c > @@ -15,7 +15,9 @@ > */ > > /* This implementation only applies to the Linux platform. */ > -#ifdef __linux__ > + > +#include <config.h> > +#if defined(__linux__) && defined(HAVE_PERF_EVENT_H) > > #include <stddef.h> > #include <sys/types.h> > @@ -24,7 +26,6 @@ > #include <sys/ioctl.h> > #include <linux/perf_event.h> > #include <asm/unistd.h> > -#include <config.h> > #include "dynamic-string.h" > #include "openvswitch/vlog.h" > #include "perf-counter.h" > diff --git a/lib/perf-counter.h b/lib/perf-counter.h > index 851bd63..9b36919 100644 > --- a/lib/perf-counter.h > +++ b/lib/perf-counter.h > @@ -94,7 +94,7 @@ > * will work just fine. > */ > > -#ifdef __linux__ > +#if defined(__linux__) && defined(HAVE_PERF_EVENT_H) > struct perf_counter { > const char *name; > bool once; > @@ -138,7 +138,7 @@ static inline void perf_counters_clear(void) {} > static inline char * > perf_counters_to_string(void) > { > - return xstrdup("Not Supported on this platform. Only available on > Linux."); > + return xstrdup("Not Supported on this platform. Only available on > Linux (version >= 2.6.32)"); > } > > #endif > diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4 > index ba3ed9b..8ace9ce 100644 > --- a/m4/openvswitch.m4 > +++ b/m4/openvswitch.m4 > @@ -243,6 +243,10 @@ AC_DEFUN([OVS_CHECK_BACKTRACE], > [AC_DEFINE([HAVE_BACKTRACE], [1], > [Define to 1 if you have backtrace(3).])])]) > > +dnl Defines HAVE_PERF_EVENT if linux/perf_event.h is found. > +AC_DEFUN([OVS_CHECK_PERF_EVENT], > + [AC_CHECK_HEADERS([linux/perf_event.h])]) > + > dnl Checks for valgrind/valgrind.h. > AC_DEFUN([OVS_CHECK_VALGRIND], > [AC_CHECK_HEADERS([valgrind/valgrind.h])]) > -- > 1.9.1 > > _______________________________________________ > dev mailing list > [email protected] > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
