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

Reply via email to