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.
This commit is contained in:
Jean-Marc Lasgouttes 2015-09-11 14:08:20 +02:00
parent cdb9f04395
commit d95c187b5a
2 changed files with 14 additions and 1 deletions

View File

@ -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.

View File

@ -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)