diff --git a/meson.build b/meson.build index 3bbd8830..ea6f2060 100644 --- a/meson.build +++ b/meson.build @@ -93,6 +93,9 @@ if get_option('libunwind') libunwind_dep = dependency('libunwind-generic', required: false) if libunwind_dep.found() config_h.set10('ENABLE_LIBUNWIND', libunwind_dep.found()) + if cc.has_header_symbol('libunwind.h', 'unw_set_cache_size', dependencies: [libunwind_dep]) + config_h.set10('HAVE_UNW_SET_CACHE_SIZE', 1) + endif endif endif diff --git a/src/libsysprof/preload/sysprof-memory-collector.c b/src/libsysprof/preload/sysprof-memory-collector.c index 33b1d0ec..6a13b64d 100644 --- a/src/libsysprof/preload/sysprof-memory-collector.c +++ b/src/libsysprof/preload/sysprof-memory-collector.c @@ -64,7 +64,9 @@ collector_init_ctor (void) { #ifdef ENABLE_LIBUNWIND unw_set_caching_policy (unw_local_addr_space, UNW_CACHE_PER_THREAD); +# ifdef HAVE_UNW_SET_CACHE_SIZE unw_set_cache_size (unw_local_addr_space, 1024, 0); +#endif #endif sysprof_collector_init (); collector_ready = TRUE;