From: Jean-Marc Lasgouttes Date: Sat, 5 Oct 2024 13:04:51 +0000 (+0200) Subject: Clean up after removal of strfwd.h X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=09684899d68972ff2dc415218a8411fc7ccc2b69;p=lyx.git Clean up after removal of strfwd.h Remove autoconf tests for whether std::string uses COW, since this is forbidden by C++11 standard. Forbid the use of gcc 4.9 (which still uses COW). Remove code in debug.h that added forward declarations for LLVM's libc++, since we do not do forward declarations anymore. Remove configure test for libc++. --- diff --git a/INSTALL b/INSTALL index 52044fa1f3..9d505dff33 100644 --- a/INSTALL +++ b/INSTALL @@ -52,8 +52,9 @@ You will also probably need GNU m4 (perhaps installed as gm4). Requirements ------------ -First of all, you will need a C++11 standard conforming compiler, like g++ (at -least 5.0, to have proper std::regex & std::string) or clang++. +First of all, you will need a C++11 standard conforming compiler, like +g++ (at least 5.0, to have proper std::regex & std::string) or +clang++. LyX makes great use of the C++ Standard Library. This means that gcc users will have to install the relevant libstdc++ library to be able diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4 index 03e40581c9..2138a8482e 100644 --- a/config/lyxinclude.m4 +++ b/config/lyxinclude.m4 @@ -248,19 +248,6 @@ AC_DEFUN([LYX_LIB_STDCXX], ]) -dnl Usage: LYX_LIB_STDCXX_CXX11_ABI: set lyx_cv_lib_stdcxx_cxx11_abi to yes -dnl if the STL library is GNU libstdc++ and the C++11 ABI is used. -AC_DEFUN([LYX_LIB_STDCXX_CXX11_ABI], -[AC_CACHE_CHECK([whether STL is libstdc++ using the C++11 ABI], - [lyx_cv_lib_stdcxx_cxx11_abi], -[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include]], [[ -#if ! defined(_GLIBCXX_USE_CXX11_ABI) || ! _GLIBCXX_USE_CXX11_ABI - this is not libstdc++ using the C++11 ABI -#endif -]])],[lyx_cv_lib_stdcxx_cxx11_abi=yes],[lyx_cv_lib_stdcxx_cxx11_abi=no])]) -]) - - AC_DEFUN([LYX_PROG_CXX], [AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXXCPP]) @@ -275,22 +262,9 @@ AC_LANG_PUSH(C++) LYX_PROG_CLANG LYX_CXX_CXX11_FLAGS($enable_cxx_mode) LYX_LIB_STDCXX -LYX_LIB_STDCXX_CXX11_ABI LYX_CXX_USE_CALL_ONCE AC_LANG_POP(C++) -if test $lyx_cv_lib_stdcxx = "yes" ; then - if test $lyx_cv_lib_stdcxx_cxx11_abi = "yes" ; then - AC_DEFINE(USE_GLIBCXX_CXX11_ABI, 1, [use GNU libstdc++ with C++11 ABI]) - else - AC_DEFINE(STD_STRING_USES_COW, 1, [std::string uses copy-on-write]) - fi -else - if test $lyx_cv_prog_clang = "yes" ; then - AC_DEFINE(USE_LLVM_LIBCPP, 1, [use libc++ provided by llvm instead of GNU libstdc++]) - fi -fi - ### We might want to get or shut warnings. AC_ARG_ENABLE(warnings, AS_HELP_STRING([--enable-warnings],[tell the compiler to display more warnings]),, @@ -363,7 +337,7 @@ if test x$GXX = xyes; then fi case $gxx_version in - 2.*|3.*|4.@<:@0-8@:>@*) AC_MSG_ERROR([gcc >= 4.9 is required]);; + 2.*|3.*|4.*) AC_MSG_ERROR([gcc >= 5 is required]);; esac AM_CXXFLAGS="$lyx_optim $AM_CXXFLAGS" diff --git a/src/support/debug.h b/src/support/debug.h index 6ab59b5538..137016a99a 100644 --- a/src/support/debug.h +++ b/src/support/debug.h @@ -17,20 +17,6 @@ #include "support/docstring.h" -// Forward definitions do not work with libc++ -// but ios_base has already been defined in strfwd -// if compiling with it -#ifndef USE_LLVM_LIBCPP -namespace std { - -class ios_base; - -template class basic_streambuf; -typedef basic_streambuf > streambuf; - -} // namespace std -#endif - // Make sure at compile time that sizeof(unsigned long long) >= 8 typedef char p__LINE__[ (sizeof(unsigned long long) > 7) ? 1 : -1];