Hello community,

here is the log from the commit of package lyx for openSUSE:Factory checked in 
at 2015-06-23 12:00:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lyx (Old)
 and      /work/SRC/openSUSE:Factory/.lyx.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "lyx"

Changes:
--------
--- /work/SRC/openSUSE:Factory/lyx/lyx.changes  2015-02-11 16:45:28.000000000 
+0100
+++ /work/SRC/openSUSE:Factory/.lyx.new/lyx.changes     2015-06-23 
12:00:22.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Jun 22 13:08:54 UTC 2015 - corne...@solcon.nl
+
+- Added Fix-build-with-GNU-libstdc++-C++11-ABI.patch and
+  Automake-15.patch to fix build with Factory (gcc5).
+
+-------------------------------------------------------------------

New:
----
  Automake-15.patch
  Fix-build-with-GNU-libstdc++-C++11-ABI.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ lyx.spec ++++++
--- /var/tmp/diff_new_pack.riCJlP/_old  2015-06-23 12:00:23.000000000 +0200
+++ /var/tmp/diff_new_pack.riCJlP/_new  2015-06-23 12:00:23.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package lyx
 #
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,6 +18,8 @@
 
 Name:           lyx
 #!BuildIgnore: lyx
+BuildRequires:  autoconf
+BuildRequires:  automake
 BuildRequires:  bc
 BuildRequires:  boost-devel
 BuildRequires:  enchant-devel
@@ -42,6 +44,9 @@
 # This was rejected by upstream 
(http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg133878.html)
 Patch0:         lyx-2.1.2-xdg_open.patch
 Patch1:         lyx-2.1.2.2-remove-date-time.patch
+# The following patches are from the 2.1.x branch, fixes build with gcc5
+Patch2:         Fix-build-with-GNU-libstdc++-C++11-ABI.patch
+Patch3:         Automake-15.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Requires:       ImageMagick
 %if 0%{?suse_version} < 1230
@@ -110,9 +115,11 @@
 %setup -q
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
 
 %build
-#./autogen.sh
+./autogen.sh
 TEXMF=%{_datadir}/texmf
 %configure \
     --without-included-boost \

++++++ Automake-15.patch ++++++
--- lyx-2.1.3/autogen.sh.orig   2015-02-07 16:25:07.000000000 +0100
+++ lyx-2.1.3/autogen.sh        2015-06-21 23:37:56.961228499 +0200
@@ -16,7 +16,7 @@
 }
 
 case $automake_version in
-    *' '1.[8-9]*|*' '1.1[01234]*)
+    *' '1.[8-9]*|*' '1.1[012345]*)
        ;;
     *)
 
++++++ Fix-build-with-GNU-libstdc++-C++11-ABI.patch ++++++
diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4
index 61ea48d..a0094c1 100644
--- a/config/lyxinclude.m4
+++ b/config/lyxinclude.m4
@@ -120,37 +120,65 @@ done
 ])dnl
 
 
-AC_DEFUN([LYX_PROG_CXX_WORKS],
-[rm -f conftest.C
-cat >conftest.C <<EOF
-class foo {
-   // we require the mutable keyword
-   mutable int bar;
- };
- // we require namespace support
- namespace baz {
-   int bar;
- }
- int main() {
-   return(0);
- }
-EOF
-$CXX -c $CXXFLAGS $CPPFLAGS conftest.C >&5 || CXX=
-rm -f conftest.C conftest.o conftest.obj || true
+dnl Usage: LYX_PROG_CLANG: set lyx_cv_prog_clang to yes if the compiler is 
clang.
+AC_DEFUN([LYX_PROG_CLANG],
+[AC_CACHE_CHECK([whether the compiler is clang],
+               [lyx_cv_prog_clang],
+[AC_TRY_COMPILE([], [
+#ifndef __clang__
+           this is not clang
+#endif
+],
+[lyx_cv_prog_clang=yes ; CLANG=yes], [lyx_cv_prog_clang=no ; CLANG=no])])
 ])
 
 
-AC_DEFUN([LYX_PROG_CXX],
-[AC_MSG_CHECKING([for a good enough C++ compiler])
-LYX_SEARCH_PROG(CXX, $CXX $CCC g++ gcc c++ CC cxx xlC cc++, 
[LYX_PROG_CXX_WORKS])
+dnl Usage: LYX_LIB_STDCXX: set lyx_cv_lib_stdcxx to yes if the STL library is 
libstdc++.
+AC_DEFUN([LYX_LIB_STDCXX],
+[AC_CACHE_CHECK([whether STL is libstdc++],
+               [lyx_cv_lib_stdcxx],
+[AC_TRY_COMPILE([#include<vector>], [
+#if ! defined(__GLIBCXX__) && ! defined(__GLIBCPP__)
+           this is not libstdc++
+#endif
+],
+[lyx_cv_lib_stdcxx=yes], [lyx_cv_lib_stdcxx=no])])
+])
 
-if test -z "$CXX" ; then
-  AC_MSG_ERROR([Unable to find a good enough C++ compiler])
-fi
-AC_MSG_RESULT($CXX)
 
-AC_PROG_CXX
-AC_PROG_CXXCPP
+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_TRY_COMPILE([#include<vector>], [
+#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])
+
+AC_LANG_PUSH(C++)
+LYX_PROG_CLANG
+LYX_LIB_STDCXX
+LYX_LIB_STDCXX_CXX11_ABI
+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])
+  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,
diff --git a/development/cmake/ConfigureChecks.cmake 
b/development/cmake/ConfigureChecks.cmake
index 71291a5..a738160 100644
--- a/development/cmake/ConfigureChecks.cmake
+++ b/development/cmake/ConfigureChecks.cmake
@@ -112,3 +112,49 @@ check_cxx_source_compiles(
        "
 SIZEOF_WCHAR_T_IS_4)
 
+# Check whether STL is libstdc++
+check_cxx_source_compiles(
+       "
+       #include <vector>
+       int main() {
+       #if ! defined(__GLIBCXX__) && ! defined(__GLIBCPP__)
+               this is not libstdc++
+       #endif
+               return(0);
+       }
+       "
+lyx_cv_lib_stdcxx)
+
+# Check whether STL is libstdc++ with C++11 ABI
+check_cxx_source_compiles(
+       "
+       #include <vector>
+       int main() {
+       #if ! defined(_GLIBCXX_USE_CXX11_ABI) || ! _GLIBCXX_USE_CXX11_ABI
+               this is not libstdc++ using the C++11 ABI
+       #endif
+               return(0);
+       }
+       "
+USE_GLIBCXX_CXX11_ABI)
+
+check_cxx_source_compiles(
+       "
+       #ifndef __clang__
+               this is not clang
+       #endif
+       int main() {
+         return(0);
+       }
+       "
+lyx_cv_prog_clang)
+
+set(USE_LLVM_LIBCPP)
+set(USE_GLIBCXX_CXX11_ABI)
+if(NOT lyx_cv_lib_stdcxx)
+  if(lyx_cv_prog_clang)
+    # use libc++ provided by llvm instead of GNU libstdc++
+    set(USE_LLVM_LIBCPP 1)
+  endif()
+endif()
+
diff --git a/development/cmake/config.h.cmake b/development/cmake/config.h.cmake
index 7bbe09e..a392b51 100644
--- a/development/cmake/config.h.cmake
+++ b/development/cmake/config.h.cmake
@@ -57,6 +57,9 @@
 #cmakedefine LYX_USE_TR1 1
 #cmakedefine LYX_USE_TR1_REGEX 1
 
+// use GNU libstdc++ with C++11 ABI
+#cmakedefine USE_GLIBCXX_CXX11_ABI 1
+
 #cmakedefine Z_PREFIX 1
 
 #cmakedefine ASPELL_FOUND 1
diff --git a/src/support/strfwd.h b/src/support/strfwd.h
index de8588c..f39426e 100644
--- a/src/support/strfwd.h
+++ b/src/support/strfwd.h
@@ -13,14 +13,6 @@
 #ifndef STRFWD_H
 #define STRFWD_H
 
-// This includes does nothing but defining _LIBCPP_VERSION
-// if libc++ is used (rather than libstdc++) - we first
-// check if we have at least a c++03 standard before
-// including the file
-#if (__cplusplus > 19971L)
-#include <ciso646>
-#endif
-
 #ifdef USE_WCHAR_T
 
 // Prefer this if possible because GNU libstdc++ has usable
@@ -36,8 +28,10 @@ namespace lyx { typedef boost::uint32_t char_type; }
 
 #endif
 
-// Forward definitions do not work with libc++
-#ifdef  _LIBCPP_VERSION
+// For gcc5 with the new std::string ABI forward declarations would work in
+// principle, but I am not sure whether we want non-standard
+// "namespace __cxx11" in our sources.
+#if defined(USE_LLVM_LIBCPP) || defined(USE_GLIBCXX_CXX11_ABI)
 #include <string>
 #else



Reply via email to