diff options
author | Arkadiusz Hiler <arkadiusz.hiler@intel.com> | 2017-12-01 15:19:54 +0200 |
---|---|---|
committer | Arkadiusz Hiler <arkadiusz.hiler@intel.com> | 2017-12-04 16:38:42 +0200 |
commit | 36015334f9ee86b997fc5c0deb4964184f87648f (patch) | |
tree | 81deaff40d9b7788d1404107fd472c15926ab14c | |
parent | c325dd948b4e4e9fe0cc7d612f2101fb3804de5c (diff) |
igt: Make dependency on libunwind mandatory
With Android support gone there is not much reason for keeping libunwind
dependency optional. This also deals (cheaply!) with ifdefs covering
huge portions of code, removing a placement minefield.
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | configure.ac | 11 | ||||
-rw-r--r-- | lib/igt_core.c | 13 | ||||
-rw-r--r-- | meson.build | 2 |
3 files changed, 6 insertions, 20 deletions
diff --git a/configure.ac b/configure.ac index 84c6e646..8740f7a4 100644 --- a/configure.ac +++ b/configure.ac @@ -124,6 +124,7 @@ PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.82]) PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) PKG_CHECK_MODULES(KMOD, [libkmod]) PKG_CHECK_MODULES(PROCPS, [libprocps]) +PKG_CHECK_MODULES(LIBUNWIND, [libunwind]) PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no]) if test x$have_valgrind = xyes; then @@ -330,15 +331,6 @@ AM_CONDITIONAL(BUILD_SHADER_DEBUGGER, [test "x$BUILD_SHADER_DEBUGGER" != xno]) AS_IF([test "x$BUILD_SHADER_DEBUGGER" != xno], [enable_debugger=yes], [enable_debugger=no]) -AC_ARG_WITH(libunwind, - AS_HELP_STRING([--without-libunwind], - [Build tests without libunwind support]), - [], [with_libunwind=yes]) -if test "x$with_libunwind" = xyes; then - PKG_CHECK_MODULES(LIBUNWIND, libunwind, AC_DEFINE(HAVE_LIBUNWIND, 1, [libunwind support]), - AC_MSG_ERROR([libunwind not found. Use --without-libunwind to disable libunwind support.])) -fi - # enable debug symbols AC_ARG_ENABLE(debug, AS_HELP_STRING([--disable-debug], @@ -434,7 +426,6 @@ echo " Build tests : ${BUILD_TESTS}" echo " Chamelium tests : ${enable_chamelium}" echo " Audio tests : ${enable_audio}" echo " Compile prime tests: ${NOUVEAU}" -echo " Print stack traces : ${with_libunwind}" echo " Debug flags : ${DEBUG_CFLAGS}" echo "" echo " • Tools:" diff --git a/lib/igt_core.c b/lib/igt_core.c index de9269b0..03fa6e4e 100644 --- a/lib/igt_core.c +++ b/lib/igt_core.c @@ -71,6 +71,9 @@ #include "igt_sysfs.h" #include "igt_rc.h" +#define UNW_LOCAL_ONLY +#include <libunwind.h> + #ifdef HAVE_LIBGEN_H #include <libgen.h> /* for basename() on Solaris */ #endif @@ -1173,10 +1176,6 @@ static void write_stderr(const char *str) __write_stderr(str, strlen(str)); } -#ifdef HAVE_LIBUNWIND -#define UNW_LOCAL_ONLY -#include <libunwind.h> - static void print_backtrace(void) { unw_cursor_t cursor; @@ -1371,7 +1370,6 @@ static void print_backtrace_sig_safe(void) } } -#endif void __igt_fail_assert(const char *domain, const char *file, const int line, const char *func, const char *assertion, @@ -1394,9 +1392,7 @@ void __igt_fail_assert(const char *domain, const char *file, const int line, va_end(args); } -#ifdef HAVE_LIBUNWIND print_backtrace(); -#endif if (run_under_gdb()) abort(); @@ -1876,9 +1872,8 @@ static void fatal_sig_handler(int sig) igt_exitcode = 128 + sig; failed_one = true; -#ifdef HAVE_LIBUNWIND print_backtrace_sig_safe(); -#endif + if (in_subtest) exit_subtest("CRASH"); } diff --git a/meson.build b/meson.build index 8e01b05d..a564893d 100644 --- a/meson.build +++ b/meson.build @@ -38,6 +38,7 @@ libdrm_amdgpu = dependency('libdrm_amdgpu', required : false) pciaccess = dependency('pciaccess', version : '>=0.10') libkmod = dependency('libkmod') libprocps = dependency('libprocps', required : true) +libunwind = dependency('libunwind', required : true) valgrind = dependency('valgrind', required : false) if valgrind.found() @@ -56,7 +57,6 @@ if glib.found() config.set('HAVE_GLIB', 1) endif -libunwind = dependency('libunwind') gsl = dependency('gsl', required : false) alsa = dependency('alsa', required : false) |