summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert Wesarg <bert.wesarg@tu-dresden.de>2019-12-04 16:23:13 +0100
committerDave Watson <dade.watson@gmail.com>2019-12-04 07:23:13 -0800
commit5070c90e7245e4c71610c36f00dc525bc3baf474 (patch)
tree050d5dc5f0eebc7bea3013551ab0237596081ad4
parentf8a8e41083284b7b65237d93afe311dcaacb7ccc (diff)
downloadlibunwind-5070c90e7245e4c71610c36f00dc525bc3baf474.tar.gz
Allow to build without weak `backtrace` symbol. (#142)
Signed-off-by: Bert Wesarg <bert.wesarg@tu-dresden.de>
-rw-r--r--configure.ac9
-rw-r--r--src/mi/backtrace.c2
-rw-r--r--tests/check-namespace.sh.in2
3 files changed, 12 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 11aeb2d2..b40e36aa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -147,6 +147,10 @@ AC_ARG_ENABLE(tests,
AS_HELP_STRING([--disable-tests],[Disable tests build]),,
[enable_tests=yes])
+AC_ARG_ENABLE(weak-backtrace,
+ AS_HELP_STRING([--disable-weak-backtrace],[Do not provide the weak 'backtrace' symbol.]),,
+ [enable_weak_backtrace=yes])
+
AC_MSG_CHECKING([if we should build libunwind-setjmp])
AC_MSG_RESULT([$enable_setjmp])
@@ -463,6 +467,11 @@ if test "x$enable_tests" = "xyes"; then
AC_CONFIG_FILES(tests/Makefile tests/check-namespace.sh)
fi
+AM_CONDITIONAL([CONFIG_WEAK_BACKTRACE], [test "x$enable_weak_backtrace" = xyes])
+AM_COND_IF([CONFIG_WEAK_BACKTRACE], [
+ AC_DEFINE([CONFIG_WEAK_BACKTRACE], [1], [Define if the weak 'backtrace' symbol is provided.])
+])
+
AC_CONFIG_FILES(Makefile src/Makefile
include/libunwind-common.h
include/libunwind.h include/tdep/libunwind_i.h)
diff --git a/src/mi/backtrace.c b/src/mi/backtrace.c
index 08e12c92..b2815137 100644
--- a/src/mi/backtrace.c
+++ b/src/mi/backtrace.c
@@ -75,7 +75,9 @@ unw_backtrace (void **buffer, int size)
return n;
}
+#ifdef CONFIG_WEAK_BACKTRACE
extern int backtrace (void **buffer, int size)
WEAK ALIAS(unw_backtrace);
+#endif
#endif /* !UNW_REMOTE_ONLY */
diff --git a/tests/check-namespace.sh.in b/tests/check-namespace.sh.in
index 5ed94fd2..9807c1d0 100644
--- a/tests/check-namespace.sh.in
+++ b/tests/check-namespace.sh.in
@@ -121,7 +121,7 @@ check_local_unw_abi () {
match _U_dyn_register
match unw_backtrace
- match backtrace
+ @CONFIG_WEAK_BACKTRACE_TRUE@match backtrace
case ${plat} in
arm)