tracers: Only build getrusage() tracer if RUSAGE_THREAD is available

This commit is contained in:
Sebastian Dröge 2015-10-07 11:11:30 +01:00
parent e71bb83319
commit 8ddbf76626
4 changed files with 20 additions and 5 deletions

View file

@ -605,8 +605,25 @@ AC_CHECK_FUNCS([gmtime_r])
AC_CHECK_FUNCS([localtime_r]) AC_CHECK_FUNCS([localtime_r])
AC_CHECK_FUNCS([sigaction]) AC_CHECK_FUNCS([sigaction])
AC_CHECK_FUNCS([getrusage]) AC_CHECK_FUNCS([getrusage])
AM_CONDITIONAL(HAVE_GETRUSAGE, test "x$ac_cv_func_getrusage" = "xyes")
AC_CHECK_HEADERS([sys/resource.h]) AC_CHECK_HEADERS([sys/resource.h])
AC_CACHE_CHECK(for RUSAGE_THREAD, gst_cv_rusage_thread,
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <unistd.h>
#ifndef __USE_GNU
# define __USE_GNU /* RUSAGE_THREAD */
#endif
#include <sys/resource.h>
]], [[
struct rusage ru;
getrusage (RUSAGE_THREAD, &ru);
]])],[
gst_cv_rusage_thread=yes
AC_DEFINE(HAVE_RUSAGE_THREAD, 1, [RUSAGE_THREAD is available])
],[
gst_cv_rusage_thread=no
])
)
AM_CONDITIONAL(HAVE_RUSAGE_THREAD, test "x$gst_cv_rusage_thread" = "xyes")
dnl check for fseeko() dnl check for fseeko()
AC_FUNC_FSEEKO AC_FUNC_FSEEKO

View file

@ -1,7 +1,7 @@
plugin_LTLIBRARIES = libgstcoretracers.la plugin_LTLIBRARIES = libgstcoretracers.la
if HAVE_GETRUSAGE if HAVE_RUSAGE_THREAD
RUSAGE_SOURCES = gstrusage.c RUSAGE_SOURCES = gstrusage.c
else else
RUSAGE_SOURCES = RUSAGE_SOURCES =

View file

@ -32,12 +32,10 @@
#include <unistd.h> #include <unistd.h>
#include "gstrusage.h" #include "gstrusage.h"
#ifdef HAVE_SYS_RESOURCE_H
#ifndef __USE_GNU #ifndef __USE_GNU
# define __USE_GNU /* RUSAGE_THREAD */ # define __USE_GNU /* RUSAGE_THREAD */
#endif #endif
#include <sys/resource.h> #include <sys/resource.h>
#endif
GST_DEBUG_CATEGORY_STATIC (gst_rusage_debug); GST_DEBUG_CATEGORY_STATIC (gst_rusage_debug);
#define GST_CAT_DEFAULT gst_rusage_debug #define GST_CAT_DEFAULT gst_rusage_debug

View file

@ -38,7 +38,7 @@ plugin_init (GstPlugin * plugin)
if (!gst_tracer_register (plugin, "log", gst_log_tracer_get_type ())) if (!gst_tracer_register (plugin, "log", gst_log_tracer_get_type ()))
return FALSE; return FALSE;
#endif #endif
#ifdef HAVE_GETRUSAGE #ifdef HAVE_RUSAGE_THREAD
if (!gst_tracer_register (plugin, "rusage", gst_rusage_tracer_get_type ())) if (!gst_tracer_register (plugin, "rusage", gst_rusage_tracer_get_type ()))
return FALSE; return FALSE;
#endif #endif