diff options
author | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2010-10-06 22:07:06 +0000 |
---|---|---|
committer | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2010-10-06 22:07:06 +0000 |
commit | dfa55cf5263d1a105425fef13aff164e8cbb30f6 (patch) | |
tree | fd0c09325750a9e96ff943270b815c5f356f7fc1 /configure.in | |
parent | e4f74838b9b2bbaaaca08117214194ec368caf95 (diff) |
amd64-linux: add suitable CFI annotations so that unwinding through
the CALL_FN_*_* macros works more reliably. This is all very fiddly
and is described in a large comment in valgrind.h. Fixes #243270.
(Evgeniy Stepanov, eugeni.stepanov@gmail.com)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11402 a5019735-40e9-0310-863c-91ae7b9d1cf9
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/configure.in b/configure.in index 667ca243..fd66bdba 100644 --- a/configure.in +++ b/configure.in @@ -1888,6 +1888,29 @@ CFLAGS=$safe_CFLAGS AM_CONDITIONAL([HAVE_BUILTIN_ATOMIC], [test x$ac_have_builtin_atomic = xyes]) +# Check for __builtin_frame_address() support +AC_MSG_CHECKING([if gcc supports __builtin_frame_address]) + +AC_TRY_COMPILE( +[ +], [ + __builtin_frame_address(0); + return 0; +], +[ +ac_have_builtin_frame_address=yes +AC_MSG_RESULT([yes]) +AC_DEFINE([HAVE_BUILTIN_FRAME_ADDRESS], 1, + [Define to 1 if your compiler supports __builtin_frame_address.]) +], [ +ac_have_builtin_frame_address=no +AC_MSG_RESULT([no]) +]) +CFLAGS=$safe_CFLAGS + +AM_CONDITIONAL(HAVE_BUILTIN_FRAME_ADDRESS, + test x$ac_have_builtin_frame_address = xyes) + #---------------------------------------------------------------------------- # Ok. We're done checking. #---------------------------------------------------------------------------- |