summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorsewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>2010-10-06 22:07:06 +0000
committersewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>2010-10-06 22:07:06 +0000
commitdfa55cf5263d1a105425fef13aff164e8cbb30f6 (patch)
treefd0c09325750a9e96ff943270b815c5f356f7fc1 /configure.in
parente4f74838b9b2bbaaaca08117214194ec368caf95 (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.in23
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.
#----------------------------------------------------------------------------