OpenBSD ? [info needed on what should work]
Solaris (modern/supported versions, including OpenSolaris forks)
+On BSD systems, installing libexecinfo is strongly recommended in order
+to get backtrace support.
+
For further Quagga specific information on 'configure' and build-time
configuration of the software, please read the Quagga info
documentation, (doc/quagga.info). To read the info page included with
AC_ARG_ENABLE(linux24_tcp_md5,
[ --enable-linux24-tcp-md5 enable support for old, Linux-2.4 RFC2385 patch])
AC_ARG_ENABLE(gcc-rdynamic,
-[ --enable-gcc-rdynamic enable gcc linking with -rdynamic for better backtraces])
+[ --enable-gcc-rdynamic enable linking with -rdynamic for better backtraces (default if gcc)])
+AC_ARG_ENABLE(backtrace,
+[ --disable-backtrace, disable crash backtraces (default autodetect)])
AC_ARG_ENABLE(time-check,
[ --disable-time-check disable slow thread warning messages])
AC_ARG_ENABLE(pcreposix,
CFLAGS="${CFLAGS} -Wpacked -Wpadded"
fi
-if test x"${enable_gcc_rdynamic}" = x"yes" ; then
- LDFLAGS="${LDFLAGS} -rdynamic"
+if test x"${enable_gcc_rdynamic}" != x"no" ; then
+ if test x"${enable_gcc_rdynamic}" = x"yes" -o x"$COMPILER" = x"GCC"; then
+ LDFLAGS="${LDFLAGS} -rdynamic"
+ fi
fi
if test x"${enable_time_check}" != x"no" ; then
dnl ---------------------------
dnl check for glibc 'backtrace'
dnl ---------------------------
-AC_CHECK_HEADER([execinfo.h],
- [AC_CHECK_FUNC([backtrace],
- [AC_DEFINE(HAVE_GLIBC_BACKTRACE,,[Glibc backtrace])
- AC_DEFINE(HAVE_STACK_TRACE,,[Stack symbol decoding])
+if test x"${enable_backtrace}" != x"no" ; then
+ backtrace_ok=no
+ AC_CHECK_HEADER([execinfo.h], [
+ AC_SEARCH_LIBS([backtrace], [execinfo], [
+ AC_DEFINE(HAVE_GLIBC_BACKTRACE,,[Glibc backtrace])
+ AC_DEFINE(HAVE_STACK_TRACE,,[Stack symbol decoding])
+ backtrace_ok=yes
+ ],, [-lm])
])
-])
+
+ if test x"${enable_backtrace}" = x"yes" -a x"${backtrace_ok}" = x"no"; then
+ dnl user explicitly requested backtrace but we failed to find support
+ AC_MSG_FAILURE([failed to find backtrace support])
+ fi
+fi
dnl -----------------------------------------
dnl check for malloc mallinfo struct and call
minimally decrease compile time and overhead. They can always be built and
executed at a later time by running @command{make check} in the @file{tests/}
subdirectory, even if they're excluded from build.
+@item --enable-gcc-rdynamic
+Pass the @command{-rdynamic} option to the linker driver. This is in most
+cases neccessary for getting usable backtraces. This option defaults to on
+if the compiler is detected as gcc, but giving an explicit enable/disable is
+suggested.
+@item --enable-backtrace
+Controls backtrace support for the crash handlers. This is autodetected by
+default. Using the switch will enforce the requested behaviour, failing with
+an error if support is requested but not available. On BSD systems, this
+needs libexecinfo, while on glibc support for this is part of libc itself.
@end table
You may specify any combination of the above options to the configure