From: Jean-Marc Lasgouttes Date: Fri, 11 Sep 2015 12:08:20 +0000 (+0200) Subject: Give a warning when system boost and stdlib-debug are used together X-Git-Tag: 2.2.0alpha1~295 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=d95c187b5;p=lyx.git Give a warning when system boost and stdlib-debug are used together In general this would lead to an immediate runtime crash because the runtime checks of libstdc++ change the layout of some STL objects. Therefore, this will only work when the boost libraries have been compiled with this same flag. At this time, it is not known whether any linux distribution contains such libraries. Fixes bug #9736. --- diff --git a/INSTALL b/INSTALL index 7179dc3b63..d3e266ff92 100644 --- a/INSTALL +++ b/INSTALL @@ -223,7 +223,11 @@ The following options allow you to tweak the generated code more precisely (see o --enable-stdlib-debug adds some debug code in the standard library; this slows down the code, but has been helpful in the - past to find bugs. + past to find bugs. Note that this is in general incompatible with + the system boost library (which is used when + --without-included-boost is specified). You may have to use + --disable-stdlib-debug when linking development versions against + your system's boost library. o --enable-concept-checks adds some compile-time checks. There is no run-time penalty. diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4 index b488cefdc6..5cfda06bbc 100644 --- a/config/lyxinclude.m4 +++ b/config/lyxinclude.m4 @@ -429,6 +429,15 @@ AC_DEFUN([LYX_USE_INCLUDED_BOOST],[ else BOOST_LIBS="-lboost_regex${BOOST_MT} -lboost_signals${BOOST_MT}" fi + + dnl In general, system boost libraries are incompatible with + dnl the use of stdlib-debug in libstdc++. See ticket #9736 for + dnl details. + if test $enable_stdlib_debug = "yes" ; then + LYX_WARNING([Compiling LyX with stdlib-debug and system boost libraries may lead to + crashes. Consider using --disable-stdlib-debug or removing + --without-included-boost.]) + fi fi AC_SUBST(BOOST_INCLUDES) AC_SUBST(BOOST_LIBS)