From: Ken Dreyer Date: Tue, 2 Dec 2014 01:24:22 +0000 (-0700) Subject: heap_profiler: support new gperftools header locations X-Git-Tag: v0.91~158^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6edaf4e79673682d7d77a05b14e3f6bdc9d2613c;p=ceph.git heap_profiler: support new gperftools header locations The google/ headers location has been deprecated as of gperftools 2.0. As of gperftools 2.2rc, the google/ headers will now give deprecation warnings, and they will probably disappear in a future gperftools update. Signed-off-by: Ken Dreyer --- diff --git a/configure.ac b/configure.ac index 28e057467361..a671fef44cc5 100644 --- a/configure.ac +++ b/configure.ac @@ -290,7 +290,13 @@ AC_ARG_WITH([profiler], [with_profiler=no]) AS_IF([test "x$with_profiler" = xyes], [AC_CHECK_LIB([profiler], [ProfilerFlush], [], - [AC_MSG_FAILURE([--with-profiler was given but libprofiler (libgoogle-perftools-dev on debian) not found])])], + [AC_MSG_FAILURE([--with-profiler was given but libprofiler (libgoogle-perftools-dev on debian) not found])]), + AC_LANG_PUSH([C++]), + AC_CHECK_HEADERS([gperftools/heap-profiler.h \ + gperftools/malloc_extension.h \ + gperftools/profiler.h]), + AC_LANG_POP([C++]) + ], []) AM_CONDITIONAL(WITH_PROFILER, test "$with_profiler" = "yes") AS_IF([test "$with_profiler" = "yes"], diff --git a/src/perfglue/cpu_profiler.cc b/src/perfglue/cpu_profiler.cc index 8ba15b0af1a9..d2a698420903 100644 --- a/src/perfglue/cpu_profiler.cc +++ b/src/perfglue/cpu_profiler.cc @@ -12,11 +12,20 @@ * */ +#include "acconfig.h" + +// Use the newer gperftools header locations if available. +// If not, fall back to the old (gperftools < 2.0) locations. + +#ifdef HAVE_GPERFTOOLS_PROFILER_H + #include +#else + #include +#endif + #include "common/LogClient.h" #include "perfglue/cpu_profiler.h" -#include - void cpu_profiler_handle_command(const std::vector &cmd, ostream& out) { diff --git a/src/perfglue/heap_profiler.cc b/src/perfglue/heap_profiler.cc index dd082c63821c..0fe1f9a43db7 100644 --- a/src/perfglue/heap_profiler.cc +++ b/src/perfglue/heap_profiler.cc @@ -12,8 +12,23 @@ * */ -#include -#include +#include "acconfig.h" + +// Use the newer gperftools header locations if available. +// If not, fall back to the old (gperftools < 2.0) locations. + +#ifdef HAVE_GPERFTOOLS_HEAP_PROFILER_H + #include +#else + #include +#endif + +#ifdef HAVE_GPERFTOOLS_MALLOC_EXTENSION_H + #include +#else + #include +#endif + #include "heap_profiler.h" #include "common/environment.h" #include "common/LogClient.h"