Done. Thanks for reporting.
On Thu, Apr 16, 2015 at 3:21 PM, Alex Wang <[email protected]> wrote: > 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
