diff options
-rw-r--r-- | build/configure.ac.system | 12 | ||||
-rw-r--r-- | util/cairo-trace/trace.c | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/build/configure.ac.system b/build/configure.ac.system index 09d2e307..3fffb949 100644 --- a/build/configure.ac.system +++ b/build/configure.ac.system @@ -73,6 +73,18 @@ dnl ==================================================================== dnl Header/function checks dnl ==================================================================== +dnl check if we have a __builtin_return_address for the cairo-trace +dnl utility. +AC_MSG_CHECKING([for __builtin_return_address(0)]) +AC_TRY_COMPILE([],[__builtin_return_address(0);], + [have_builtin_return_address=yes], + [have_builtin_return_address=no]) +AC_MSG_RESULT($have_builtin_return_address) +if test "x$have_builtin_return_address" = "xyes"; then + AC_DEFINE(HAVE_BUILTIN_RETURN_ADDRESS, 1, + [Define to 1 if your compiler supports the __builtin_return_address() intrinsic.]) +fi + dnl Checks for precise integer types AC_CHECK_HEADERS([stdint.h inttypes.h sys/int_types.h]) AC_CHECK_TYPES([uint64_t, uint128_t]) diff --git a/util/cairo-trace/trace.c b/util/cairo-trace/trace.c index 626a81e4..9a1c54e9 100644 --- a/util/cairo-trace/trace.c +++ b/util/cairo-trace/trace.c @@ -177,7 +177,7 @@ static bool _line_info; static bool _mark_dirty; static const cairo_user_data_key_t destroy_key; -#if __GNUC__ >= 3 +#if HAVE_BUILTIN_RETURN_ADDRESS #define _emit_line_info() do { \ if (_line_info && _write_lock ()) { \ void *addr = __builtin_return_address(0); \ |